- Return组件为Saltstack系统对执行Minion返回后的数据存储或者返回给其他程序,支持多种存储方式,例如MySQL、MongoDB、等,对每次的salt操作进行记录。
实例配置:
- 将Return存储在MySQL DB中(return data to a mysql server)
[root@saltstack01 ~]# systemctl stop firewalld.service
[root@saltstack01 ~]# setenforce 0
[root@saltstack02 ~]# systemctl stop firewalld.service
[root@saltstack02 ~]# setenforce 0
1.下载MariaDB-server MySQL-python
[root@saltstack01 salt]# yum -y install mariadb-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
.....
Complete!
[root@saltstack01 salt]# yum -y install MySQL-python
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
......
Complete!
[root@saltstack01 salt]# systemctl enable mariadb.service //开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@saltstack01 salt]# systemctl start mariadb.service //启动mariadb服务
[root@saltstack01 salt]# mysql_secure_installation //设置mysql安全选项
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
Set root password? [Y/n]
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
.......
Thanks for using MariaDB!
2.修改配置文件
[root@saltstack01 salt]# vim /etc/salt/master
[root@saltstack01 salt]# systemctl restart salt-master.service //重启salt-master服务
3.配置数据库
[root@saltstack01 salt]# mysql -u root -p123 //登陆mysql数据库
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database `salt` //创建salt数据库
-> default character set utf8
-> default collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> use `salt`; //使用salt数据库
Database changed
MariaDB [salt]> --
MariaDB [salt]> -- Table structure for table `jids`
MariaDB [salt]> --
MariaDB [salt]> DROP TABLE IF EXISTS `jids`;
Query OK, 0 rows affected, 1 warning (0.02 sec)
MariaDB [salt]> CREATE TABLE `jids` ( //创建表
-> `jid` varchar(255) NOT NULL,
-> `load` mediumtext NOT NULL,
-> UNIQUE KEY `jid` (`jid`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.19 sec)
MariaDB [salt]> --
MariaDB [salt]> -- Table structure for table `salt_returns`
MariaDB [salt]> --
MariaDB [salt]> DROP TABLE IF EXISTS `salt_returns`;
Query OK, 0 rows affected, 1 warning (0.00 sec)
MariaDB [salt]> 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;
Query OK, 0 rows affected (0.43 sec)
MariaDB [salt]> --
MariaDB [salt]> -- Table structure for table `salt_events`
MariaDB [salt]> --
MariaDB [salt]> DROP TABLE IF EXISTS `salt_events`;
Query OK, 0 rows affected, 1 warning (0.00 sec)
MariaDB [salt]> 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;
Query OK, 0 rows affected (0.01 sec)
MariaDB [salt]> grant all on salt.* to salt@'192.168.85.%' identified by 'salt'; //赋权
Query OK, 0 rows affected (0.05 sec)
MariaDB [salt]> grant all on salt.* to salt@'localhost' identified by 'salt';
Query OK, 0 rows affected (0.00 sec)
MariaDB [salt]> flush privileges; //更新
Query OK, 0 rows affected (0.00 sec)
MariaDB [salt]> exit
Bye
4.测试
[root@saltstack01 salt]# salt 'saltstack02' test.ping //测试远程执行结果
saltstack02:
True
[root@saltstack01 salt]# salt 'saltstack02' sys.doc pkg.install //查看包安装命令的文档
'pkg.install:'
Install the passed package(s), add refresh=True to clean the yum database
before package is installed.
............
Returns a dict containing the new package names and versions::
{'<package>': {'old': '<old-version>',
'new': '<new-version>'}}
[root@saltstack01 salt]# mysql -u root -p123 //登陆数据库查看返回结果
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 24
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [salt]> use salt;
Database changed
MariaDB [salt]> select * from salt_returns\G
........
*************************** 2. row ***************************
fun: test.ping
jid: 20190213183534426256
return: true
id: saltstack02
success: 1
full_ret: {"fun_args": [], "jid": "20190213183534426256", "return": true, "retcode": 0, "success": true, "cmd": "_return", "_stamp": "2019-02-13T10:35:35.280034", "fun": "test.ping", "id": "saltstack02"}
alter_time: 2019-02-13 18:35:35
........
*************************** 9. row ***************************
fun: saltutil.find_job
jid: 20190213191400800572
return: {}
id: saltstack02
success: 1
full_ret: {"fun_args": ["20190213191334448985"], "jid": "20190213191400800572", "return": {}, "retcode": 0, "success": true, "cmd": "_return", "_stamp": "2019-02-13T11:14:01.735627", "fun": "saltutil.find_job", "id": "saltstack02"}
alter_time: 2019-02-13 19:14:01
12 rows in set (0.00 sec)
........