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. iOS事件传递和事件响应者链 20170810

    一.事件响应者链 事件传递和事件响应链 区别 事件的传递和响应的区别: 事件的传递是从上到下(父控件到子控件),事件的响应是从下到上(顺着响应者链条向上传递:子控件到父控件. 引出 当我们手指触摸屏幕 ...

  2. 创建密钥并使用密钥ssh登录linux

    创建密钥并使用密钥ssh登录linux 使用密钥对登录ssh简介 通过ssh_keygen胜场公钥和私钥,公钥放在要登录的目标的机器上,私钥放登录发起的机器上. 生成密钥 我是在ubuntu上生成的密 ...

  3. Python numpy tensorflow 中的 点乘 和 矩阵乘法

    1)点乘(即“ * ”) ---- 各个矩阵对应元素做乘法  若 w 为 m*1 的矩阵,x 为 m*n 的矩阵,那么通过点乘结果就会得到一个 m*n 的矩阵. 若 w 为 m*n 的矩阵,x 为 m ...

  4. [Linux] ubuntu环境安装和使用elasticsearch

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -apt-get install ap ...

  5. Druid-代码段-4-2

    所属文章:池化技术(一)Druid是如何管理数据库连接的? 本代码段对应流程4.1,连接池瘦身: //连接池瘦身 public void shrink(boolean checkTime, boole ...

  6. 【心得】Lattice EPC3 PCS使用经验

    [博客导航] [导航]FPGA相关 一.目的 将使用过程中遇到的问题随时记录,共享经验心得. 二.心得随笔 1.仿真脚本 为避免生成PCS IP之后,仿真时忘记添加参数文件,可以在仿真脚本中添加以下代 ...

  7. Day10 - Python基础10 socketserver 实现并发

    本节内容: 1.实例tcp的并发 2.看源代码继承关系 3.详解:ThreadingTCPServer的过程 4.tcp和udp的request 不同 5.基于udp的并发实现 1.实例tcp并发 s ...

  8. Java Web 学习(5) —— Spring MVC 之数据绑定

    Spring MVC 之数据绑定 数据绑定是将用户输入绑定到领域模型的一种特性. Http 请求传递的数据为 String 类型,通过数据绑定,可以将数据填充为不同类型的对象属性. 基本类型绑定 @R ...

  9. go 创建自己的区块

    package main import ( "time" "crypto/sha256" "bytes" ) //区块体 type Bloc ...

  10. C语言中,关于排序的问题(输入n个数,输出最大的那个)

    int n,max=0,t; scanf("%d",&n); int a[n],i,k;  //这个a[n]必须要在输入n的值之后才能定义,不然定义不成. for(i=1; ...