Job管理

本章节参考《SaltStack技术入门与实践》,感谢该书作者: 刘继伟、沈灿、赵舜东

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

目前SaltStack提供两种方式来管理job:

  • salt-run
  • module

1、通过salt-run来管理job

首先我们来查看下salt-run对job管理的一些用法:

[root@SaltMaster1(10.182.88.136)]$~:>salt-run -d |grep jobs
jobs.active:    #查看当前运行的jobsReturn a report on all actively running jobs from a job id centricsalt-run jobs.active
jobs.exit_success:salt-run jobs.exit_success 20160520145827701627
jobs.last_run:List all detectable jobs and associated functionssalt-run jobs.last_runsalt-run jobs.last_run target=nodenamesalt-run jobs.last_run function='cmd.run'salt-run jobs.last_run metadata="{'foo': 'bar'}"
jobs.list_job:        #指定jid查看jobs详细信息salt-run jobs.list_job 20130916125524463507salt-run jobs.list_job 20130916125524463507 --out=pprint
jobs.list_jobs:       #查看所有jobs信息List all detectable jobs and associated functionsIf more than one of the below options are used, only jobs which matchsalt-run jobs.list_jobs search_metadata='{"foo": "bar", "baz": "qux"}'Can be passed as a string or a list. Returns jobs which match thesalt-run jobs.list_jobs search_function='test.*'salt-run jobs.list_jobs search_function='["test.*", "pkg.install"]'salt-run jobs.list_jobs search_function='test.*,pkg.install'Can be passed as a string or a list. Returns jobs which match thesalt-run jobs.list_jobs search_target='*.mydomain.tld'salt-run jobs.list_jobs search_target='["db*", "myminion"]'salt-run jobs.list_jobs search_target='db*,myminion'module is not installed, this argument will be ignored). Returns jobsmodule is not installed, this argument will be ignored). Returns jobssalt-run jobs.list_jobssalt-run jobs.list_jobs search_function='test.*' search_target='localhost' search_metadata='{"bar": "foo"}'salt-run jobs.list_jobs start_time='2015, Mar 16 19:00' end_time='2015, Mar 18 22:00'
jobs.list_jobs_filter:List all detectable jobs and associated functionssalt-run jobs.list_jobs_filter 50salt-run jobs.list_jobs_filter 100 filter_find_job=False
jobs.lookup_jid:    #指定jid查询jobs结果salt-run jobs.lookup_jid 20130916125524463507salt-run jobs.lookup_jid 20130916125524463507 --out=highstate
jobs.print_job:     #指定jid查询jobs详细信息salt-run jobs.print_job 20130916125524463507It can also be used to schedule jobs directly on the master, for example:

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

[root@SaltMaster1(10.182.88.136)]$~:>salt '10.182.76.78' cmd.run 'sleep 100;whoami'
^C
Exiting gracefully on Ctrl-c
This job's jid is: 20180624194553900549
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 the following command:salt-run jobs.lookup_jid 20180624194553900549

  因为等待时间过长我这里直接用Ctrl + C了,这个时候会提示此次任务的jid号。我们可以随时通过salt-run job管理来查看这个job信息。查询这个job的运行结果:

[root@SaltMaster1(10.182.88.136)]$~:>salt-run jobs.list_job 20180624194553900549
Arguments:- sleep 100;whoami
Function:cmd.run
Minions:- 10.182.76.78
Result:----------
StartTime:2018, Jun 24 19:45:53.900549
Target:10.182.76.78
Target-type:glob
User:root
jid:20180624194553900549

2、通过SaltStack Module来管理job

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

[root@SaltMaster1(10.182.88.136)]$~:>salt '10.182.76.78' sys.doc saltutil |grep job
saltutil.clear_job_cache:      Forcibly removes job cache folders and files on a minion.salt '*' saltutil.clear_job_cache hours=12
saltutil.find_cached_job:  #查询job cache信息Return the data for a specific cached job id. Note this only works ifcache_jobs has previously been set to True on the minion.salt '*' saltutil.find_cached_job <job id>
saltutil.find_job:      #查看job信息Return the data for a specific job id that is currently running.The job id to search for and return data.salt '*' saltutil.find_job <job id>Note that the find_job function only returns job information when the job is still running. Ifthe job is currently running, the output looks something like this:# salt my-minion saltutil.find_job 20160503150049487736If the job has already completed, the job cannot be found and therefore the function returns# salt my-minion saltutil.find_job 20160503150049487736
saltutil.kill_all_jobs:   Sends a kill signal (SIGKILL 9) to all currently running jobssalt '*' saltutil.kill_all_jobs
saltutil.kill_job:      #杀掉job(发送SIGTERM 9信号方式)Sends a kill signal (SIGKILL 9) to the named salt job's processsalt '*' saltutil.kill_job <job id>salt master_minion saltutil.runner jobs.list_jobs
saltutil.signal_job:     #发送指定信号Sends a signal to the named salt job's processsalt '*' saltutil.signal_job <job id> 15
saltutil.term_all_jobs:Sends a termination signal (SIGTERM 15) to all currently running jobssalt '*' saltutil.term_all_jobs
saltutil.term_job:      #删掉job(发送SIGTERM 15信号方式)Sends a termination signal (SIGTERM 15) to the named salt job's processsalt '*' saltutil.term_job <job id>

我们接着按照上面的例子来测试:

[root@SaltMaster1(10.182.88.136)]$~:>salt '10.182.76.78' cmd.run 'sleep 100;whoami'
^C
Exiting gracefully on Ctrl-c
This job's jid is: 20180624195818566512
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 the following command:salt-run jobs.lookup_jid 20180624195818566512

使用Module来管理job:

[root@SaltMaster1(10.182.88.136)]$~:>salt '10.182.76.78' saltutil.find_job 20180624195818566512
10.182.76.78:----------arg:- sleep 100;whoamifun:cmd.runjid:20180624195818566512pid:81684ret:tgt:10.182.76.78tgt_type:globuser:root

我们还可以直接kill这个job:

[root@SaltMaster1(10.182.88.136)]$~:>salt '10.182.76.78' saltutil.kill_job 20180624195818566512
10.182.76.78:
[root@SaltMaster1(10.182.88.136)]$~:>salt '10.182.76.78' saltutil.find_job 20180624195818566512
10.182.76.78:----------

转载于:https://www.cnblogs.com/zuoyang/p/9221534.html

《SaltStack技术入门与实践》—— Job管理相关推荐

  1. 《SaltStack技术入门与实践》—— Grains

    Grains 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 前几章我们已经了解SaltStack各个组件以及通过一个案例去熟悉它的各种应用,从这章开 ...

  2. 《SaltStack技术入门与实践》—— 实践案例 中小型Web架构1 初始化和Haproxy

    实践案例 <中小型Web架构> 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 实践.实践.再实践,这是熟练掌握SaltStack的真理. ...

  3. 《SaltStack技术入门与实践》—— 实践案例 中小型Web架构3 Memcached配置管理

    实践案例 <中小型Web架构>3 Memcached配置管理 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Memcached介绍 Me ...

  4. 《SaltStack技术入门与实践》—— 实践案例 中小型Web架构2 Keepalived

    实践案例 <中小型Web架构>2 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东(本章节中有好几处错误) Keepalived配置管理 首 ...

  5. 《SaltStack技术入门与实践》——执行结果处理

    执行结果处理 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Return组件可以理解为SaltStack系统对执行Minion返回后的数据进行存储或 ...

  6. 《SaltStack技术入门与实践》—— Event和Reactor系统

    Event和Reactor系统 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Event是SaltStack里面的对每个事件的一个记录,它相比job ...

  7. 《SaltStack技术入门与实践》—— Renderer组件

    Renderer组件 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 前面我们已经提过使用Python语言编写state.sls文件.在SaltSta ...

  8. SaltStack技术入门与实践

    第1章 SaltStack入门 1.2.1 SaltStack软件依赖 SaltStack有两种消息系统,一种是REAT,一种是ZeroMQ,默认使用ZeroMQ. 软件依赖列表如下: ●Python ...

  9. 《Docker 技术入门与实践》-读书笔记二

    <Docker 技术入门与实践>-读书笔记一 <Docker 技术入门与实践>-读书笔记二 一.数据管理 用户在使用 Docker 的过程中,往往需要能查看容器内应用产生的数据 ...

最新文章

  1. Windows设置软件开机自启动与关闭
  2. 升级php_wamp怎么升级php版本
  3. 【正则】匹配html标签里的内容,不含标签
  4. 开发技巧-使用SQL与Navicat快速导出一个自定义的MYSQL数据库字段表格(数据字典)为Word或Excel
  5. BZOJ1084 [SCOI2005]最大子矩阵 动态规划
  6. K8S——关于K8S控制台的yaml文件编写(基于上一章多节点K8S部署)
  7. Eclipse导入他人的Maven工程报错
  8. 用JS判断不同分辨率调用不同的CSS样式文件
  9. 360浏览器打不开qq空间_360浏览器打不开? 60浏览器打不开网页的处理方法(图文)...
  10. 【luogu3374】模板 树状数组 1
  11. Centos7+LVS-DR+Apache负载均衡web实验
  12. 数据库~Mysql里的Explain说明
  13. 第二百零二节,jQuery EasyUI,Layout(布局)组件
  14. 简述BSD协议和GPL协议的区别
  15. 服务器显示无vga电缆怎么回事,无vga电缆是什么意思
  16. [Qt] 基于Tcp协议的聊天室实现(Chat Room 局域网通信)
  17. 百度鹰眼服务平台部署教程
  18. 简单逆向26(c++函数修饰名,md5,动态调试,算法逆向)
  19. 【OpenFOAM】——OpenFOAM入门算例学习
  20. 以太坊区块链积分系统示例讲解

热门文章

  1. 数据访问函数库 for ado.net2.0
  2. 性能优化--布局优化技巧
  3. Dynamics AX 2009 启动时提示“…the application files in exclusive mode”的解决
  4. MySQL Binlog三种格式介绍及分析
  5. Goldengate介绍
  6. org.apache.subversion.javahl.ClientException: Previous operation has not finished
  7. android 解决getNetworkInfo过时
  8. python学习(三)--跟着例子写的贴吧网页爬取
  9. OpenCV3.0或OpenCV3.1的SVM操作
  10. 「PKUWC2018」随机游走