SaltStack安装与配置
一、基础介绍
1、简介
SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。
通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。
2、特性
(1)、部署简单、方便;
(2)、支持大部分UNIX/Linux及Windows环境;
(3)、主从集中化管理;
(4)、配置简单、功能强大、扩展性强;
(5)、主控端(master)和被控端(minion)基于证书认证,安全可靠;
(6)、支持API及自定义模块,可通过Python轻松扩展。
3、说明
Saltstack 比 Puppet 出来晚几年,是基于Python 开发的,也是基于 C/S 架构,服务端 master 和客户端 minions ;Saltstack 和 Puppet 很像,可以说 Saltstatck 整合了 Puppet和Chef的功能,更加强大,更适合大规模批量管理服务器,并且它比Puppet 更容易配置。
三大功能: 远程命令执行,配置管理(服务,文件,cron,用户,组),云管理。
支持系统:大多数都支持,windows 上不支持安装 master。
4、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发送指令了。
5、Master与Minion的连接
SaltStack的master启动后默认监听4505和4506两个端口。
4505(publish_port)为saltstack的消息发布系统,4506(ret_port)为saltstack客户端与服务端通信的端口。如果使用lsof查看4505端口,会发现所有的minion在4505端口持续保持在ESTABLISHED状态。
二、SaltStack安装与配置
实验环境:
master:
server1:172.25.51.1
minion:
server2:172.25.51.2
server3:172.25.51.3
实验准备:配置yum源
1.源端下载rhel6安装包到物理机/var/www/html下:
2.修改yum源配置文件
[root@server1 ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.51.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[salt]
name=saltstack
baseurl=http://172.25.51.250/rhel6
gpgcheck=0
3.查看yum源与安装包
具体配置如下:
一、下载并配置salt
[root@server1 ~]# yum install salt-master -y
[root@server1 ~]# cd /etc/salt/
[root@server1 salt]# vim master ##注意格式,顶格写,冒号与ip之间空一格
15 interface: 172.25.51.1
[root@server1 salt]# /etc/init.d/salt-master start
[root@server2 ~]# yum install salt-minion -y
[root@server2 ~]# cd /etc/salt/
[root@server2 salt]# vim minion
17 master: 172.25.51.1
[root@server2 salt]# /etc/init.d/salt-minion start
[root@server3 ~]# yum install salt-minion -y
[root@server3 ~]# cd /etc/salt/
[root@server3 salt]# vim minion
17 master: 172.25.51.1
[root@server3 salt]# /etc/init.d/salt-minion start
示图:启动服务,4505、4506端口开启
注意:
minion端开启服务后,会生成minion_id文件,修改 IP 或 hostname 时,必须删除该文件,重启服务后才可生效.
查看salt-key,并交换master与minion 的公钥
[root@server1 salt]# salt-key -L
[root@server1 salt]# salt-key -A
二、查看相关信息
1.下载并查看master和minion端的tree
[root@server2 salt]# yum install tree -y
2.查看4505、4506端口运行情况:
[root@server1 salt]# yum install lsof -y
3.检测salt服务:
4.查看python端口进程
[root@server1 salt]# yum install -y python-setproctitle.x86_64
[root@server1 salt]# /etc/init.d/salt-master restart
[root@server1 salt]# ps ax