1. 主机规划

salt 版本
 [root@salt100 ~]# salt --version
salt 2018.3. (Oxygen)
[root@salt100 ~]# salt-minion --version
salt-minion 2018.3. (Oxygen)
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
Server version: 5.5.-MariaDB MariaDB Server Copyright (c) , , 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/ |
+--------------------------+----------------------------+
rows in set (0.00 sec) MariaDB [(none)]> set character_set_database=utf8;
Query OK, rows affected (0.00 sec) MariaDB [(none)]> set character_set_server=utf8;
Query OK, 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/ |
+--------------------------+----------------------------+
rows in set (0.01 sec)

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

 # 创建数据库
MariaDB [(none)]> CREATE DATABASE `salt`
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
Query OK, row affected (0.00 sec) MariaDB [(none)]> show create database salt;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| salt | CREATE DATABASE `salt` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
row in set (0.00 sec) # 创建用户并授权
MariaDB [(none)]> grant all on salt.* to salt@'%' identified by 'salt'; # 用于远程访问
Query OK, rows affected (0.00 sec) MariaDB [(none)]> grant all on salt.* to salt@'salt100' identified by 'salt'; # 用于本地访问
Query OK, rows affected (0.00 sec) MariaDB [(none)]> flush privileges;
Query OK, 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 |
+------+---------+-------------------------------------------+
rows in set (0.00 sec)

本地或者远程登录测试

 mysql -hsalt100 -usalt -psalt
# 或者
mysql -h172.16.1. -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() 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() NOT NULL,
`jid` varchar() NOT NULL,
`return` mediumtext NOT NULL,
`id` varchar() NOT NULL,
`success` varchar() 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() NOT NULL,
`data` mediumtext NOT NULL,
`alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`master_id` varchar() 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: [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: [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 .0G 16G % /
devtmpfs 901M 901M % /dev
tmpfs 911M 12K 911M % /dev/shm
tmpfs 911M 9.6M 902M % /run
tmpfs 911M 911M % /sys/fs/cgroup
/dev/sda1 197M 113M 85M % /boot
tmpfs 183M 183M % /run/user/
salt01:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G .1G 16G % /
devtmpfs 901M 901M % /dev
tmpfs 911M 12K 911M % /dev/shm
tmpfs 911M 9.6M 902M % /run
tmpfs 911M 911M % /sys/fs/cgroup
/dev/sda1 197M 113M 85M % /boot
tmpfs 183M 183M % /run/user/
salt02:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G .0G 16G % /
devtmpfs 901M 901M % /dev
tmpfs 911M 12K 911M % /dev/shm
tmpfs 911M 9.6M 902M % /run
tmpfs 911M 911M % /sys/fs/cgroup
/dev/sda1 197M 113M 85M % /boot
tmpfs 183M 183M % /run/user/

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: [root@salt100 ~]# systemctl restart salt-master.service # 修改了配置,需要重启 master

5.3. 测试执行

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

5.4. 数据库表信息

Saltstack_使用指南08_远程执行-返回程序的更多相关文章

  1. Saltstack_使用指南07_远程执行-执行模块

    1. 主机规划 远程执行教程文档 https://docs.saltstack.com/en/latest/topics/tutorials/modules.html 所有模块文档 https://d ...

  2. Saltstack_使用指南02_远程执行-验证

    1. 主机规划 2. Master与哪些minion通信 2.1. Master与哪些minion正常通信 [root@salt100 ~]# salt '*' test.ping salt100: ...

  3. Saltstack_使用指南06_远程执行-指定目标

    1. 主机规划 Targeting Minions文档 https://docs.saltstack.com/en/latest/contents.html 另请参见:自动化运维神器之saltstac ...

  4. Saltstack_使用指南09_远程执行-编写执行模块

    1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...

  5. SaltStack远程执行-返回MySQL

    上一篇:SaltStack远程执行-模块 参考官方文档:https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.my ...

  6. SaltStack入门篇(四)之深入理解SaltStack远程执行

    1.目标 2.执行模块 3.返回 salt ‘*’ cmd.run ‘uptime’ 命令 目标 执行模块 执行模块参数 1.SlatStack远程执行–目标 执行目标:https://docs.sa ...

  7. 006-saltstack之远程执行

    1.目标 2.执行模块 3.返回 salt ‘*’ cmd.run ‘uptime’ 命令 目标 执行模块 执行模块参数 1.SlatStack远程执行–目标 执行目标:https://docs.sa ...

  8. 批量远程执行linux服务器程序--基于paramiko(多线程版)

    批量远程执行linux服务器程序--基于paramiko paramiko模块是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 具体安装方法这里不写,网 ...

  9. 写自动更新程序出现"远程服务器返回错误: (404) 未找到"

    在win2003配置后,在客户端运行时能够下载exe和dll文件,但是在更新lib文件时总是报“远程服务器返回错误: (404) 未找到”错误,不明白咋会出现这个问题,去网上一查,发现以下解决办法: ...

随机推荐

  1. How to restore and recover a database from an RMAN backup. (Doc ID 881395.1)

    APPLIES TO: Oracle Database - Enterprise Edition - Version 10.1.0.2 to 11.2.0.2 [Release 10.1 to 11. ...

  2. WPF datagrid 列按钮使用

    原文:WPF中使用DataGrid时操作列按钮问题     <DataGrid x:Name="datagrid" AutoGenerateColumns="Fal ...

  3. 克服悲伤情绪的三个P原则

    1.自责(Personalization) --不要自责 2.永久化(Permanence) --悲伤不会永远存在,一切都会过去 据科学研究发现:人遇到开心或悲伤的事情之后,心情在短期内会产生巨大的波 ...

  4. IDEA如何打包可运行jar,外部引用jar包版

    背景: 有时候,我们会用IDEA来开发一些小工具,需要打成可运行的JAR包:或者某些项目不是WEB应用,纯粹是后台应用,发布时,也需要打成可运行的JAR包.并且,如果依赖第三方jar时,又不希望第三方 ...

  5. deepin/debian 安装docker

    简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会 ...

  6. 冒泡排序和sort,sorted排序函数

    冒泡: # 轮数 元素个数 比较次数# 1 6 5# 2 5 4# 3 4 3# 4 3 2# 5 2 1 # 列表有n个元素,则应比较n-1轮,即循环次数n-1 a=[85,7,4,89,34,2] ...

  7. 利用re处理数据

    re模块为Python提供正则表达式功能,我们可以用它来处理数据 大多数时候我们用Python读取文件数据读进来都是字符串,想要提取里面想要的数据用正则表达式是个很不错的手段 下面是一个从读取数据中提 ...

  8. something just like this---About Me

    endl:JX弱校oier,04年生,妹子,2019级高一新生,然后居然不知道该说什么了,尴尬 2019年3月开始接触oi,学的很慢(看起来脑子不太好用) 2019年7月创建了这个博客,在收到“恭喜! ...

  9. golang数据结构之选择排序

    //SelectSort 选择排序 func SelectSort(arr *[]int) { ; i < len(arr); i++ { tmp := arr[i] index := i ; ...

  10. postman测试文件上传接口教程

    postman是一个很好的接口测试软件,有时候接口是Get请求方式的,肯定在浏览器都可以测了,不过对于比较规范的RestFul接口,限定了只能post请求的,那你只能通过工具来测了,浏览器只能支持ge ...