Implantações em lote
O recurso de implantação em lote permite implantar vários servidores simultaneamente usando a API Equinix Metal ™. Isso é útil se você ainda não usa uma ferramenta como o Terraform, que inclui seu próprio método para lidar com grandes implantações. As implantações em lote servem para implantar servidores na mesma área metropolitana, com o mesmo plano de servidor e o mesmo sistema operacional. Se você estiver implantando uma grande quantidade de servidores, recomendamos verificar os níveis de capacidade na área metropolitana desejada antes de executar uma implantação em lote.
Fazendo uma implantação em lote
Para fazer uma implantação em lote, envie uma solicitar POST para o endpoint /projects/{id}/devices/batch. Envie seus requisitos de lote como o objeto JSON batches no corpo da solicitar.
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/devices/batch" \
-d '{
"batches": [
{
"metro": "<metro_code>",
"plan": "<plan_code>",
"operating_system": "<os_slug>",
"quantity": <number_of_servers>
}
]
}'
Parâmetros corporais:
metro(required) - The Metro code representing the Metro where you are deploying servers.plan(required) - The plan code that represents the server type you are deploying.operating_system(required) - The slug representing which operating system to install on to your servers.quantity(required) - An integer specifying how many servers to deploy in the batch.
Todos os campos opcionais disponíveis ao provisionar servidores individuais também estão disponíveis ao você uma implantação em lote. Consulte a Referência da API para obter uma lista completa.
A implantação de um lote é um processo assíncrono, portanto, a resposta inclui o ID do lote, o estado e os registros de data e hora. Você pode usar o ID do lote para verificar o estado enquanto o processo é executado.
{
"batches":[
{
"id":"34876707-a2e5-4949-8825-5b4dfd541db8",
"error_messages":[],
"quantity":2,
"state":"queued",
"created_at":"2020-10-06T18:29:34Z",
"updated_at":"2020-10-06T18:29:34Z",
"devices":[],
"project":{"href":"/metal/v1/projects/<project_id>"}
}
]
}
Especificando nomes de host
Se você quiser nomear seus servidores, use hostname ou "hostnames em sua solicitar.
Para nomear seus servidores sequencialmente, use o parâmetro hostname em seu objeto batches e crie um nome de host analisável com {{index}}. Por exemplo, "dev.server{{index}}" onde {{index}} será substituído por um inteiro em pedido lógica (1, 2, 3,...) durante o provisionamento do servidor.
'{
"batches": [
{
"metro": "<metro_code>",
"plan": "<plan_code>",
"operating_system": "<os_slug>",
"quantity": <number_of_servers>,
"hostname": "dev.server{{index}}"
}
]
}'
Assim que o lote terminar de implantar, os servidores serão nomeados dev.server1, dev.server2 e dev.server3.
Para nomear cada servidor com um nome específico, use o parâmetro hostnames em seu objeto batches e passe a ele uma matriz de nomes de host.
'{
"batches": [
{
"metro": "<metro_code>",
"plan": "<server_type>",
"operating_system": "<os_code>",
"quantity": <number_of_servers>,
"hostnames": ["dev.server1","dev.server2","dev.server3"]
}
]
}'
Não é necessário especificar nomes de host para seus servidores. Se você não fornecer hostname ou hostnames, os servidores serão provisionados com nomes gerados automaticamente. Você pode alterar os nomes de host do servidor após o provisionamento.
Verificando o status da implantação em lote
Para verificar o status de suas implantações em lote, envie uma solicitar GET para o endpoint /batches/{id}. O ID do lote faz parte da resposta quando você cria uma implantação em lote.
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' "https://api.equinix.com/metal/v1/batches/{id}"
Há quatro estados para solicitações em lote.
| State | Description |
|---|---|
| Em fila | Uma implantação em lote começa como 'em fila' enquanto sua solicitar está sendo validada e a capacidade do local está sendo verificada. |
| em_progresso | Assim que sua solicitar passar pela validação, ela irá para in_progress. |
| concluído | Quando os servidores estiverem disponíveis e começarem a provisionamento para atender à sua solicitar, ela será movida para completed. |
| falhou | Se os servidores não puderem ser provisionados, a solicitar em lote será marcada como failed e você poderá ver o motivo no campo ‘error_messages’. |
Recuperando todos os lotes de um projeto
Para listar todas as suas implantações em lote em um projeto, envie uma solicitar GET para o endpoint /projects/{id}/batches.
curl -X GET -H "X-Auth-Token: API-TOKEN" "https://api.equinix.com/metal/v1/projects/{id}/batches"
- Se você normalmente usa o console Equinix Metal para provisionar servidores, a resposta conterá mais lotes do que o esperado. Isso ocorre porque o console Equinix Metal cria um lote de uma única instância (
"quantity": 1) para cada implantação de servidor. Se você criar instâncias de servidor por meio do endpoint da API/devices, isso não será considerado um lote e, portanto, não aparecerá na lista retornada por este endpoint.