Saltstack_使用指南08_远程执行-返回程序

1. 主机规划

服务器名称操作系统版本内网IP外网IP(模拟)Hostname部署模块
salt100CentOS7.5172.16.1.10010.0.0.100salt100salt-master、salt-minion
salt01CentOS7.5172.16.1.1110.0.0.11salt01salt-minion
salt02CentOS7.5172.16.1.1210.0.0.12salt02salt-minion
salt03CentOS7.5172.16.1.1310.0.0.13salt03salt-minion
Returners文档

https://docs.saltstack.com/en/latest/ref/returners/index.html

Returner Modules文档

https://docs.saltstack.com/en/latest/ref/returners/all/index.html#all-salt-returners

注意事项

修改了master或者minion的配置文件,那么必须重启对应的服务。

2. 数据库配置

2.1. 数据库安装

根据规划在 salt100 部署mariadb 数据库
# 数据库安装
yum install -y mariadb mariadb-server	
# 启动数据库
systemctl start mariadb.service   # 如果有必要可以设置为开机自启动
# 在 「其他机器」 安装,用于测试远程是否可以连接
yum install -y mariadb  

2.2. 字符集设置

[root@salt100 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
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)]> show variables like '%char%';  
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

MariaDB [(none)]> set character_set_database=utf8;  
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> set character_set_server=utf8;  
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show variables like '%char%';  
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

2.3. 创建数据库、用户、授权

# 创建数据库
MariaDB [(none)]> CREATE DATABASE  `salt`
         DEFAULT CHARACTER SET utf8
         DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show create database salt;
+----------+---------------------------------------------------------------+
| Database | Create Database                                               |
+----------+---------------------------------------------------------------+
| salt     | CREATE DATABASE `salt` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)

# 创建用户并授权
MariaDB [(none)]> grant all on salt.* to salt@'%' identified by 'salt';  # 用于远程访问
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all on salt.* to salt@'salt100' identified by 'salt';   # 用于本地访问
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges; 
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> select user,host,password from mysql.user where user = 'salt';
+------+---------+-------------------------------------------+
| user | host    | password                                  |
+------+---------+-------------------------------------------+
| salt | %       | *36F75ABC6D500DFA6E905046FD8BE5E115812DD0 |
| salt | salt100 | *36F75ABC6D500DFA6E905046FD8BE5E115812DD0 |
+------+---------+-------------------------------------------+
2 rows in set (0.00 sec)
本地或者远程登录测试
mysql -hsalt100 -usalt -psalt
# 或者
mysql -h172.16.1.100 -usalt -psalt

2.4. 创建表

相关文档

https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html#module-salt.returners.mysql

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;

--
-- 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;

3. 安装依赖包

salt '*' state.single pkg.installed name=MySQL-python	
或者
salt '*' cmd.run 'yum install -y MySQL-python'	

4. minion返回结果到MySQL数据库

由 minion 端直接返回到 MySQL 数据库,不需要经过 master 端。

相关文档

https://docs.saltstack.com/en/latest/topics/jobs/external_cache.html

4.1. minion端存储架构

在这里插入图片描述

4.2. 方式一:所有Minion端都添加设置

[root@salt03 ~]# vim /etc/salt/minion 
…………
mysql.host: 'salt100'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306

[root@salt03 ~]# systemctl restart salt-minion.service  # 修改了配置,需要重启 minion

4.3. 方式二:在master端添加设置

[root@salt100 ~]# vim /etc/salt/master 
…………
ext_job_cache: mysql
mysql.host: 'salt100'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306

[root@salt100 ~]# systemctl restart salt-master.service   # 修改了配置,需要重启 master

4.4. 测试执行

# 说明: 带了 --return mysql ,适合上面的方式一,在minion端配置
# 如果没有带  --return mysql ,适合上面的方式二,在master端配置
[root@salt100 ~]# salt '*' test.ping --return mysql  
salt03:
    True
salt01:
    True
salt02:
    True
salt100:
    True
[root@salt100 ~]# salt 'salt0*' cmd.run 'df -h' --return mysql  
salt03:
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        18G  2.0G   16G  12% /
    devtmpfs        901M     0  901M   0% /dev
    tmpfs           911M   12K  911M   1% /dev/shm
    tmpfs           911M  9.6M  902M   2% /run
    tmpfs           911M     0  911M   0% /sys/fs/cgroup
    /dev/sda1       197M  113M   85M  58% /boot
    tmpfs           183M     0  183M   0% /run/user/1001
salt01:
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        18G  2.1G   16G  12% /
    devtmpfs        901M     0  901M   0% /dev
    tmpfs           911M   12K  911M   1% /dev/shm
    tmpfs           911M  9.6M  902M   2% /run
    tmpfs           911M     0  911M   0% /sys/fs/cgroup
    /dev/sda1       197M  113M   85M  58% /boot
    tmpfs           183M     0  183M   0% /run/user/1001
salt02:
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        18G  2.0G   16G  12% /
    devtmpfs        901M     0  901M   0% /dev
    tmpfs           911M   12K  911M   1% /dev/shm
    tmpfs           911M  9.6M  902M   2% /run
    tmpfs           911M     0  911M   0% /sys/fs/cgroup
    /dev/sda1       197M  113M   85M  58% /boot
    tmpfs           183M     0  183M   0% /run/user/1001

4.5. 数据库表信息

在这里插入图片描述

5. master返回结果到MySQL数据库

数据从minion端返回到master之后,再由master写入MySQL

相关文档

https://docs.saltstack.com/en/latest/topics/jobs/external_cache.html

5.1. master端存储架构

在这里插入图片描述

5.2. master端添加如下配置

[root@salt100 ~]# vim /etc/salt/master 
…………
master_job_cache: mysql
mysql.host: 'salt100'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306

[root@salt100 ~]# systemctl restart salt-master.service   # 修改了配置,需要重启 master

5.3. 测试执行

[root@salt100 ~]# salt '*' grains.items
[root@salt100 ~]# salt '*' cmd.run 'w' 

5.4. 数据库表信息

在这里插入图片描述

微信公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值