État de l'utilisateur
Equinix Metal™ fournit un point de terminaison User State pour vous permettre d'envoyer et d'émettre des informations d'état personnalisées pendant le processus de provisionnement.
Lorsque vous configurez le provisionnement avec l'une des images de système d'exploitation fournies par Equinix Metal, le point de terminaison User State est accessible à partir de votre serveur une fois que le matériel du serveur est opérationnel et que le processus d'imagerie est terminé. Dans cette configuration, l'utilisation standard de l'état utilisateur consiste à définir l'événement dans votre script user data pour envoyer des informations sur l'état de vos opérations de données utilisateur.
Lorsque vous utilisez l'iPXE personnalisé pour approvisionner l'utilisateur, le point de terminaison est accessible après le démarrage du matériel et l'installation de l'image que vous avez fournie. Dans ce cas, User State vous permet d'envoyer des informations d'état pendant et après le processus d'imagerie.
Récupération de l'état de l'utilisateur
Le point de terminaison de l'état de l'utilisateur dépend de l'emplacement où le serveur est provisionné, vous devrez donc le récupérer à partir des métadonnées du serveur avant de pouvoir l'utiliser. Par exemple, si vous vous connectez en SSH à un serveur actuellement provisionné et que vous faites un cURL du point de terminaison des métadonnées :
curl https://metadata.platformequinix.com/metadata | jq -r .user_state_url
renvoie l'url des événements de l'état de l'utilisateur :
http://tinkerbell.sv15.packet.net/events
Pour l'utiliser pendant le processus de provisionnement, vous pouvez écrire un script bash (exemple) dans vos données utilisateur pour récupérer et stocker le point de terminaison User State en tant que variable d'environnement.
Création d'un événement d'état utilisateur personnalisé
Si vous souhaitez créer un événement d'état d'utilisateur personnalisé, envoyez une requête POST au point de terminaison d'état d'utilisateur.
curl -X POST \
http://tinkerbell.sv15.packet.net/events \
-d '{
"state":"running",
"code":1000,
"message":"running the user data script"
}'
Le corps de la requête POST peut accepter les champs suivants :
"state"-running,succeeded, orfailed."code"- an integer between1000and1099, inclusive."message"- can be any string message that you want.
Par exemple, vous pouvez l'utiliser à la fin de votre script de données utilisateur pour indiquer que votre script de données utilisateur a fini de s'exécuter après le provisionnement de votre serveur.
curl -X POST \
http://tinkerbell.sv15.packet.net/events \
-d '{
"state":"succeeded",
"code":1001,
"message":"done running the user data script"
}'
Visualisation des événements sur la ligne de temps
La requête POST ajoute un événement à la chronologie du serveur, que vous pouvez visualiser à partir de la console et de l'API.
- Console
- API
Accédez à l'onglet Timeline de votre serveur.

Envoyez une requête GET au point de terminaison /devices/{id}/events.
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' \
https://api.equinix.com/metal/v1/devices/{id}/events
Exemple de script Bash
Voici un exemple de script Bash que vous pouvez utiliser dans votre processus d'installation d'images personnalisées ou dans vos données utilisateur pour envoyer des événements relatifs à l'état de l'utilisateur.
#!/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 :)"