批量执行
介绍
包含 执行任务 与 模板管理 两部分功能,常用来执行一些临时的任务例如,批量安装 / 卸载某个依赖包、批量查看主机信息等。
执行任务
可以选择一到多个在主机管理中添加的主机作为执行的目标主机,命令内容可以直接编写,支持 Shell 与 Python 两种解释器,也可以通过 从执行模版中选择 读取已保存的命令模板。

执行后进入执行详情页,每台主机的输出实时展示,可以:
- 点击 终止执行 中止仍在运行的命令;
- 点击 打开 web 终端 直接登录对应主机排查问题;
- 输出内容可以直接用鼠标选中后复制。

执行记录会保留在页面下方,多次相同的执行记录会合并展示,每天自动清理,每个账户仅保留最近 10 条。
模板管理
用于存储复杂、常用的命令集合,以便后期可随时使用。

- 模板类型:模板的分类,可在下拉框中直接输入新的类型。
- 模板名称 / 脚本语言 / 模板内容:脚本语言支持
Shell与Python。 - 参数化:为模板定义参数,执行时会弹窗提示填写,最终以环境变量的形式传给脚本,详见下文。
- 目标主机:可选,预先关联默认的执行主机,执行任务时选择该模板会自动选中这些主机。
参数化模板
点击 参数化 表格中的 添加参数:
| 配置项 | 说明 |
|---|---|
| 参数名 | 参数的简短名称,展示在执行时的表单中 |
| 变量名 | 在脚本中使用的变量名,固定前缀 _SPUG_ 加输入的变量名,例如变量名 name 对应环境变量 _SPUG_name |
| 参数类型 | 文本框、密码框、下拉选择 |
| 可选项 | 参数类型为下拉选择时填写,每项单独一行,可以用英文冒号分割值与显示内容,例如 lisi:李四 |
| 必填 | 是否必填 |
| 默认值 / 提示信息 | 默认值与展示在输入框下方的提示 |
在脚本中引用参数:
echo "即将重启服务: $_SPUG_service"
systemctl restart $_SPUG_service
全局变量
在 Shell 脚本中通过 $SPUG_HOST_HOSTNAME 来引用,在 Python 脚本中可以通过 os.getenv('SPUG_HOST_HOSTNAME') 来引用。
| 变量名 | 示例 | 说明 |
|---|---|---|
| SPUG_HOST_ID | 1 | 主机ID |
| SPUG_HOST_NAME | webserver01 | 主机名称 |
| SPUG_HOST_HOSTNAME | 172.10.26.5 | 主机IP/域名 |
| SPUG_SSH_PORT | 22 | SSH连接端口 |
| SPUG_SSH_USERNAME | root | SSH连接用户 |
| SPUG_INTERPRETER | python | 命令解释器 |
权限说明
- 执行任务:允许执行批量命令,可操作的主机范围由角色的主机权限决定。
- 查看 / 新建 / 编辑 / 删除模板:模板管理的对应操作权限。