在SaltStack默認(rèn)的工作模式中,minion端會(huì)將數(shù)據(jù)直接返回給MySQL數(shù)據(jù)庫(kù),這個(gè)過(guò)程中不需要master參與。由于提供更加靈活的管理,也可以在master端保存minion端的執(zhí)行結(jié)果(job cache),master 端默認(rèn)的保存地址是: /var/cache/salt/master/jobs。
阜新網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
job cache 在master端的配置文件中有對(duì)應(yīng)的配置參數(shù):
#cachedir: /var/cache/salt/master 保存的路徑
#keep_jobs: 24 保存的時(shí)間24小時(shí)
配置Job cache直接寫(xiě)入數(shù)據(jù)庫(kù)
可以通過(guò)過(guò)配置,直接將master端的cache寫(xiě)入數(shù)據(jù)庫(kù)。
job cache默認(rèn)的表結(jié)構(gòu)和salt數(shù)據(jù)庫(kù)的表結(jié)構(gòu)相同,不過(guò)要是想和數(shù)據(jù)庫(kù)的交互,需要在master端安裝MySQL-python:
yum install MySQL-python -y
修改master的配置文件,在最后直接加上mysql的配置:
# vim /etc/salt/master
master_job_cache: mysql mysql.host: '172.16.10.60' mysql.user: 'salt' mysql.pass: 'saltpw' mysql.db: 'salt' mysql.port: 3306
創(chuàng)建數(shù)據(jù)表: https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html
CREATE DATABASE `salt` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;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;CREATE INDEX jid ON jids(jid) USING BTREE;---- 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;---- Table structure for table `salt_events`--DROP TABLE IF EXISTS `salt_events`;CREATE TABLE `salt_events` (`id` BIGINT NOT NULL AUTO_INCREMENT,`tag` varchar(255) NOT NULL,`data` mediumtext NOT NULL,`alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,`master_id` varchar(255) NOT NULL,PRIMARY KEY (`id`),KEY `tag` (`tag`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
數(shù)據(jù)庫(kù)中創(chuàng)建授權(quán)用戶(hù):
grant all on salt.* to salt@172.16.10.60 identified by 'saltpw';
重啟salt-master:
# systemctl restart salt-master
在master端執(zhí)行:
# salt '*' test.ping
如果沒(méi)有任何報(bào)錯(cuò),說(shuō)明執(zhí)行成功,可以在mysql中查看數(shù)據(jù)是否寫(xiě)入:
MariaDB [salt]> use salt;select * from salt_returns\G
每執(zhí)行一次,就會(huì)生成兩條記錄(兩個(gè)minion).
這樣,每次執(zhí)行的job cache都會(huì)返回到數(shù)據(jù)庫(kù)中。
salt 常用的管理命令:
# salt-run jobs.list_jobs 查看歷史執(zhí)行的salt job-cache任務(wù),從目錄中去查詢(xún),而不是從數(shù)據(jù)庫(kù)。
# salt-run jobs.lookup_jid 20161124144637116519 查看某個(gè)任務(wù)的執(zhí)行結(jié)果
查看當(dāng)前minion的狀態(tài):
# salt-run manage.status
查看處于down狀態(tài)的minion:
# salt-run manage-down
查看處于up狀態(tài)的minion:
# salt-run manage-up
查看版本信息:
# salt-run manage.versions
在執(zhí)行的時(shí)候返回JID,加 -v參數(shù):
# salt '*' test.run -v