在master将数据推向minion端时,默认数据在master端缓存24小时,为了长时间保存,需要将数据放入数据库
- 在minion端安装python自动化运维模块,可以将数据保存到数据库中
- 在server3上安装MYSQL-python
- 在server2上安装mariadb-server
- 开启mariadb服务:
systemctl start mariadb.service
- 进入数据库,授权:
grant all on salt.* to salt@'%' identified by 'westos';
- 在server3上编辑/etc/salt/minion文件
mysql.host: '172.25.60.2'
mysql.user: 'salt'
mysql.pass: 'westos'
mysql.db: 'salt'
mysql.port: 3306
- 修改文件后重启minion:
systemctl restart salt-minion
- 在server2上编辑add.sql文件(直接从官网上复制,将第17行删除):
vim add.sql
- 导入数据库:
mysql < add.sql
- 进入数据库–>查看所有的数据库,可以看到salt数据库:
show databases;
- 在server2上测试:salt ‘*’ test.ping --return mysql
- 进入数据库–>进入到salt数据库:
use salt;
- 查看salt_returns表,可以查看到提送给server3数据:
select * from salt_returns;
- 利用job_cache
如果每个minion端都需要安装python的工具的话,显然是太麻烦,基本上市不可能的,所以用job_cache只配置master端,所有的minion的推送数据都可以放入数据库中,这样实施起来就方便很多 - 在server2上编辑配置文件:
vim /etc/salt/master
masterl_job_cache: mysql
mysql.host: 'localhost'
mysql.user: 'salt'
mysql.pass: 'westos'
mysql.db: 'salt'
mysql.port: 3306
- 进入数据库–>授权:
grant all on salt.* to salt@'localhost' identified by 'westos';
- 直接登陆salt数据库:
mysql -u salt -p salt
查看是否成功;
- 安装MySQL-python:
yum install -y MySQL-python
- 重新开启服务:
systemctl restart salt-master
- 测试:
salt '*' cmd.run 'hostname'
- 进入salt数据库:
mysql -u salt -p salt
- 查看salt_returns表,可以查看到server3和4的数据:
select * from salt_returns;