​如何通过京东云CLI工具批量管理多台云主机?

通过京东云CLI(Command Line Interface)工具可以高效地批量管理多台云主机(如创建、启动、停止、删除、查询等操作)。以下是详细的使用步骤和示例,帮助你实现批量管理。


一、准备工作

  1. 安装京东云CLI工具

    • 下载地址:京东云CLI官方文档
    • 支持平台:Windows、Linux、macOS
    • 安装方式(以Linux/macOS为例):
      curl -O https://dl.jdc.com/cli/jdcloud-cli-linux-amd64.tar.gz
      tar -xzf jdcloud-cli-linux-amd64.tar.gz
      sudo mv jdcloud /usr/local/bin/
    • 验证安装:
      jdcloud --version
  2. 配置访问凭证

    • 登录京东云控制台,进入“访问控制(IAM)” → “访问密钥” → 创建Access Key(包含 AccessKeyId 和 SecretAccessKey)
    • 配置CLI:
      jdcloud configure

      按提示输入:

      • Access Key ID
      • Secret Access Key
      • 默认地域(如 cn-north-1)
      • 输出格式(json 或 text)

二、常用云主机管理命令(vm 模块)

京东云CLI中管理云主机的命令前缀为 jdcloud vm

常用命令示例:

操作 命令
查询云主机列表 jdcloud vm describe-instances
启动云主机 jdcloud vm start-instance --instance-id i-xxx
停止云主机 jdcloud vm stop-instance --instance-id i-xxx
重启云主机 jdcloud vm reboot-instance --instance-id i-xxx
创建云主机 jdcloud vm create-instances ...
删除云主机 jdcloud vm delete-instance --instance-id i-xxx

三、批量管理多台云主机的方法

方法1:通过脚本批量操作(推荐)

使用Shell脚本读取实例ID列表并循环执行操作。

示例:批量停止云主机

#!/bin/bash
# 文件:batch_stop.sh
# 实例ID列表,每行一个
INSTANCE_IDS=(
    "i-abc123"
    "i-def456"
    "i-ghi789"
)

for instance_id in "${INSTANCE_IDS[@]}"; do
    echo "正在停止实例: $instance_id"
    jdcloud vm stop-instance --instance-id "$instance_id"
    sleep 1  # 避免API调用过快
done

运行脚本:

chmod +x batch_stop.sh
./batch_stop.sh

方法2:从文件读取实例ID

创建一个 instance_ids.txt 文件,内容如下:

i-abc123
i-def456
i-ghi789

批量启动脚本示例:

while read instance_id; do
    echo "启动实例: $instance_id"
    jdcloud vm start-instance --instance-id "$instance_id"
done < instance_ids.txt

方法3:结合查询结果进行批量操作

先查询所有运行中的实例,再批量停止:

# 查询所有实例并提取运行中的实例ID
jdcloud vm describe-instances --output json | 
jq -r '.result.instances[] | select(.status == "running") | .instanceId' | 
while read instance_id; do
    echo "停止运行中的实例: $instance_id"
    jdcloud vm stop-instance --instance-id "$instance_id"
done

注意:需要安装 jq 工具解析JSON。


四、批量创建云主机

京东云支持批量创建云主机,使用 create-instances 命令并设置 count 参数。

jdcloud vm create-instances 
    --instance-name "batch-vm" 
    --instance-type "g.n2.small" 
    --image-id "img-xxx" 
    --az "cn-north-1a" 
    --subnet-id "subnet-xxx" 
    --key-names "key-xxx" 
    --count 3 
    --hostname-prefix "web" 
    --hostname-format "%s%03d"  # 生成 web001, web002, web003

五、最佳实践建议

  1. 使用标签(Tag)管理

    • 给云主机打标签(如 env=prod, role=web),便于筛选。
    • 查询带标签的实例:
      jdcloud vm describe-instances --filters "name=tag:env,values=prod"
  2. 错误处理与日志

    • 在脚本中加入错误判断:
      if ! jdcloud vm stop-instance --instance-id "$instance_id"; then
          echo "失败: $instance_id" >> error.log
      fi
  3. 使用Region参数

    • 如果资源跨地域,使用 --region 指定区域:
      jdcloud vm describe-instances --region cn-east-1

六、参考文档

  • 京东云CLI官方文档:https://docs.jdcloud.com/cn/cli/
  • VM API文档:https://docs.jdcloud.com/cn/virtual-machines/api/

通过以上方法,你可以轻松实现对京东云多台云主机的批量自动化管理。建议结合Shell脚本 + 标签 + JSON解析工具(如jq)实现高效运维。

未经允许不得转载:云计算导航 » ​如何通过京东云CLI工具批量管理多台云主机?