haishi 发表于 2018-8-1 11:54:03

SaltStack之Job管理和Runner

  配置文件/etc/salt/master
  cachedir: /var/cache/salt/master# cache路径
keep_jobs: 24# job保存时间  salt执行模块官方文档https://docs.saltstack.com/en/latest/ref/modules/all/index.html

[*]  如何将master的返回加入mysql数据库?
  1)数据库表结构创建可参考 http://www.cnblogs.com/shhnwangjian/p/5986964.html 的第三节“返回程序”
  2)yum install -y MySQL-python创建python的mysql模块
  3)修改master配置文件
vi /etc/salt/mastermaster_job_cache: mysqlmysql.host: '192.168.137.11'mysql.user: 'salt'mysql.pass: 'salt@pw'mysql.db: 'salt'mysql.port: 3306  重启systemctl restart salt-master.service
  测试:
  salt '*' test.ping
  数据中查询 select * fromsalt_returns;
  
  

[*]  如何kill salt正在执行的任务?
  文档 https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.saltutil.html#module-salt.modules.saltutil
  salt '*' saltutil.running# 查看正在运行的任务,找到jid

  salt '*' saltutil.kill_job jid# 根据jid杀掉任务
  salt '*' saltutil.clear_cache# 清除minion缓存
  备注:

  1)正在执行的salt任务,job>  2)正在执行的salt任务,根据上面master cache的配置,Job的路径/var/cache/salt/master/jobs目录下
salt runners
  官方文档 https://docs.saltstack.com/en/latest/ref/runners/index.html
  命令:salt-run
  举例:
12salt-run jobs.list_jobs# 列出当前保存在job cache中的历史执行任务salt-run jobs.lookup_jid jid# 查看历史jid执行结果  备注: 我们通过salt命令开头执行时,所有的命令master端分发至minion端,由minion端自己执行,如果一个模块在master存在,在minion端不存在,就会出现执行失败的情况。为了解决这个问题,提供salt runners模块,它是将所有的命令在master端执行。
  salt-run manage.status#查看minion的状态
12salt-run manage.downsalt-run manage.up
  salt-run manage.versions#查看minion的版本

  本文出自http://www.cnblogs.com/shhnwangjian/p/6048891.html
页: [1]
查看完整版本: SaltStack之Job管理和Runner