Linux企业级——SaltStack
文章目录
1.SaltStack简介
Saltstack是基于Python开发的一套C/S架构,具备Puppet、Ansible功能于一身的配置管理工具,功能十分强大,各模块融合度及复用性极高;使用号称世界上最快的消息队列ZeroMQ使得Saltstack能够秒级在数万台服务器上进行各种操作,而且使用RAS Key方式确认身份,传输采用AES加密,安全性能更高。通过部署SaltStack,我们可以在成千万台服务器上做到批量执行命令,根据不同业务进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。
SaltStack服务端 master 和客户端 minions ;Saltstack 和 Puppet 很像,可以说 Saltstatck 整合了 Puppet 和 Chef 的功能,更加强大,更适合大规模批量管理服务器,并且它比 Puppet 更容易配置。
三大功能: 远程命令执行,配置管理(服务,文件,cron,用户,组),云管理。
2.SaltStack安装部署
实验环境
主机名 | ip | 服务 |
---|---|---|
server1 | 172.25.1.1 | 服务端 salt-master |
server2 | 172.25.1.2 | 客户端 salt-minion |
server3 | 172.25.1.3 | 客户端 salt-minion |
2.1 saltstack安装部署
2.1.1 配置yum源
注:三台虚拟机均配置
vim salt.repo
[salt]
name=salt
baseurl=http://172.25.66.250/2019
gpgcheck=0
2.1.2 安装服务
server1上:
yum install salt-master -y #安装服务端
server2上:
yum install salt-minion -y #安装用户端
vim /etc/salt/minion #修改配置文件
16 master: 172.25.66.1
server3上:
yum install salt-minion -y #安装用户端
vim /etc/salt/minion #修改配置文件
16 master: 172.25.66.1
2.1.3 开启服务
server1上:
systemctl start salt-master #启动服务
systemctl enable salt-master #设置开机自启动
systemctl status salt-master #查看服务状态
server2和server3上:
systemctl start salt-minion #启动服务
systemctl enable salt-minion #设置开机自启动
systemctl status salt-minion #查看服务状态
2.1.4 查看认证
server2和server3上:
cd /etc/salt/pki/minion/ #进入存放目录
ls
2.1.5 查看端口
yum install -y lsof.x86_64 0:4.87-5.el7 #下载lsof工具包
lsof -i :4505 #查看saltstack的消息发布系统端口
lsof -i :4506 #查看saltstack客户端与服务端通信的端口
2.1.6 master端做认证
salt-key -L #查看所有minion-key
salt-key -A #接受所有等待认证的key
2.1.7 检测链接
salt server2 test.ping
salt server3 test.ping
2.1.8 查看主机的public key
cd /etc/salt/pki/master/
tree . #查看当前目录的树形结构
2.1.9 查看对应文件md5值
server1:
md5sum server2
server2:
public key的md5值:
md5sum minion.pub
此时发现这两个的md5值是相同的
server1:
md5sum server3
server3:
public key的md5值:
md5sum minion.pub
2.2 查看服务开启进程名称
yum install python-setproctitle -y #下载该服务,可以查看saltstack服务开启进程的名称
systemctl restart salt-master #重启salt-master服务
ps aux #查看进程
3.apache的部署
3.1 添加/srv/salt/apache.sls文件:
apache-install: #声明
pkg.installed: #模块
- pkgs: #方法
- httpd #传参
- httpd-tools
file.managed: #file模块managed方法
- name: /etc/httpd/conf/httpd.conf #name:位置
- source: salt://apache/files/httpd.conf #source:来源 salt服务端基于目录/srv/salt
service.running: #service运行服务
- name: httpd #name:服务名称
- reload: true #重启,每次修改配置文件,都会触发重启,可以声明以reload方式重启。
- watch: #监控文件,如果有变化则服务重启
- file: apache-install #到apache-install唯一性文件声明中找file定义
3.2 拷贝配置文件
3.2.1 创建相关目录
cd /srv/salt/apache #进入目录
mkdri files #存放.sls文件中添加服务需要用到的文件
3.2.2 拷贝文件
server3:
yum install -y httpd #安装apache服务
scp /etc/httpd/conf/httpd.conf root@server1:/srv/salt/apache/files #传送文件
server1:
cd /srv/salt/apache/files #进入目录
ls #查看
3.3 执行apache.sls
salt server2 state.sls apache.apache #调用状态模块的sls方法,执行apache目录下的apache文件,appache.sls文件的sls后缀可不写
3.3.1 在server2中测试
systemctl status httpd #查看apache服务状态