logo
5
2
Login
docs: update for instance-id

tcloud-cmd

腾讯云 自动化助手(TencentCloud Automation Tools,TAT)是云服务器 CVM 和轻量应用服务器 Lighthouse 的原生运维部署工具。自动化助手提供了一种自动化的远程操作方式,无需登录及密码,即可批量执行命令(Shell、PowerShell 等),完成运行自动化运维脚本、轮询进程、安装/卸载软件、更新应用及安装补丁等任务。

该插件封装了 远程命令执行接口查询执行任务

实例需要开通 自动化助手(免费)。

参数获取方法

获取 API 密钥 (secret_id 和 secret_key)

  1. 登录腾讯云控制台,点击右上角头像,选择"访问管理"
  2. 在左侧菜单中选择"访问密钥" > "API密钥管理"
  3. 点击"新建密钥"创建新的API密钥
  4. 保存生成的 SecretId 和 SecretKey,SecretKey 只在创建时显示一次,请妥善保管

获取实例 ID (instance_ids)

  1. 登录腾讯云控制台,进入"云服务器 CVM"或"轻量应用服务器 Lighthouse"产品页面
  2. 在实例列表中找到需要操作的实例
  3. 实例 ID 格式为 ins-xxxxxxxx

获取地域 (region)

  1. 登录腾讯云控制台,在实例列表页面左上角可查看当前地域
  2. 地域格式为 ap-城市代码,如 ap-guangzhou(广州)、ap-beijing(北京)等
  3. 也可以通过 查询地域列表 API 获取完整的地域列表

通过实例元数据获取实例信息

如果已经在实例内部,可以通过实例元数据服务获取实例信息:

# 获取实例 ID, only for CVM curl http://metadata.tencentyun.com/latest/meta-data/instance-id # 获取实例所在地域 curl http://metadata.tencentyun.com/latest/meta-data/placement/region

注意:实例元数据服务只能从实例内部访问

参数

  • secret_id:必填,腾讯云 API 密钥 SecretId。
  • secret_key:必填,腾讯云 API 密钥 SecretKey。
  • region:必填,腾讯云地域,如 ap-guangzhou
  • instance_ids:必填,实例 ID 列表,用 ,; 或换行符分隔,如 ins-123456,ins-123456
  • script:必填,要执行的命令,如 ls -l,插件会转成 base64 编码,可以用参数 {{some-key}},可在插件参数 parameters 中定义。
  • command_type: 可选,命令类型,目前支持取值:SHELLPOWERSHELLBAT。默认:SHELL
  • timeout:可选,命令执行超时时间,单位秒,默认 60 秒。
  • working_directory:可选,命令执行的工作目录,默认 /root
  • enable_parameter:可选,是否启用参数,默认 false
  • parameters:可选,参数定义,如 {"some-key": "some-value"},可在插件参数 script 中使用。
  • username: 可选,执行命令的用户名,默认 root
  • interval: 可选,轮询执行结果间隔,单位毫秒,默认 10000 毫秒。
  • query_instance: 可选,执行结束后是否查询输出实例执行结果,默认 false

参数详细信息请参考 API 文档

插件参数 script 对应 API 参数 content,插件会自动对其进行 base64 编码。

使用示例

在 云原生构建 中使用

在密钥仓库文件中定义腾讯云 API 密钥,如 env.yml

# env.yml SECRET_ID: xxx SECRET_KEY: xxx # 声明该密钥仓库文件可被指定仓库引用 allow_slugs: - your-group/your-repo # 声明该密钥仓库文件可被 tcloud-cmd 插件任务引用 allow_images: - tencentcom/tcloud-cmd

示例1:

# .cnb.yml main: push: - stages: - name: tcloud-cmd # 引用密钥仓库文件 imports: https://xxx/env.yml image: tencentcom/tcloud-cmd settings: secret_id: ${SECRET_ID} secret_key: ${SECRET_KEY} region: ap-guangzhou instance_ids: ins-123456,ins-123456 script: ls query_instance: true

示例2:

# .cnb.yml main: push: - stages: - name: tcloud-cmd imports: https://xxx/env.yml image: tencentcom/tcloud-cmd settings: secret_id: ${SECRET_ID} secret_key: ${SECRET_KEY} region: ap-guangzhou instance_ids: ins-123456,ins-123456 script: ls {{some-path}} enable_parameter: true parameters: {"some-path": "some-directory"} query_instance: true

使用 Docker 镜像

docker run --rm \ -e TZ=Asia/Shanghai \ -e PLUGIN_SECRET_ID='xxx' \ -e PLUGIN_SECRET_KEY='xxx' \ -e PLUGIN_REGION='ap-guangzhou' \ -e PLUGIN_SCRIPT='ls {{directory}}' \ -e PLUGIN_INSTANCE_IDS='ins-xxx,ins-xxx' \ -e PLUGIN_WORKING_DIRECTORY='xxx' \ -e PLUGIN_ENABLE_PARAMETER='true' \ -e PLUGIN_PARAMETERS='{"directory": "xxx"}' \ -e PLUGIN_USERNAME=root \ -e PLUGIN_COMMAND_TYPE=SHELL \ -e PLUGIN_TIMEOUT=10 \ -v $(pwd):$(pwd) \ -w $(pwd) \ tencentcom/tcloud-cmd