SaltStack远程执行之返回(return)

SaltStack中文官网:http://docs.saltstack.cn/

  1. saltstack有3大功能:远程执行,配置管理,云管理
  2. 其中远程执行又可分解为:目标,模块,返回  这3个部分。
  3. 数据返回:return,返回信息通过4506接收

例如以下命令:

[root@server1 ~]# salt '*' cmd.run 'df -h'

其中'*' 是目标,匹配所有已经认证的minion, cmd.run  是模块中的方法,而下面的结果属于返回

默认情况下,发送给salt-minion的命令执行结果返回给salt master。其实saltstack returner的接口允许将结果发送给任意系统,比如:mysql,redis,syslog

实例:让minion把返回的结果直接存到数据库里(这里用的数据库为mariadb)

1、准备一台mariadb机器

master:
[root@server1 ~]# yum install -y mariadb-server MySQL-python.x86_64
[root@server1 ~]# systemctl start mariadb
[root@server1 ~]# mysql

MariaDB [(none)]> grant all on salt.* to salt@'%' identified by 'westos';

 

2、建库建表

[root@server1 ~]# vim add.sql
CREATE DATABASE  `salt`
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;

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;
#CREATE INDEX jid ON jids(jid) USING BTREE;

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

导入数据库:

[root@server1 ~]# mysql < add.sql 

3、所有minion安装mysql-python模块

python和mysql交互需要一个模块--mysql-python

[root@server2 ~]# yum install -y MySQL-python.x86_64

 4、minion更改配置文件,连接数据库

[root@server2 ~]# vim /etc/salt/minion
874 mysql.host: '172.25.36.1'
875 mysql.user: 'salt'
876 mysql.pass: 'westos'
877 mysql.db: 'salt'
878 mysql.port: 3306

[root@server2 ~]# systemctl restart salt-minion.service 

 

如过导入数据库出错:MariaDB [(none)]> drop database salt;

 5、master发送命令测试 

[root@server1 ~]# salt '*' test.ping --return mysql
server2:
    True
server3:
    True

MariaDB [salt]> select * from salt_returns;

可以看到server2执行命令的信息

扩展

[root@server1 ~]# vim /etc/salt/master
master_job_cache: mysql
mysql.host: 'localhost'
mysql.user: 'salt'
mysql.pass: 'westos'
mysql.db: 'salt'
mysql.port: 3306
[root@server1 ~]# systemctl restart salt-master

[root@server1 ~]# mysql -u salt -p salt
MariaDB [(none)]> grant all on salt.* to salt@'localhost' identified by 'westos';

[root@server1 ~]# salt '*' cmd.run 'hostname'
server3:
    server3
server2:
    server2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马克图布s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值