État de l'utilisateur
Equinix Metal™ fournit un point de terminaison d'état utilisateur 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 système d'exploitation fournies par Equinix Metal, le point de terminaison « État utilisateur » est accessible depuis votre serveur une fois le matériel opérationnel et le processus d'imagerie terminé. Dans cette configuration, l'utilisation standard de l'état utilisateur consiste à définir l'événement dans votre script de données utilisateur (user-data.mdx) afin d'envoyer des informations d'état concernant vos opérations sur les données utilisateur.
Lorsque vous utilisez iPXE personnalisé pour provisionner l'utilisateur, le terminal est accessible après la mise en service du matériel et le démarrage de l'installation de l'image fournie. Dans ce cas, l'état utilisateur vous permet d'envoyer des informations d'état pendant et après le processus d'imagerie.
Récupération du point de terminaison de l'état utilisateur
Le point de terminaison de l'état utilisateur dépend de l'emplacement de provisionnement du serveur ; vous devrez donc le récupérer dans les 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 utilisez cURL pour le 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 utiliser ceci pendant le processus d'approvisionnement, vous pouvez écrire un script bash (exemple) dans vos données utilisateur pour récupérer et stocker le point de terminaison de l'état de l'utilisateur 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 utilisateur personnalisé, envoyez une requête POST au point de terminaison d'état 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 terminé son exécution 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"
}'
Affichage des événements sur la chronologie
La requête POST ajoute un événement à la chronologie du serveur, que vous pouvez visualiser depuis la console et l'API.
- Console
- API
Allez à l'onglet Chronologie de votre serveur.

Envoyer 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'image personnalisée ou dans vos données utilisateur pour envoyer des événements d'état 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 :)"