zoukankan      html  css  js  c++  java
  • Saltstack_使用指南08_远程执行-返回程序

    1. 主机规划

    salt 版本
    1 [root@salt100 ~]# salt --version
    2 salt 2018.3.3 (Oxygen)
    3 [root@salt100 ~]# salt-minion --version
    4 salt-minion 2018.3.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 数据库

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

    2.2. 字符集设置

    配置文件也要修改

     1 [root@salt100 ~]# mysql
     2 Welcome to the MariaDB monitor.  Commands end with ; or g.
     3 Your MariaDB connection id is 2
     4 Server version: 5.5.60-MariaDB MariaDB Server
     5 
     6 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
     7 
     8 Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
     9 
    10 MariaDB [(none)]> show variables like '%char%';  
    11 +--------------------------+----------------------------+
    12 | Variable_name            | Value                      |
    13 +--------------------------+----------------------------+
    14 | character_set_client     | utf8                       |
    15 | character_set_connection | utf8                       |
    16 | character_set_database   | latin1                     |
    17 | character_set_filesystem | binary                     |
    18 | character_set_results    | utf8                       |
    19 | character_set_server     | latin1                     |
    20 | character_set_system     | utf8                       |
    21 | character_sets_dir       | /usr/share/mysql/charsets/ |
    22 +--------------------------+----------------------------+
    23 8 rows in set (0.00 sec)
    24 
    25 MariaDB [(none)]> set character_set_database=utf8;  
    26 Query OK, 0 rows affected (0.00 sec)
    27 
    28 MariaDB [(none)]> set character_set_server=utf8;  
    29 Query OK, 0 rows affected (0.00 sec)
    30 
    31 MariaDB [(none)]> show variables like '%char%';  
    32 +--------------------------+----------------------------+
    33 | Variable_name            | Value                      |
    34 +--------------------------+----------------------------+
    35 | character_set_client     | utf8                       |
    36 | character_set_connection | utf8                       |
    37 | character_set_database   | utf8                       |
    38 | character_set_filesystem | binary                     |
    39 | character_set_results    | utf8                       |
    40 | character_set_server     | utf8                       |
    41 | character_set_system     | utf8                       |
    42 | character_sets_dir       | /usr/share/mysql/charsets/ |
    43 +--------------------------+----------------------------+
    44 8 rows in set (0.01 sec)

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

     1 # 创建数据库
     2 MariaDB [(none)]> CREATE DATABASE  `salt`
     3          DEFAULT CHARACTER SET utf8
     4          DEFAULT COLLATE utf8_general_ci;
     5 Query OK, 1 row affected (0.00 sec)
     6 
     7 MariaDB [(none)]> show create database salt;
     8 +----------+---------------------------------------------------------------+
     9 | Database | Create Database                                               |
    10 +----------+---------------------------------------------------------------+
    11 | salt     | CREATE DATABASE `salt` /*!40100 DEFAULT CHARACTER SET utf8 */ |
    12 +----------+---------------------------------------------------------------+
    13 1 row in set (0.00 sec)
    14 
    15 # 创建用户并授权
    16 MariaDB [(none)]> grant all on salt.* to salt@'%' identified by 'salt';  # 用于远程访问
    17 Query OK, 0 rows affected (0.00 sec)
    18 
    19 MariaDB [(none)]> grant all on salt.* to salt@'salt100' identified by 'salt';   # 用于本地访问
    20 Query OK, 0 rows affected (0.00 sec)
    21 
    22 MariaDB [(none)]> flush privileges; 
    23 Query OK, 0 rows affected (0.00 sec)
    24 
    25 MariaDB [(none)]> select user,host,password from mysql.user where user = 'salt';
    26 +------+---------+-------------------------------------------+
    27 | user | host    | password                                  |
    28 +------+---------+-------------------------------------------+
    29 | salt | %       | *36F75ABC6D500DFA6E905046FD8BE5E115812DD0 |
    30 | salt | salt100 | *36F75ABC6D500DFA6E905046FD8BE5E115812DD0 |
    31 +------+---------+-------------------------------------------+
    32 2 rows in set (0.00 sec)

    本地或者远程登录测试

    1 mysql -hsalt100 -usalt -psalt
    2 # 或者
    3 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
     1 use salt;
     2 
     3 --
     4 -- Table structure for table `jids`
     5 --
     6 DROP TABLE IF EXISTS `jids`;
     7 CREATE TABLE `jids` (
     8   `jid` varchar(255) NOT NULL,
     9   `load` mediumtext NOT NULL,
    10   UNIQUE KEY `jid` (`jid`)
    11 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    12 
    13 --
    14 -- Table structure for table `salt_returns`
    15 --
    16 DROP TABLE IF EXISTS `salt_returns`;
    17 CREATE TABLE `salt_returns` (
    18   `fun` varchar(50) NOT NULL,
    19   `jid` varchar(255) NOT NULL,
    20   `return` mediumtext NOT NULL,
    21   `id` varchar(255) NOT NULL,
    22   `success` varchar(10) NOT NULL,
    23   `full_ret` mediumtext NOT NULL,
    24   `alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    25   KEY `id` (`id`),
    26   KEY `jid` (`jid`),
    27   KEY `fun` (`fun`)
    28 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    29 
    30 --
    31 -- Table structure for table `salt_events`
    32 --
    33 DROP TABLE IF EXISTS `salt_events`;
    34 CREATE TABLE `salt_events` (
    35 `id` BIGINT NOT NULL AUTO_INCREMENT,
    36 `tag` varchar(255) NOT NULL,
    37 `data` mediumtext NOT NULL,
    38 `alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    39 `master_id` varchar(255) NOT NULL,
    40 PRIMARY KEY (`id`),
    41 KEY `tag` (`tag`)
    42 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    3. 安装依赖包

    1 salt '*' state.single pkg.installed name=MySQL-python    
    2 或者
    3 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端都添加设置

    1 [root@salt03 ~]# vim /etc/salt/minion 
    2 …………
    3 mysql.host: 'salt100'
    4 mysql.user: 'salt'
    5 mysql.pass: 'salt'
    6 mysql.db: 'salt'
    7 mysql.port: 3306
    8 
    9 [root@salt03 ~]# systemctl restart salt-minion.service  # 修改了配置,需要重启 minion

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

     1 [root@salt100 ~]# vim /etc/salt/master 
     2 …………
     3 ext_job_cache: mysql
     4 mysql.host: 'salt100'
     5 mysql.user: 'salt'
     6 mysql.pass: 'salt'
     7 mysql.db: 'salt'
     8 mysql.port: 3306
     9 
    10 [root@salt100 ~]# systemctl restart salt-master.service   # 修改了配置,需要重启 master

    4.4. 测试执行

     1 # 说明: 带了 --return mysql ,适合上面的方式一,在minion端配置
     2 # 如果没有带  --return mysql ,适合上面的方式二,在master端配置
     3 [root@salt100 ~]# salt '*' test.ping --return mysql  
     4 salt03:
     5     True
     6 salt01:
     7     True
     8 salt02:
     9     True
    10 salt100:
    11     True
    12 [root@salt100 ~]# salt 'salt0*' cmd.run 'df -h' --return mysql  
    13 salt03:
    14     Filesystem      Size  Used Avail Use% Mounted on
    15     /dev/sda3        18G  2.0G   16G  12% /
    16     devtmpfs        901M     0  901M   0% /dev
    17     tmpfs           911M   12K  911M   1% /dev/shm
    18     tmpfs           911M  9.6M  902M   2% /run
    19     tmpfs           911M     0  911M   0% /sys/fs/cgroup
    20     /dev/sda1       197M  113M   85M  58% /boot
    21     tmpfs           183M     0  183M   0% /run/user/1001
    22 salt01:
    23     Filesystem      Size  Used Avail Use% Mounted on
    24     /dev/sda3        18G  2.1G   16G  12% /
    25     devtmpfs        901M     0  901M   0% /dev
    26     tmpfs           911M   12K  911M   1% /dev/shm
    27     tmpfs           911M  9.6M  902M   2% /run
    28     tmpfs           911M     0  911M   0% /sys/fs/cgroup
    29     /dev/sda1       197M  113M   85M  58% /boot
    30     tmpfs           183M     0  183M   0% /run/user/1001
    31 salt02:
    32     Filesystem      Size  Used Avail Use% Mounted on
    33     /dev/sda3        18G  2.0G   16G  12% /
    34     devtmpfs        901M     0  901M   0% /dev
    35     tmpfs           911M   12K  911M   1% /dev/shm
    36     tmpfs           911M  9.6M  902M   2% /run
    37     tmpfs           911M     0  911M   0% /sys/fs/cgroup
    38     /dev/sda1       197M  113M   85M  58% /boot
    39     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端添加如下配置

     1 [root@salt100 ~]# vim /etc/salt/master 
     2 …………
     3 master_job_cache: mysql
     4 mysql.host: 'salt100'
     5 mysql.user: 'salt'
     6 mysql.pass: 'salt'
     7 mysql.db: 'salt'
     8 mysql.port: 3306
     9 
    10 [root@salt100 ~]# systemctl restart salt-master.service   # 修改了配置,需要重启 master

    5.3. 测试执行

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

    5.4. 数据库表信息

  • 相关阅读:
    raw_input() 与 input()对比
    你很熟悉CSS,却没掌握这些CSS技巧
    CSS样式设置
    javascript基本语法和变量(转)
    手机/移动前端开发需要注意的20个要点
    移动端”宴席知多少
    git第一次提交代码到远程仓库
    java对过反射调用方法
    站点收集
    别人抢红包,我们研究一下红包算法
  • 原文地址:https://www.cnblogs.com/zhanglianghhh/p/10827904.html
Copyright © 2011-2022 走看看