速云科技

SaltStack Job管理

1 什么是Job?

我们没执行一次salt命令就会产生一个Job,在日常的管理工作中,我们需要管理这些Job。比如由于网络原因,一个Job执行中断了,需要知道Job目前的工作状态。再比如我们要kill掉一个刚刚执行的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选项调整)

2   Job常用管理

saltutil模块中的job管理⽅法

saltutil.running #查看minion当前正在运⾏的jobs

saltutil.find_job<jid> #查看指定jid的job(minion正在运⾏的jobs)

saltutil.signal_job<jid> <single> #给指定的jid进程发送信号

saltutil.term_job <jid> #终⽌指定的jid进程(信号为15)

saltutil.kill_job <jid> #终⽌指定的jid进程(信号为9)

❖salt runner中的job管理⽅法

salt-run jobs.active#查看所有minion当前正在运⾏的jobs(在所有minions上运⾏saltutil.running)

salt-run jobs.lookup_jid<jid> #从master jobs cache中查询指定jid的运⾏结果

salt-run jobs.list_jobs#列出当前master jobs cache中的所有job

欢迎留言