SaltStack是一款开源的,基于Python的自动化运维工具,通过SaltStack,我们可以在成千上万台服务器上批量执行命令、分发文件、配置管理、部署代码、采集数据、安装软件等等,它具有以下特性:
(1)、部署简单、方便;
(2)、支持大部分UNIX/Linux及Windows环境;
(3)、主从集中化管理;
(4)、配置简单、功能强大、扩展性强;
(5)、主控端(master)和被控端(minion)基于证书认证,安全可靠;
(6)、支持API及自定义模块,可通过Python轻松扩展。
另外,它结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建,使得在大规模集群上也得获得好的性能。
SaltStack简单安装测试
准备三台机器:
192.168.64.130 Master
192.168.64.131 Minion
192.168.64.132 Minion
salt-master安装
yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm yum clean expire-cache yum install salt-master -y
salt-master配置
vi /etc/salt/master
interface: 0.0.0.0 publish_port: 4505 worker_threads: 5 ret_port: 4506
salt-minion安装
yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm yum clean expire-cache yum install salt-minion –y
salt-minion配置
vi /etc/salt/minion
master: 192.168.64.130
id: 192.168.64.131 #覆盖默认的id;每个minion的id都是唯一的。minion启动后会用id值去master进行验证。这里使用minion的ip地址作为id
启动
启动Master
service salt-master start
启动minion
service salt-minion start
Master和Minion建立信任关系
master和minion安装配置完成后,如果master要管理minion,就要接收minion的key。任意minion的在master没有接受前,minion的公钥存放在/etc/salt/pki/master/minions_pre目录下,公钥文件以id命名。
在Master上查看minion列表:
salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
192.168.64.131
192.168.64.132
Rejected Keys:
Unaccepted Keys:
192.168.64.131
192.168.64.132
表示两台minion还未被接受。
接收单个minion
salt-key -a 192.168.64.131
[root@node0 ~]# salt-key -a 192.168.64.131
The following keys are going to be accepted:
Unaccepted Keys:
192.168.64.131
Proceed? [n/Y] Y
Key for minion 192.168.64.131 accepted.
[root@node0 ~]# salt-key -L
Accepted Keys:
192.168.64.131
Denied Keys:
Unaccepted Keys:
192.168.64.132
Rejected Keys:
接收所有的minion
salt-key -A
[root@node0 ~]# salt-key -L
Accepted Keys:
192.168.64.131
192.168.64.132
Denied Keys:
Unaccepted Keys:
Rejected Keys:
测试远程执行命令
salt '*' cmd.run 'hostname' salt '*' cmd.run 'python -V'
当命令在所有minion上执行成功时候,在打印每个minion id及对应的执行结果时,minion id为蓝色,执行返回码为0.
salt '*' cmd.run 'aa' salt '*' cmd.run 'su - lxw1'
当所有minion或者部分minion执行失败时候,执行返回码都不为0,并且失败的minion id为红色。
后面将继续学习SaltStack的其他功能,比如分发文件,定时/周期执行,返回数据自定义存储等。
如果觉得本博客对您有帮助,请 赞助作者 。
转载请注明:lxw的大数据田地 » SaltStack简介及安装配置