Ir para o conteúdo principal

Estado do usuário

O Equinix Metal™ fornece um ponto de extremidade de estado do usuário para você enviar e emitir informações de estado personalizadas durante o processo de provisionamento .

Ao você o provisionamento com uma das imagens de sistema operacional fornecidas Equinix Metal, o endpoint de estado do usuário fica acessível a partir do seu servidor após a inicialização do hardware e a conclusão do processo de criação da imagem. Nessa configuração, o uso padrão do estado do usuário consiste em definir o evento no seu script de dados do usuário (user-data.mdx) para enviar informações de estado sobre as operações de dados do usuário .

Ao usar o iPXE personalizado para provisionar o usuário, o endpoint fica acessível após a inicialização do hardware e a instalação da imagem fornecida. Nesse caso, o Estado do Usuário permite que você envie informações de estado durante e após o processo de criação de imagens.

Recuperando o ponto final do estado do usuário

O ponto de extremidade do Estado do Usuário depende do local onde o servidor está provisionado, portanto, você precisará recuperá-lo dos metadados do servidor antes de você usá-lo. Por exemplo, se você acessar um servidor provisionado via SSH e usar o cURL para acessar os metadados:

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

retorna a URL dos eventos do estado do usuário:

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

Para usar isso durante o processo de provisionamento, você pode escrever um script bash (exemplo) em seus Dados do Usuário para recuperar e armazenar o endpoint do Estado do Usuário como uma variável de ambiente .

Criando um evento de estado de usuário personalizado

Se você quiser criar um evento de estado de usuário personalizado, envie uma solicitar POST para o endpoint de estado do usuário .

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

O corpo da solicitar POST pode aceitar os seguintes campos:

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

Por exemplo, você pode usar isso no final do seu script de dados do usuário para indicar que a execução do script de dados do usuário terminou após o provisionamento do servidor.

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

Visualizando os eventos na linha do tempo

A solicitar POST adiciona um evento à linha do tempo do servidor, que você pode visualizar no console e na API.

Acesse a aba Linha do Tempo do seu servidor.

Screenshot of the Device Timeline in the Console

Exemplo de script Bash

A seguir está um exemplo de script Bash que você pode usar no seu processo de instalação de imagem personalizada ou nos seus dados de usuário para enviar eventos de estado do usuário .

#!/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 :)"
Esta página foi útil?