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: 1 # cat top.sls base: 'hzbj-tomcat-02(1|2)': - match: pcre - zabbix-agent - schedule