设为首页 收藏本站
查看: 1329|回复: 0

[经验分享] saltstack学习笔记9-JOB

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-20 09:34:36 | 显示全部楼层 |阅读模式
saltstack里面执行任何一个操作都会在master上产生一个jid号,就像上一节存储到redis上的数据显示的一样


./redis-cli monitor
OK
1461054358.412376 [0 127.0.0.1:58564] "SELECT" "0"
1461054358.412717 [0 127.0.0.1:58564] "SET" "minion1:20160419162558137768" "{\"fun_args\": [\"hostname\"], \"jid\": \"20160419162558137768\", \"return\": \"minion1\", \"retcode\": 0, \"success\": true, \"fun\": \"cmd.run\", \"id\": \"minion1\"}"
1461054358.413143 [0 127.0.0.1:58564] "LPUSH" "minion1:cmd.run" "20160419162558137768"
1461054358.413482 [0 127.0.0.1:58564] "SADD" "minions" "minion1"
1461054358.413791 [0 127.0.0.1:58564] "SADD" "jids" "20160419162558137768"
1461058032.241332 [0 127.0.0.1:58567] "SELECT" "0"
1461058032.241541 [0 127.0.0.1:58567] "SET" "minion1:20160419172712073319" "{\"fun_args\": [\"free -m\"], \"jid\": \"20160419172712073319\", \"return\": \"             total       used       free     shared    buffers     cached\\nMem:           988        826        162          0         41        545\\n-/+ buffers/cache:        239        749\\nSwap:         4095          0       4095\", \"retcode\": 0, \"success\": true, \"fun\": \"cmd.run\", \"id\": \"minion1\"}"
1461058032.242293 [0 127.0.0.1:58567] "LPUSH" "minion1:cmd.run" "20160419172712073319"
1461058032.242815 [0 127.0.0.1:58567] "SADD" "minions" "minion1"
1461058032.243637 [0 127.0.0.1:58567] "SADD" "jids" "20160419172712073319"

minion端会在cache目录下的proc目录创建一个以jid为名称的文件,这个文件里面的内容就是此次操作的记录,当操作处理完成后该文件会自动删除。而master端会记录每次操作的详细信息,这个记录都是存在master端cache目录下jobs下。下面通过实例来了解日常job管理。

通过salt-run来管理job

salt-run -d|grep jobs
'jobs.active:'
    Return a report on all actively running jobs from a job id centric
        salt-run jobs.active
'jobs.list_job:'
        salt-run jobs.list_job 20130916125524463507
'jobs.list_jobs:'
    List all detectable jobs and associated functions
        salt-run jobs.list_jobs
'jobs.lookup_jid:'
        salt-run jobs.lookup_jid 20130916125524463507
        salt-run jobs.lookup_jid 20130916125524463507 outputter=highstate
'jobs.print_job:'
        salt-run jobs.print_job 20130916125524463507

这里会显示salt-run关于job操作的所有命令,关于每个参数的解释大家可以通过salt-run -d jobs来查看

salt 'minion1' cmd.run 'sleep 100;whoami'

^CExiting on Ctrl-C
This job's jid is:
20160419174043844662
The minions may not have all finished running and any remaining minions will return upon completion. To look up the return data for this job later run:
salt-run jobs.lookup_jid 20160419174043844662

等待时间过长这里直接ctrl-C了,可以看到jid号
salt-run jobs.lookup_jid 20160419174043844662

查看这个job的详细记录
salt-run jobs.list_job 20160419174043844662
Arguments:
    - sleep 100;whoami
Function:
    cmd.run
Minions:
    - minion1
Result:
    ----------
    minion1:
        ----------
        return:
            root
StartTime:
    2016, Apr 19 17:40:43.844662
Target:
    minion1
Target-type:
    glob
User:
    root
jid:
    20160419174043844662

通过saltstack module来管理job
上面已经介绍通过salt-run可以对日常job进行管理,为什么要用module来管理job呢。salt-run对job管理功能比较局限,上面我们也看到了目前salt-run不支持kill某个job。现在我们就开始介绍使用saltstack自带的module来管理job

查看相关module的用法
salt '*' sys.doc saltutil|grep job
'saltutil.find_cached_job:'
    Return the data for a specific cached job id
        salt '*' saltutil.find_cached_job <job id>
'saltutil.find_job:'
    Return the data for a specific job id
        salt '*' saltutil.find_job <job id>
'saltutil.kill_job:'
    Sends a kill signal (SIGKILL 9) to the named salt job's process
        salt '*' saltutil.kill_job <job id>
        salt '*' saltutil.runner jobs.list_jobs
'saltutil.signal_job:'
    Sends a signal to the named salt job's process
        salt '*' saltutil.signal_job <job id> 15
'saltutil.term_job:'
    Sends a termination signal (SIGTERM 15) to the named salt job's process
        salt '*' saltutil.term_job <job id>

我们继续按照上面的例子来测试
salt 'minion1' cmd.run 'sleep 100;whoami'

终止命令获得jid
20160419175202067782

使用module来管理job
salt 'minion1' saltutil.find_job 20160419175202067782
minion1:
    ----------
    arg:
        - sleep 100;whoami
    fun:
        cmd.run
    jid:
        20160419175202067782
    pid:
        25659
    ret:
    tgt:
        minion1
    tgt_type:
        glob
    user:
        root

我们还可以直接kill掉这个job
salt 'minion1' saltutil.kill_job 20160419175202067782


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-206369-1-1.html 上篇帖子: saltstack学习笔记8-Return 下篇帖子: saltstack学习笔记10-Event和Reactor系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表