Saltstack 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选项调整)

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>

Job调试举例

  • 启用一个一直停留在后台中运行的异步job:

salt --async gqtest cmd.run "ping qq.com"

  • 查看当前活动的jobs:

salt-run jobs.active

  • 查看指定job id的返回结果:

salt-run jobs.lookup_jid "JOB_ID"

  • 杀掉一个指定的job:

salt gqtest saltutil.term_job "JOB_ID"


salt job执行结果在缓存中保留24小时后,会被自动清除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值