SaltStack Job管理

时间:2023-03-09 03:10:59
SaltStack  Job管理

Job基本管理

Jid: job id,格式为%Y%m%d%H%M%S%f

在master在下发指令消息时,会附带上产生的jid.minion在接收到指令开始执行时,会

在本地的cachedir(默认是/var/cache/salt/minion/)下的proc目录下产生以该jid

命名的文件,用于在执行过程中master查看当前任务的执行情况,指令执行完毕

将结果传送给master后,删除该临时文件

master将minion的执行结果存放在本地/var/cache/salt/master/jobs目录

默认缓存24小时(可以通过修改master配置文件keepjobs选项调整)

SaltStack模块中的job管理方法

#查看minion当前正在运行的jobs
# salt '*' saltutil.running #查看指定jid的job(minion正在运行的jobs)
## salt '*' saltutil.find_job <jid> #给指定的jid进程发送信号
## salt '*' saltutil.signal_job <jid> <single> #终止指定的jid进程
# salt '*' saltutil.term_job <jid> #终止指定的jid进程(信号为9)
## salt '*' saltutil.kill_job <jid>

salt runner中的job管理方法

#查看所有minion当前正在运行的jobs(在所有minions上运行saltutil.running)
## salt-run jobs.active #从master jobs cache中查询指定jid的运行结果
#salt-run jobs.lookup_jid <jid> #列出当前master jobs cache中所有job
# salt-run jobs.list_jobs

更得jobs参考

http://docs.saltstack.com/en/latest/topics/jobs/index.html

Schedule任务管理

SaltStack可以很容易实现批量计算任务的创建和管理

按照官方文档的描述,计划任务有3种配置方式,分别是

1 在master配置文件中配置

2 在minion配置文件中配置

3 在pillar中配置

每30分钟minion执行一次highstate(配置在minion配置文件或pillar中)

每分钟查询一次loadavage,并将结果输出到mysql returner中

案例:

每分钟minion端执行时间

# pwd
/srv/pillar/base
# cat schedule.sls
schedule:
hellowworld:
function: cmd.run
args:
- date >> /tmp/test.log
minutes: # cat top.sls
base:
'hzbj-tomcat-02(1|2)':
- match: pcre
- zabbix-agent
- schedule