1、salt job管理
1.什么是job?
- salt每次运行任务时都会将作业任务发布到pub-sub总线,minion会对任务做出相应。
- 为区分不同的任务,salt-master每次发布一个任务都会为该任务创建一个jobid,不同的jobid对应一个独立的操作任务。
- master端默认情况下回缓存24小时内的所有job的详细操作,缓存目录为
/var/cache/salt/master/jobs
。 - minion端每次执行任务都会在
/var/cache/salt/master/jobs
目录中创建以jobid为名称的文件,文件里面也是对本次任务的缓存。任务执行完毕后文件会被删除。 - 例子如下:
## 在minion执行 [root@138 ~]# ls /var/cache/salt/minion/proc/ 输出为空
## 在master上执行一个长时间任务 [root@localhost ~]# salt 138 cmd.run "sleep 100"
## minion端上,用strings查看
[root@138 ~]# ls /var/cache/salt/minion/proc/
20170926162337629827
[root@138 ~]# strings /var/cache/salt/minion/proc/20170926162337629827
tgt_type
glob
20170926162337629827
user
root
sleep 100
cmd.run
20170926162337629827即为jobid,在任务执行完成后会被删除
2、管理job
#### 查看相关job的信息
[root@localhost ~]# salt "*" saltutil.find_job 20170926180228138610
138:
----------
arg:
- sleep 100
fun:
cmd.run
jid:
20170926180228138610
pid:
3050
ret:
tgt:
*
tgt_type:
glob
to:
5
user:
root
#### kill指定的job
[root@localhost ~]# salt "*" saltutil.kill_job 20170926180228138610
#### 查看master上cache的所有job:
[root@localhost ~]# salt "*" saltutil.runner jobs.list_jobs|more