腾讯云 自动化助手(TencentCloud Automation Tools,TAT)是云服务器 CVM 和轻量应用服务器 Lighthouse 的原生运维部署工具。自动化助手提供了一种自动化的远程操作方式,无需登录及密码,即可批量执行命令(Shell、PowerShell 等),完成运行自动化运维脚本、轮询进程、安装/卸载软件、更新应用及安装补丁等任务。
实例需要开通
自动化助手(免费)。
ins-xxxxxxxxap-城市代码,如 ap-guangzhou(广州)、ap-beijing(北京)等如果已经在实例内部,可以通过实例元数据服务获取实例信息:
# 获取实例 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: 可选,命令类型,目前支持取值:SHELL、POWERSHELL、BAT。默认: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 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