实验目标
1.salt执行的状态然后结果写入MySQL可以方便查询执行salt执行的历史记录
实现方法
1.使用salt的return功能,是minion直接写入MySQL(相对比较麻烦)
2.使用master的jobcache写入到MySQL
环境
node1 192.168.56.11 角色 salt-master salt-minon DB
node2 192.168.56.12 角色 salt-minon
步骤
一,在master的配置文件添加以下内容
[root@linux-node1 salt]# tail -8 /etc/salt/master #return: mysql master_job_cache: mysql mysql.host: '192.168.56.11' mysql.user: 'salt' mysql.pass: 'salt' mysql.db: 'salt' mysql.port: 3306
二,安装数据库,这里用MariaDB
[root@linux-node1 salt]# yum install -y mariadb mariadb-server [root@linux-node1 salt]# systemctl start mariadb [root@linux-node1 salt]#mysql_secure_installation #删除anonymous 删除test库 设置root密码 刷新权限表 关闭root远程登录
三,登陆到数据库创建salt数据和表
[root@linux-node1 salt]# mysql -uroot -p123456 #下面是创建数据库和表语句 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;