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/master master_job_cache: mysql mysql.host: '192.168.137.11' mysql.user: 'salt' mysql.pass: 'salt@pw' mysql.db: 'salt' mysql.port: 3306
4)重啟 systemctl restart salt-master.service
5)測試:
salt '*' test.ping 數據中查詢 select * from salt_returns;
- 如何kill salt正在執行的任務?
salt '*' saltutil.running # 查看正在運行的任務,找到jid
salt '*' saltutil.kill_job jid # 根據jid殺掉任務
salt '*' saltutil.clear_cache # 清除minion緩存
備注:
1)正在執行的salt任務,job id會存在minion端的/var/cache/salt/minion/proc目錄下
2)正在執行的salt任務,根據上面master cache的配置,Job的路徑/var/cache/salt/master/jobs目錄下
salt runners
官方文檔 https://docs.saltstack.com/en/latest/ref/runners/index.html
命令:salt-run
舉例:
salt-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的狀態
salt-run manage.down salt-run manage.up
salt-run manage.versions # 查看minion的版本