浅谈saltstack
saltstack简介
SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能.SaltStack基于Python语 言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和 PyYAML等)构建。
saltstack特性
(1)、部署简单、方便;
(2)、支持大部分UNIX/Linux及Windows环境;
(3)、主从集中化管理;
(4)、配置简单、功能强大、扩展性强;
(5)、主控端(master)和被控端(minion)基于证书认证,安全可靠;
(6)、支持API及自定义模块,可通过Python轻松扩展。
Master与Minion认证
(1)、minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在/etc/salt/minion里面设置)下自动生成 minion.pem(private key)和 minion.pub(public key),然后将 minion.pub发送给master。
(2)、master在接收到minion的public key后,通过salt-key命令accept minion public key,这样在master 的/etc/salt/pki/master/minions下的将会存放以minion id命名的 public key,然后master就能对minion发送 指令了。
Master与Minion的连接
(1)、SaltStack master启动后默认监听4505和4506两个端口。4505(publish_port)为saltstack的消息发布系 统,4506(ret_port)为saltstack客户端与服务端通信的端口。如果使用lsof 查看4505端口,会发现所有的 minion在4505端口持续保持在ESTABLISHED状态。
(2)、minion与master之间的通信模式如下:
本次测试环境
10.10.36.104 | master | CentOS 6.7 |
10.10.36.103 | minion | CentOS 6.7 |
10.10.36.102 | minion | CentOS 6.7 |
rpm包下载地址:
https://repo.saltstack.com/yum/rhel6/
Version 7:
rpm --import https://repo.saltstack.com/yum/redhat/7/x86_64/latest/SALTSTACK-GPG-KEY.pub
Version 6:
rpm --import https://repo.saltstack.com/yum/redhat/6/x86_64/latest/SALTSTACK-GPG-KEY.pub
# 配置yum源
Version 7 and 6: vim /etc/yum.repos.d/saltstack.repo [saltstack-repo] name=SaltStack repo for RHEL/CentOS $releasever baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest enabled=1 gpgcheck=1 gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub
# 清除过期的缓存
sudo yum clean expire-cache
# 升级yum
sudo yum -y update
# 安装 salt-minion, salt-master, or other Salt components:
yum -y install salt-master yum -y install salt-minion yum -y install salt-ssh yum -y install salt-syndic yum -y install salt-cloud
# 配置master:
# 配置master开机自动启动: chkconfig salt-master on # 启动Master: service salt-master start # 编辑master配置文件 vim /etc/salt/master # 绑定本地接口 interface: 10.10.36.104 auto_accept: True
# 配置Minion
# 配置Minion开机自动启动: chkconfig salt-minion on # 启动Minion: service salt-minion start # 编辑Minion配置文件 vim /etc/salt/minion # 指定master地址 master: 10.10.36.104 # 该minion的ID id: minion-10-10-36-104