salt job管理和定時任務



job management
salt在job任務上的管理


 

使用saltutil模塊進行任務管理
1、running 返回在 proc 目錄下找到的所有正在運行的任務.
示例:
ll /var/cache/salt/minion/proc/
-rw-r--r-- 1 root root 109 Aug 24 21:28 20170824212833356710

2、find_job 返回指定任務ID的詳細數據.
salt '10.XX.X.19' saltutil.find_job 20170824213949924876

 1 10.88.4.19:
 2 ----------
 3 arg:
 4 - sleep 50;echo 1
 5 fun:
 6 cmd.run
 7 jid:
 8 20170824213949924876
 9 pid:
10 32584
11 ret:
12 tgt:
13 10.88.4.19
14 tgt_type:
15 glob
16 user:
17 root
View Code

3、signal_job 允許給指定任務ID發送一個信號.

4、term_job 發送termination信號(SIGTERM, 15)給指定的任務.

5、kill_job 發送kill信號(SIGKILL, 9)給指定的任務.

這是一個非常好的問題,也是平時容易遇到的一個問題,關於調用腳本執行出現問題的時候
需要kill的情況,父子進程徹底kill掉
http://www.huangdc.com/66
https://my.oschina.net/dchuang/blog/489664

這些方法是提供了在minion級別管理任務的核心.



使用salt-run進行任務管理,在master端執行命令

salt-run jobs.active
#查詢當前所有在minion端正在執行的任務,相當於在所有機器上運行saltutil.running

 

salt-run jobs.lookup_jid

#由於master默認設置可以保留24小時的jobs的結果信息,所以可以查詢到最近執行過的任務
歷史結果

示例,當我們執行一個遠程命令的時候,這時ctrl+c中斷一下,會反饋以下信息:

Exiting gracefully on Ctrl-c
This job's jid is: 20170828224834520835
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 20170828224834520835

提示我們使用salt-run命令查看返回數據情況。

salt-run jobs.list_jobs
#列出最近緩存的任務結果,很多都是系統內部通信的任務


SaltStack通過Schedule實現批量的計划任務和管理,主要任務定期執行配置同步、執行命令等等。
可以在master端和minion端配置schedule


 

在master的pillar環境目錄中設置定時任務
示例:
more top.sls
abc:
'10.64.1.127':
- schedule #導入的模塊名

more schedule.sls
schedule:
log-loadavg: #任務名
function: cmd.run #函數
seconds: 3 #時間間隔
args:
- 'echo "1" >> /opt/a'
kwargs:
stateful: False
shell: /bin/sh

salt "10.XX.1.127" saltutil.refresh_pillar
#將任務推送到minion

#salt "10.XX.1.127" pillar.get schedule
查詢minion端有哪些定時任務

如果要刪除在pillar上設置的定時任務,則需要在刪除定時任務的配置並
使用saltutil.refresh_pillar更新,收集到的信息可以放入數據庫里面。

 


 

minion端系統定時任務示例:


在/etc/salt/minion.d/目錄下游一個_schedule.conf文件,這個是minion端默認配置的一個定時任務,用於更新mine信息,內容如下:

schedule:

__master_alive:
function: status.master
jid_include: true
kwargs: {connected: true, master: 10.70.38.29}
maxrunning: 1
seconds: 30

__mine_interval: {function: mine.update, jid_include: true, maxrunning: 2, minutes: 60}

定時執行,周期性的將數據發送到saltmaster端。

 


 

 

 

 

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM