任务中心
Task 插件提供强大的任务编排与执行能力,支持脚本执行、模板管理、文件分发等功能。
功能概览
图:任务中心概览
脚本执行
支持 Shell、Python、Perl 等多种脚本语言
模板管理
创建可复用的任务模板,支持参数化
文件分发
批量向多台主机分发文件
执行历史
完整的任务执行记录和日志
执行任务
图:执行任务页面
直接执行脚本
选择执行方式
进入「任务中心」→「执行任务」,选择「脚本执行」
编写脚本
在编辑器中编写脚本内容
#!/bin/bash
echo "系统信息:"
uname -a
echo "磁盘使用:"
df -h
echo "内存使用:"
free -m
选择目标主机
勾选要执行脚本的主机(支持多选)
执行并查看结果
点击「执行」,实时查看执行日志和结果
使用任务模板
选择模板
选择「使用模板」,从模板列表中选择
填写参数
如果模板有参数,填写参数值
选择主机并执行
选择目标主机,点击执行
任务模板
图:任务模板管理
创建模板
| 字段 | 说明 |
|---|---|
| 模板名称 | 模板的显示名称 |
| 模板编码 | 唯一标识符(英文) |
| 模板描述 | 模板用途说明 |
| 分类 | script / ansible / module |
| 平台 | linux / windows |
| 脚本内容 | 实际执行的脚本 |
| 超时时间 | 执行超时秒数 |
图:新增任务模板
参数化模板
使用 {{参数名}} 占位符定义参数:
#!/bin/bash
# 软件安装模板
# 参数: PACKAGE_NAME - 要安装的软件包
# 参数: SERVICE_NAME - 服务名称
echo "开始安装 {{PACKAGE_NAME}}..."
apt-get update
apt-get install -y {{PACKAGE_NAME}}
echo "启动服务 {{SERVICE_NAME}}..."
systemctl start {{SERVICE_NAME}}
systemctl enable {{SERVICE_NAME}}
echo "安装完成!"
systemctl status {{SERVICE_NAME}}
执行时系统会提示输入参数值。
图:执行时填写模板参数
文件分发
图:文件分发功能
分发流程
上传文件
选择要分发的文件或目录
配置参数
| 参数 | 说明 |
|---|---|
| 目标路径 | 文件存放位置 |
| 文件权限 | 如 755、644 |
| 所有者 | user:group 格式 |
选择目标主机
选择要分发到的主机
开始分发
查看分发进度和结果
脚本语言
Shell 脚本
#!/bin/bash
set -e # 遇到错误立即退出
# 检查服务状态
echo "检查 nginx 服务状态..."
systemctl status nginx
# 获取系统信息
echo "系统信息:"
uname -a
# 磁盘使用情况
echo "磁盘使用情况:"
df -h
Python 脚本
#!/usr/bin/env python3
import os
import subprocess
def check_disk_usage():
"""检查磁盘使用率"""
result = subprocess.run(['df', '-h'], capture_output=True, text=True)
print(result.stdout)
def check_memory():
"""检查内存使用"""
with open('/proc/meminfo', 'r') as f:
for line in f:
if 'Mem' in line:
print(line.strip())
if __name__ == '__main__':
print("=== 系统检查 ===")
check_disk_usage()
check_memory()
执行历史
图:任务执行历史
查看所有任务的执行记录:
| 字段 | 说明 |
|---|---|
| 任务名称 | 任务/模板名称 |
| 执行时间 | 任务开始时间 |
| 执行用户 | 发起执行的用户 |
| 目标主机 | 执行任务的主机数量 |
| 执行状态 | 成功/失败/部分成功 |
| 执行耗时 | 任务执行时长 |
点击记录可查看每台主机的详细执行日志。
最佳实践
使用 Shebang
始终在脚本开头指定解释器:#!/bin/bash
错误处理
使用 set -e 或检查命令返回值
幂等设计
脚本可重复执行不产生副作用
超时保护
对长期运行的命令设置超时