Ir al contenido principal

Estado del usuario

Equinix Metal™ proporciona un punto final de estado de usuario para que envíe y emita información de estado personalizada durante el proceso de aprovisionamiento.

Cuando se configura el aprovisionamiento con una de las imágenes del sistema operativo emitidas por Equinix Metal, se puede acceder al punto final de estado de usuario desde su servidor una vez que el hardware del servidor se ha puesto en marcha y se ha completado el proceso de creación de imágenes. En esta configuración, el uso estándar del estado de usuario es definir el evento en su script user data para enviar información de estado sobre sus operaciones de datos de usuario.

Cuando se utiliza iPXE personalizado para aprovisionar al usuario, el punto final es accesible después de que el hardware se enciende y comenzamos a instalar la imagen proporcionada. En este caso, User State le permite enviar información de estado durante y después del proceso de creación de imágenes.

Recuperación del Estado de Usuario Endpoint

El punto final de Estado de usuario depende de la ubicación en la que se aprovisiona el servidor, por lo que tendrá que recuperarlo de los metadatos del servidor antes de poder utilizarlo. Por ejemplo, si accede mediante SSH a un servidor actualmente aprovisionado y cURL al punto final de metadatos:

curl https://metadata.platformequinix.com/metadata | jq -r .user_state_url

devuelve la url de los eventos del Estado del Usuario:

http://tinkerbell.sv15.packet.net/events

Para utilizar esto durante el proceso de aprovisionamiento, puede escribir un script bash (ejemplo) en sus Datos de Usuario para recuperar y almacenar el punto final de Estado de Usuario como una variable de entorno.

Creación de un evento de estado de usuario personalizado

Si desea crear un evento de estado de usuario personalizado, envíe una solicitud POST al punto final de estado de usuario.

curl -X POST \
http://tinkerbell.sv15.packet.net/events \
-d '{
"state":"running",
"code":1000,
"message":"running the user data script"
}'

El cuerpo de la solicitud POST puede aceptar los siguientes campos:

  • "state" - running, succeeded, or failed.
  • "code" - an integer between 1000 and 1099, inclusive.
  • "message" - can be any string message that you want.

Por ejemplo, puede usar esto al final de su script de datos de usuario para indicar que su script de datos de usuario ha terminado de ejecutarse después de aprovisionar su servidor.

curl -X POST \
http://tinkerbell.sv15.packet.net/events \
-d '{
"state":"succeeded",
"code":1001,
"message":"done running the user data script"
}'

Visualización de los eventos en la línea de tiempo

La petición POST añade un evento a la línea de tiempo del servidor, que puedes ver desde la consola y la API.

Navegue hasta la pestaña Timeline de su servidor.

Screenshot of the Device Timeline in the Console

Ejemplo de script Bash

El siguiente es un script Bash de ejemplo que puede utilizar en su proceso de instalación de imágenes personalizadas o en sus datos de usuario para enviar eventos de estado de usuario.

#!/bin/bash
apt-get update && apt-get upgrade -y
apt-get install jq -y
url="$(curl https://metadata.platformequinix.com/metadata | jq -r .user_state_url)"

send_user_state_event() {
data=$(
echo "{}" \
| jq '.state = $state | .code = ($code | tonumber) | .message = $message' \
--arg state "$1" \
--arg code "$2" \
--arg message "$3"
)
curl -v -X POST -d "$data" "$url"
}

send_user_state_event running 1000 "hey im still running"
send_user_state_event succeeded 1001 "hey im done now :)"
¿Fue útil esta página?