使用redis作为Return存储方式

 Return组件可以理解为SaltStack系统对执行Minion返回后的数据进行存储或者返回给其他程序,它支持多种存储方式,比如MySQL、Redis、Memcache等,通过Return我们可以对SaltStack的每次操作进行记录,对以后日志审计提供了数据来源。

 Return的流程:Return是在Master端触发任务,然后Minion接受处理任务后直接与Return存储器建立连接,然后把数据Return存到存储服务器,整个过程都是Minion端操作存储服务器。

 接下来选择Redis作为Return结果的存储方式(Redis和master部署到了一起)

<1>在master端部署redis

[root@master ~]# wget http://download.redis.io/releases/redis-3.0.6.tar.gz

[root@master install]# tar xf redis-3.0.6.tar.gz

[root@master install]# cd redis-3.0.6
[root@master redis-3.0.6]# make

[root@master redis-3.0.6]# cd src/
[root@master src]# make install

[root@master src]# mkdir -p /usr/local/redis/bin/

[root@master src]# mkdir -p /usr/local/redis/etc

[root@master src]# mv ../redis.conf /usr/local/redis/etc/

[root@master src]# mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server redis-trib.rb /usr/local/redis/bin/

[root@master src]# vim /usr/local/redis/etc/redis.conf

daemonize yes    //设置为后台方式运行

[root@master src]# cd /usr/local/redis/bin/

[root@master src]# ./redis-server /usr/local/redis/etc/redis.conf    //启动redis

[root@master src]# netstat -anpt | grep redis

tcp        0      0 0.0.0.0:6379   0.0.0.0:*     LISTEN      5802/./redis-server

tcp        0      0 :::6379            :::*        LISTEN      5802/./redis-server

<1>在minion端部署redis客户端

[root@minion-1 install]# wget –no-check-certificate https://pypi.python.org/packages/source/r/redis/redis-2.8.0.tar.gz

[root@minion-1 install]# tar xf redis-2.8.0.tar.gz

[root@minion-1 install]# cd redis-2.8.0
[root@minion-1 redis-2.8.0]# python setup.py install

[root@minion-1 redis-2.8.0]# python -c 'import redis; print redis.VERSION'                     //确定安装没有问题
(2, 8, 0)

<3>修改minion端的配置文件,并重新启动服务

[root@minion-1 redis-2.8.0]# vim /etc/salt/minion

redis.db: '0'
redis.host: '192.168.200.101'
redis.port: 6379

[root@minion-1 redis-2.8.0]# service salt-minion restart

<4>在master端执行一个操作

[root@master ~]# salt 'minion-1' cmd.run 'hostname' --return redis

<5>查看redis的输出

[root@master ~]# redis-cli monitor
OK
1504161420.535733 [0 192.168.200.102:49207] "SELECT" "0"
1504161420.535990 [0 192.168.200.102:49207] "SET" "minion-1:20170831143700483708" "{\"fun_args\": [\"hostname\"], \"jid\": \"20170831143700483708\", \"return\": \"minion-1\", \"retcode\": 0, \"success\": true, \"fun\": \"cmd.run\", \"id\": \"minion-1\"}"
1504161420.536240 [0 192.168.200.102:49207] "LPUSH" "minion-1:cmd.run" "20170831143700483708"
1504161420.536545 [0 192.168.200.102:49207] "SADD" "minions" "minion-1"
1504161420.536704 [0 192.168.200.102:49207] "SADD" "jids" "20170831143700483708"

 这就是本次小实验的内容,每台minion跟存储服务器连接后发送返回数据,所以说在有大规模的minion端的环境下不适合使用。

上一篇:POJ 2407 (欧拉函数)


下一篇:Inventor 2014 sp1/sp2激活