saltstack之Return data to a mysql server
1、登录数据库,创建一个salt数据库,三个表:jids、salt_returns、salt_events# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.Commands end with ; or \g.
Your MariaDB connection id is 360
Server version: 5.5.50-MariaDB MariaDB Server
Copyright (c) 2000, 2016, 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`
-> DEFAULT CHARACTER SET utf8
-> DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> USE `salt`;
Database changed
MariaDB > DROP TABLE IF EXISTS `jids`;
Query OK, 0 rows affected, 1 warning (0.00 sec)
MariaDB > 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.04 sec)
MariaDB > CREATE INDEX jid ON jids(jid) USING BTREE;
ERROR 1061 (42000): Duplicate key name 'jid'
MariaDB > CREATE INDEX jid ON jids(jid) USING BTREE;
ERROR 1061 (42000): Duplicate key name 'jid'
MariaDB > 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.04 sec)
MariaDB > DROP TABLE IF EXISTS `salt_events`;
Query OK, 0 rows affected, 1 warning (0.01 sec)
MariaDB > 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.05 sec)
创建数据库完毕!
2、开始查看一下数据表,三个没错。
MariaDB > show tables
-> ;
+----------------+
| Tables_in_salt |
+----------------+
| jids |
| salt_events |
| salt_returns |
+----------------+
3 rows in set (0.00 sec)
MariaDB > select * from salt_returns;
Empty set (0.00 sec)
3、给数据库授权,官网竟然没有说,差点漏了
MariaDB > grant all on salt.* to salt@'%' identified by 'salt';
Query OK, 0 rows affected (0.00 sec)
MariaDB > flush privileges;
Query OK, 0 rows affected (0.01 sec)
MariaDB >
4、修改minion配置文件
# vim /etc/salt/minion
###### Returnersettings ######
############################################
# Which returner(s) will be used for minion's result:
#return: mysql
mysql.host: '10.0.0.177' #我的master主机ip地址
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306
# /etc/init.d/salt-minion restart
Stopping salt-minion daemon:
Starting salt-minion daemon:
5、差点忘记安装依赖条件了,安装依赖条件。没有安装成功,和python版本有关,请大家自行寻找,我先第六步试试看,
# yum install MySQLdb -y
#yum install mysql-python -y
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirrors.zju.edu.cn
* epel: mirror01.idc.hinet.net
* extras: centos.ustc.edu.cn
* updates: centos.ustc.edu.cn
No package mysql-python available.
* Maybe you meant: MySQL-python
Error: Nothing to do
6、运行测试命令,然后进入数据库查看。
# salt '*' test.ping --return mysql
salt-master:
True
salt-minion01:
True
hddcluster1:
True
hddcluster4:
True
hddcluster2:
True
hddcluster3:
True
#注意:下面id:salt-master是因为我上面没有安装成功mysql-python,后来我在master端的minion安装mysql-python成功测试。
# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.Commands end with ; or \g.
Your MariaDB connection id is 367
Server version: 5.5.50-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use salt;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB > select * from salt_returns;
+-----------+----------------------+--------+-------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------+
| fun | jid | return | id | success | full_ret | alter_time |
+-----------+----------------------+--------+-------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------+
| test.ping | 20161214171944749902 | true | salt-master | 1 | {"fun_args": [], "jid": "20161214171944749902", "return": true, "retcode": 0, "success": true, "fun": "test.ping", "id": "salt-master"} | 2016-12-14 17:19:54 |
+-----------+----------------------+--------+-------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------+
1 row in set (0.00 sec)
MariaDB >
7、终于找到了包的名字是MySQL-python
# yum install MySQL-python
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirrors.zju.edu.cn
* epel: mirror01.idc.hinet.net
* extras: centos.ustc.edu.cn
* updates: centos.ustc.edu.cn
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
--> Running transaction check
---> Package MySQL-python.x86_64 0:1.2.3-0.3.c1.1.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=====================================================================================
Package Arch Version Repository Size
=====================================================================================
Installing:
MySQL-python x86_64 1.2.3-0.3.c1.1.el6 base 86 k
Transaction Summary
=====================================================================================
Install 1 Package(s)
Total download size: 86 k
Installed size: 246 k
Is this ok : y
Downloading Packages:
MySQL-python-1.2.3-0.3.c1.1.el6.x86_64.rpm |86 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : MySQL-python-1.2.3-0.3.c1.1.el6.x86_64 1/1
Verifying: MySQL-python-1.2.3-0.3.c1.1.el6.x86_64 1/1
Installed:
MySQL-python.x86_64 0:1.2.3-0.3.c1.1.el6
Complete!
#
8、再次测试命令,查看数据库。
# salt 'salt-minion01' test.ping --return mysql
salt-minion01:
True
# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.Commands end with ; or \g.
Your MariaDB connection id is 370
Server version: 5.5.50-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use salt;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB > select * from salt_returns;
+-----------+----------------------+--------+---------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
| fun | jid | return | id | success | full_ret | alter_time |
+-----------+----------------------+--------+---------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
| test.ping | 20161214171944749902 | true | salt-master | 1 | {"fun_args": [], "jid": "20161214171944749902", "return": true, "retcode": 0, "success": true, "fun": "test.ping", "id": "salt-master"} | 2016-12-14 17:19:54 |
| test.ping | 20161214172841623449 | true | salt-minion01 | 1 | {"fun_args": [], "jid": "20161214172841623449", "return": true, "retcode": 0, "success": true, "fun": "test.ping", "id": "salt-minion01"} | 2016-12-14 17:28:41 |
+-----------+----------------------+--------+---------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
2 rows in set (0.00 sec)
MariaDB >
页:
[1]