SaltStack-job管理-创新互联
一、salt执行结果默认返回给master端
1、job cache
存放位置
目前创新互联已为上千余家的企业提供了网站建设、域名、网页空间、网站托管、服务器租用、企业网站设计、富锦网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。# Directory to store job and cache data: # This directory may contain sensitive data and should be protected accordingly. # #cachedir: /var/cache/salt/master # Set the number of hours to keep old job information in the job cache: #keep_jobs: 24 # The number of seconds to wait when the client is requesting information # about running jobs. #gather_job_timeout: 10
2、将cache存入数据库
(1)安装数据库连接模块
安装连接mysql的模块MySQL-python yum install -y MySQL-python
(2)配置数据库连接
在master上配置连接
直接在master的配置文件后面追加内容 vim /etc/salt/master master_job_cache: mysql mysql.host: '192.168.56.11' mysql.user: 'salt' mysql.pass: '123456' mysql.db: 'salt' mysql.port: 3306
(3)重启salt-master
systemctl restart master
(4)验证是否写入数据库
执行如下命令 [root@linux-node1 /srv/salt/prod/bbs]# salt '*' cmd.run 'whoami' linux-node2.example.com: root linux-node1.example.com: root
登录数据库 mysql -h 192.168.56.11 -usalt -p123456 MariaDB [(none)]> use salt; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A *************************** 9. row *************************** fun: cmd.run jid: 20161109091010973295 return: "root" id: linux-node2.example.com success: 1 full_ret: {"fun_args": ["whoami"], "jid": "20161109091010973295", "return": "root", "retcode": 0, "success": true, "cmd": "_return", "_stamp": "2016-11-09T01:10:11.064745", "fun": "cmd.run", "id": "linux-node2.example.com"} alter_time: 2016-11-09 09:10:11 *************************** 10. row *************************** fun: cmd.run jid: 20161109091010973295 return: "root" id: linux-node1.example.com success: 1 full_ret: {"fun_args": ["whoami"], "jid": "20161109091010973295", "return": "root", "retcode": 0, "success": true, "cmd": "_return", "_stamp": "2016-11-09T01:10:11.146238", "fun": "cmd.run", "id": "linux-node1.example.com"} alter_time: 2016-11-09 09:10:11 10 rows in set (0.00 sec)
3、job查看
先执行一个命令,比如
salt '*' cmd.run 'ping www.baidu.com'
在执行job查看命令
[root@linux-node1 ~]# salt '*' saltutil.running linux-node2.example.com: |_ ---------- arg: - ping www.baidu.com fun: cmd.run jid: 20161109091517283293 pid: 6049 ret: tgt: * tgt_type: glob user: root linux-node1.example.com: |_ ---------- arg: - ping www.baidu.com fun: cmd.run jid: 20161109091517283293 pid: 6269 ret: tgt: * tgt_type: glob user: root
停止job,可以使用如下方法
[root@linux-node1 ~]# salt '*' saltutil.kill_job 20161109091517283293 linux-node2.example.com: Signal 9 sent to job 20161109091517283293 at pid 6049 linux-node1.example.com: Signal 9 sent to job 20161109091517283293 at pid 6269 [root@linux-node1 ~]# salt '*' saltutil.running linux-node2.example.com: linux-node1.example.com:
4、master端cache
存放位置
[root@linux-node1 /var/cache/salt/master]# ls file_lists jobs minions proc queues roots syndics tokens [root@linux-node1 /var/cache/salt/master]# pwd /var/cache/salt/master [root@linux-node1 /var/cache/salt/master]# tree . ├── file_lists │ └── roots │ ├── base.p │ └── prod.p ├── jobs │ ├── 6c │ │ └── 9f646ec75df0bd0ec29760ef0dee7a │ │ ├── jid │ │ └── linux-node1.example.com │ │ └── return.p │ ├── 90 │ │ └── d3646e58dd82e103973eb889af96d1 │ │ └── jid │ ├── d4 │ │ └── 74a5b7f1ebf41c84c714d2ad8fda85 │ │ ├── jid │ │ └── linux-node1.example.com │ │ └── return.p │ └── e3 │ └── d2ffbc8e72a923205126c07c9e1e55 │ ├── jid │ └── linux-node1.example.com │ └── return.p
二、jobs管理组件
一个方便管理jobs的系统:runners.jobs
列出job cache中的job [root@linux-node1 /var/cache/salt/master]# salt-run jobs.list_jobs [WARNING ] /usr/lib/python2.7/site-packages/salt/grains/core.py:1493: DeprecationWarning: The "osmajorrelease" will be a type of an integer. 20161109090923312794: ---------- Arguments: - whoami Function: cmd.run StartTime: 2016, Nov 09 09:09:23.312794 Target: * Target-type: glob User: root
查看某个job的返回
[root@linux-node1 ~]# salt-run jobs.lookup_jid 20161109093137760714 linux-node1.example.com: PING www.a.shifen.com (119.75.218.70) 56(84) bytes of data. 64 bytes from 119.75.218.70: icmp_seq=1 ttl=128 time=9.78 ms 64 bytes from 119.75.218.70: icmp_seq=2 ttl=128 time=4.65 ms 64 bytes from 119.75.218.70: icmp_seq=3 ttl=128 time=8.26 ms --- www.a.shifen.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2010ms rtt min/avg/max/mdev = 4.657/7.569/9.786/2.150 ms
可以使用salt-run查看当前up和down的minion
[root@linux-node1 ~]# salt-run manage.status down: up: - linux-node1.example.com - linux-node2.example.com
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
名称栏目:SaltStack-job管理-创新互联
当前网址:http://ybzwz.com/article/csciig.html