Skip to main content

Déploiements par lots

La fonctionnalité de déploiement par lots permet de déployer plusieurs serveurs à la fois à l'aide de l'API Equinix Metal™. Cette fonction est utile si vous n'utilisez pas déjà un outil comme Terraform, qui inclut sa propre méthode pour gérer les déploiements de grande envergure. Les déploiements par lots permettent de déployer des serveurs dans le même métro, avec le même plan de serveur et le même système d'exploitation. Si vous déployez un grand nombre de serveurs, nous vous recommandons de vérifier les niveaux de capacité dans le métro de votre choix avant d'exécuter un déploiement par lots.

Déploiement par lots

Pour effectuer un déploiement par lots, envoyez une demande POST au point de terminaison /projects/{id}/devices/batch. Envoyez vos exigences en matière de lots sous la forme de l'objet JSON batches dans le corps de la demande.

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>
}
]
}'

Paramètres du corps :

  • 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.

Tous les champs facultatifs disponibles lorsque vous provisionnez des serveurs individuels sont également disponibles lorsque vous créez un déploiement par lots. Consultez la Référence API pour obtenir une liste complète.

Le déploiement d'un lot est un processus asynchrone, la réponse comprend donc l'ID du lot, l'état et les horodatages. Vous pouvez utiliser l'ID du lot pour [vérifier l'état] (#checking-batch-deployment-status) pendant que le processus s'exécute.

{
"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>"}
}
]
}

Spécification des noms d'hôte

Si vous souhaitez nommer vos serveurs, utilisez hostname ou "hostnames dans votre demande.

Pour nommer vos serveurs de manière séquentielle, utilisez le paramètre hostname dans votre objet batches et créez un nom d'hôte analysable avec {{index}}. Par exemple, "dev.server{{index}}"{{index}} sera remplacé par un entier dans un ordre logique (1, 2, 3,...) lors du provisionnement du serveur.

'{
"batches": [
{
"metro": "<metro_code>",
"plan": "<plan_code>",
"operating_system": "<os_slug>",
"quantity": <number_of_servers>,
"hostname": "dev.server{{index}}"
}
]
}'

Une fois le déploiement du lot terminé, les serveurs sont nommés dev.server1, dev.server2 et dev.server3.

Pour nommer chaque serveur avec un nom spécifique, utilisez le paramètre hostnames dans votre objet batches et transmettez-lui un tableau de noms d'hôtes.

'{
"batches": [
{
"metro": "<metro_code>",
"plan": "<server_type>",
"operating_system": "<os_code>",
"quantity": <number_of_servers>,
"hostnames": ["dev.server1","dev.server2","dev.server3"]
}
]
}'

Il n'est pas nécessaire de spécifier les noms d'hôtes de vos serveurs. Si vous ne fournissez ni hostname ni hostnames, les serveurs seront provisionnés avec des noms générés automatiquement. Vous pouvez modifier les noms d'hôtes des serveurs après le provisionnement.

Vérification de l'état du déploiement par lots

Pour vérifier l'état de vos déploiements de lots, envoyez une requête GET au point de terminaison /batches/{id}. L'identifiant du lot fait partie de la réponse lorsque vous créez un déploiement par lots.

curl -X GET -H 'X-Auth-Token: <API_TOKEN>' "https://api.equinix.com/metal/v1/batches/{id}"

Il existe quatre états pour les demandes par lots.

StateDescription
queuedUn déploiement par lots commence par être "queued" pendant que votre demande est validée et que la capacité de l'emplacement est vérifiée.in_progress
completedLorsque les serveurs sont disponibles et qu'ils commencent à être approvisionnés pour répondre à votre demande, celle-ci passe à completed.failed

Récupération de tous les lots d'un projet

Pour répertorier tous vos déploiements par lots dans un projet, envoyez une requête GET au point de terminaison /projects/{id}/batches.

curl -X GET -H "X-Auth-Token: API-TOKEN" "https://api.equinix.com/metal/v1/projects/{id}/batches"
note
  • Si vous utilisez normalement la console Equinix Metal pour provisionner des serveurs, la réponse contiendra plus de lots que prévu. En effet, la console Metal d'Equinix crée un lot d'une seule instance ("quantity": 1) pour chaque déploiement de serveur. Si vous créez des instances de serveur via le point de terminaison API /devices l'instance n'est pas considérée comme un lot et n'apparaîtra donc pas dans la liste renvoyée par ce point d'accès.
Cette page vous a-t-elle été utile ?