在SaltStack默认的工作模式中,minion端会将数据直接返回给mysql数据库,这个过程中不需要master参与。由于提供更加灵活的管理,也可以在master端保存minion端的执行结果(job cache),master 端默认的保存地址是: /var/cache/salt/master/jobs。
创新互联建站长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为宜阳企业提供专业的网站设计制作、成都网站制作,宜阳网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。job cache 在master端的配置文件中有对应的配置参数:
#cachedir: /var/cache/salt/master 保存的路径
#keep_jobs: 24 保存的时间24小时
配置Job cache直接写入数据库
可以通过过配置,直接将master端的cache写入数据库。
job cache默认的表结构和salt数据库的表结构相同,不过要是想和数据库的交互,需要在master端安装MySQL-python:
yum install MySQL-python -y修改master的配置文件,在最后直接加上mysql的配置:
# vim /etc/salt/mastermaster_job_cache: mysql mysql.host: '172.16.10.60' mysql.user: 'salt' mysql.pass: 'saltpw' mysql.db: 'salt' mysql.port: 3306创建数据表: 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;
数据库中创建授权用户:
grant all on salt.* to salt@172.16.10.60 identified by 'saltpw';重启salt-master:
# systemctl restart salt-master在master端执行:
# salt '*' test.ping如果没有任何报错,说明执行成功,可以在mysql中查看数据是否写入:
MariaDB [salt]> use salt;select * from salt_returns\G每执行一次,就会生成两条记录(两个minion).
这样,每次执行的job cache都会返回到数据库中。
salt 常用的管理命令:
# salt-run jobs.list_jobs 查看历史执行的salt job-cache任务,从目录中去查询,而不是从数据库。
# salt-run jobs.lookup_jid 20161124144637116519 查看某个任务的执行结果
查看当前minion的状态:
# salt-run manage.status
查看处于down状态的minion:
# salt-run manage-down
查看处于up状态的minion:
# salt-run manage-up
查看版本信息:
# salt-run manage.versions
在执行的时候返回JID,加 -v参数:
# salt '*' test.run -v
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。