批量部署
批量部署功能允许您使用 Equinix Metal™ API 一次性部署多台服务器。如果您尚未使用 Terraform 等工具(Terraform 本身就包含处理大规模部署的方法),此功能将非常有用。批量部署适用于在同一 Metro 中部署相同服务器计划和相同操作系统的服务器。如果您要部署大量服务器,我们建议您在运行批量部署之前,先检查目标 Metro 的容量级别。
进行批量部署
要进行批量部署,请向 /projects/{id}/devices/batch 端点发送 POST 请求。将批量部署需求作为 JSON 对象 batches 放在请求正文中发送。
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>
}
]
}'
身体参数:
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.
在配置单个服务器时可用的所有可选字段,在创建批量部署时也同样可用。有关完整列表,请参阅API 参考。
批量部署是一个异步过程,因此响应包含批次 ID、状态和时间戳。您可以在过程运行时使用批次 ID 来检查状态。
{
"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>"}
}
]
}
指定主机名
如果您想为服务器命名,请在请求中使用 hostname 或 "hostnames。
要按顺序命名服务器,请在 batches 对象中使用 hostname 参数,并使用 {{index}} 创建一个可解析的主机名。例如,"dev.server{{index}}",其中 {{index}} 将在服务器配置期间按逻辑顺序(1、2、3、...)替换为整数。
'{
"batches": [
{
"metro": "<metro_code>",
"plan": "<plan_code>",
"operating_system": "<os_slug>",
"quantity": <number_of_servers>,
"hostname": "dev.server{{index}}"
}
]
}'
批次部署完成后,服务器将被命名为 dev.server1、dev.server2 和 dev.server3。
要为每个服务器指定一个特定的名称,请在 batches 对象中使用 hostnames 参数,并向其传递一个主机名数组。
'{
"batches": [
{
"metro": "<metro_code>",
"plan": "<server_type>",
"operating_system": "<os_code>",
"quantity": <number_of_servers>,
"hostnames": ["dev.server1","dev.server2","dev.server3"]
}
]
}'
您无需为服务器指定主机名。如果您既不提供 hostname 也不提供 hostnames,服务器将使用自动生成的名称进行配置。您可以在配置完成后更改服务器主机名。
检查批量部署状态
要检查批量部署的状态,请向 /batches/{id} 端点发送 GET 请求。批量部署 ID 是您创建批量部署时响应的一部分。
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' "https://api.equinix.com/metal/v1/batches/{id}"
批量请求有四种状态。
| State | Description |
|---|---|
| 已排队 | 批量部署开始时处于“已排队”状态,同时正在验证您的请求并检查位置容量。 |
| 进行中 | 一旦您的请求通过验证,它将移至 in_progress。 |
| 已完成 | 当服务器可用并开始配置以满足您的请求时,它将移至 completed。 |
| 失败 | 如果无法配置服务器,则批处理请求将被标记为 failed,您可以在 ‘error_messages’ 字段中看到原因。 |
从项目检索所有批次
要列出项目中的所有批量部署,请向 /projects/{id}/batches 端点发送 GET 请求。
curl -X GET -H "X-Auth-Token: API-TOKEN" "https://api.equinix.com/metal/v1/projects/{id}/batches"
- 如果您通常使用 Equinix Metal 控制台来配置服务器,则响应中包含的批次数量会超出预期。这是因为 Equinix Metal 控制台会为每个服务器部署创建一个包含单个实例 (
"quantity": 1) 的批次。如果您通过/devicesAPI 端点创建服务器实例,则该实例不被视为批次,因此不会显示在此端点返回的列表中。