跳到主要内容
版本:4.x

批量执行

介绍

包含 执行任务模板管理 两部分功能,常用来执行一些临时的任务例如,批量安装 / 卸载某个依赖包、批量查看主机信息等。

执行任务

可以选择一到多个在主机管理中添加的主机作为执行的目标主机,命令内容可以直接编写,支持 ShellPython 两种解释器,也可以通过 从执行模版中选择 读取已保存的命令模板。

执行任务

执行后进入执行详情页,每台主机的输出实时展示,可以:

  • 点击 终止执行 中止仍在运行的命令;
  • 点击 打开 web 终端 直接登录对应主机排查问题;
  • 输出内容可以直接用鼠标选中后复制。

执行结果

执行记录会保留在页面下方,多次相同的执行记录会合并展示,每天自动清理,每个账户仅保留最近 10 条。

模板管理

用于存储复杂、常用的命令集合,以便后期可随时使用。

模板管理

  • 模板类型:模板的分类,可在下拉框中直接输入新的类型。
  • 模板名称 / 脚本语言 / 模板内容:脚本语言支持 ShellPython
  • 参数化:为模板定义参数,执行时会弹窗提示填写,最终以环境变量的形式传给脚本,详见下文。
  • 目标主机:可选,预先关联默认的执行主机,执行任务时选择该模板会自动选中这些主机。

参数化模板

点击 参数化 表格中的 添加参数

配置项说明
参数名参数的简短名称,展示在执行时的表单中
变量名在脚本中使用的变量名,固定前缀 _SPUG_ 加输入的变量名,例如变量名 name 对应环境变量 _SPUG_name
参数类型文本框、密码框、下拉选择
可选项参数类型为下拉选择时填写,每项单独一行,可以用英文冒号分割值与显示内容,例如 lisi:李四
必填是否必填
默认值 / 提示信息默认值与展示在输入框下方的提示

在脚本中引用参数:

echo "即将重启服务: $_SPUG_service"
systemctl restart $_SPUG_service

全局变量

在 Shell 脚本中通过 $SPUG_HOST_HOSTNAME 来引用,在 Python 脚本中可以通过 os.getenv('SPUG_HOST_HOSTNAME') 来引用。

变量名示例说明
SPUG_HOST_ID1主机ID
SPUG_HOST_NAMEwebserver01主机名称
SPUG_HOST_HOSTNAME172.10.26.5主机IP/域名
SPUG_SSH_PORT22SSH连接端口
SPUG_SSH_USERNAMErootSSH连接用户
SPUG_INTERPRETERpython命令解释器

权限说明

  • 执行任务:允许执行批量命令,可操作的主机范围由角色的主机权限决定。
  • 查看 / 新建 / 编辑 / 删除模板:模板管理的对应操作权限。