Salt Master外部Job Cache配置
原文鏈接:http://pengyao.org/saltstack-master-external-job-cache.html
Salt Master外部Job Cache配置
SaltStack 2014.7之前, Minion端的執行結果想存儲在外部系統中, 需要借助returner進行配置. 而returner的工作方式是由minion端直接連接對應的returner, 在分布式環境中由于網絡等限制,該方式并不友好.
而在Master端, Job Cache會以文件的形式存儲在Master本地磁盤, 對第三方系統并不友好. 基于此, 之前有分享過?基于Salt Event系統構建Master端returner?, 需要啟動另外一個進程, 進行監聽Salt Event接口, 并將結果存儲在第三方系統中. 剛好看到2014.7.0中master端增加了?master_job_cache?參數, 可以直接外放Job Cache, 就做個測試, 測試下這個功能.
環境說明
Salt Version:?2014.7.0
OS: CentOS 6.5 X86_64 (with?EPEL)
本次測試結果將存儲在MySQL中, 為了方便測試, 已在Master本地部署了MySQL Server
開工
Note
以下操作如非特別注明, 均在Master端進行
前置配置
安裝MySQLdb依賴:
yum?-y?install?MySQL-python配置本次測試需要使用的數據庫及用戶:
#?創建salt數據庫mysql?-e?'create?database?salt'#?創建用于連接salt數據庫的用戶mysql?-e?'"grant?all?on?salt.*?to?salt@localhost?identified?by?"salt_pass';#?將數據庫配置添加至master配置文件中創建用于存儲Job的數據庫表結構:
USE?`salt`;-- --?Table?structure?for?table?`jids` --DROP?TABLE?IF?EXISTS?`jids`; CREATE?TABLE?`jids`?(`jid`?varchar(255)?NOT?NULL,`load`?mediumtext?NOT?NULL,UNIQUE?KEY?`jid`?(`jid`) )?ENGINE=InnoDB?DEFAULT?CHARSET=utf8;-- --?Table?structure?for?table?`salt_returns` --DROP?TABLE?IF?EXISTS?`salt_returns`; CREATE?TABLE?`salt_returns`?(`fun`?varchar(50)?NOT?NULL,`jid`?varchar(255)?NOT?NULL,`return`?mediumtext?NOT?NULL,`id`?varchar(255)?NOT?NULL,`success`?varchar(10)?NOT?NULL,`full_ret`?mediumtext?NOT?NULL,`alter_time`?TIMESTAMP?DEFAULT?CURRENT_TIMESTAMP,KEY?`id`?(`id`),KEY?`jid`?(`jid`),KEY?`fun`?(`fun`) )?ENGINE=InnoDB?DEFAULT?CHARSET=utf8;配置Master
將MySQL連接權限等信息添加到Salt Master配置文件中:
echo?-e?"\n\n#?MySQL\nmysql.host:?'localhost'\nmysql.user:?'salt'\nmysql.pass:?'salt_pass'\nmysql.db:?'salt'\nmysql.port:?3306"?>>?/etc/salt/master配置master_job_cache選項, 以使將Job結果存儲在MySQL中:
echo?-e?"\n\n#?Master?Job?Cache\nmaster_job_cache:?mysql"?>>?/etc/salt/master重啟Salt Master, 以使配置生效:
service?salt-master?restart測試
對主機執行test.ping:
salt?'*'?test.ping?-v輸出結果:
Executing?job?with?jid?20141120060202308159 -------------------------------------------minion-01.example.com:True查詢MySQL jids表數據:
mysql?salt?-e?'select?*?from?jids\G'輸出結果:
***************************?1.?row?*************************** jid:?20141120060202308159 load:?{"tgt_type":?"glob",?"jid":?"20141120060202308159",?"cmd":?"publish",?"tgt":?"*",?"kwargs":?{"show_timeout":?false,?"show_jid":?false},?"ret":?"",?"user":?"sudo_vagrant",?"arg":?[],?"fun":?"test.ping"}查詢MySQL salt_returns表數據:
mysql?salt?-e?'select?*?from?salt_returns\G'輸出結果:
***************************?1.?row?*************************** fun:?test.ping jid:?20141120060202308159 return:?true id:?minion-01.example.com success:?1 full_ret:?{"fun_args":?[],?"jid":?"20141120060202308159",?"return":?true,?"retcode":?0,?"success":?true,?"cmd":?"_return",?"_stamp":?"2014-11-20T06:02:02.533850",?"fun":?"test.ping",?"id":?"minion-01.example.com"} alter_time:?2014-11-20?06:02:02Job執行結果已經按照之前的配置存儲到了MySQL中, 達到預期效果
轉載于:https://blog.51cto.com/7870873/1640236
總結
以上是生活随笔為你收集整理的Salt Master外部Job Cache配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML 5 Canvas 参考手册
- 下一篇: 当INPUT 连续输入是连续触发