简介
SaltStack(http://www.saltstack.com/)是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet(http://puppetlabs.com/)和加强版的func(https://fedorahosted.org/func/) Ansible。
SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。有如下特性:
部署简单、方便;
支持大部分UNIX/Linux及Windows环境;
主从集中化管理;
配置简单、功能强大、扩展性强;
主控端(master)和被控端(minion)基于证书认证,安全可靠;
支持API及自定义模块,可通过Python轻松扩展。
通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。目前Saltstack已经趋向成熟,用户群及社区活跃度都不错,同时官方也开放了不少子项目,具体可访问https://github.com/saltstack获得。
SaltStack支持多种操作系统,如CentOS、RedHat、Debian、Ubuntu、FreeBSD、Solaris、Fedora、SuSe、Gentoo、MAC OS X、Archlinux等,以及Windows(仅支持Minion)。
官方文档:http://docs.saltstack.com
中国SaltStack用户组:http://www.saltstack.cn
Saltstack的安装
Saltstack的不同角色服务安装非常简单,建议采用yum源方式来实现部署,下面简单介绍具体步骤。
1.业务环境说明
通过部署一组业务功能服务器来进行演示,操作系统版本为CentOS release 6.5,自Python 2.6.6,相关服务器信息如表。
角色
ID
IP
Groupsnmode
master
saltstack_master.test.com
192.168.1.182
minion
saltstack_web1group_1
192.168.1.183
web1group
minion
saltstack_web1group_2
192.168.1.184
web1group
修改master服务端hosts文件及master端/minion端主机名;
[root@saltstack-master salt]# vim /etc/hosts
挂载光盘,安装EPEL,由于目前RHEL官网yum源还没有Saltstack的软件包支持,因此先安装EPEL作为部署Saltstack的默认yum源。
[root@saltstack-master ~]# mount /dev/cdrom /mnt
主服务器安装Saltstack
[root@saltstack-master ~]# yum -y install salt-master
从服务器安装Saltstack
[root@saltstack_web1group_1 ~]# yum -y install salt-minion
SaltStack防火墙配置
SaltStack master启动后默认监听 4505 和 4506 两个端口。
4505:publish port 为 saltstack 的消息发布系统
4506:ret port 为 saltstack 被控制与服务端通信的端口。
如果使用 lsof 查看4505端口,会发现所有的 minion 在4505端口持续保持在ESTABLISHED状态。
在主控制端添加TCP 4505,TCP 4506的规则,而在被控端无须配置防火墙,原理是被控端直接与主控端的zeromq建立长连接,接受广播到的任务信息并执行,添加两条iptables规则:
[root@saltstack-master ~]# iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT
更新 SaltStack 配置及安装校验
Saltstack分两种角色:一种为master(主控端),另一种为minion(被控端),安装完毕后要对两种角色的配置文件进行修改。
master 主控端配置
[root@saltstack-master ~]# vim /etc/salt/master
minion被控端配置
[root@saltstack_web1group_1 ~]# vim /etc/salt/minion
Saltstack master minion 配置文件
Master端的配置是修改/etc/salt下master配置文件。以下是Master端常用的配置。
Minion常用配置
当/etc/salt/master 没有配置auto_accept: True时,需要通过salt-key 命令来进行证书认证操作,具体操作如下:
认证流程(密钥)
master/minion数据传输采用AES加密算法,salt支持自动认证
把公钥发给master
[root@saltstack-master salt]# cd /etc/salt/pki/master/
校验安装结果
通过test模块的ping方法,可以确认指定被控端设备与主控端是否建立信任关系及连通性是否正常,探测所有被控端采用’*’来代替’ saltstack_web1group_1’即可。
[root@saltstack-master salt]# salt 'saltstack_web1group_1' test.ping
推荐阅读:
8、我必须得告诉大家的MySQL优化原理
资源分享:
T级技术资源大放送!包括但不限于:Linux、Python、Java、前端、测试、大数据、人工智能等,具体获取方式请点击下方链接进行查看~资料大放送①期 | 这份资料很特别!
扫它,来撩杰哥~
长按 识别二维码 关注
本文分享自微信公众号 - 杰哥的IT之旅(Jake_Internet)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。