logo
0
0
WeChat 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