自动化运维工具---SaltStack安装部署及简单案例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化运维工具---SaltStack安装部署及简单案例相关的知识,希望对你有一定的参考价值。
SaltStack原理
- SaltStack由Master(服务端)和Minion(客户端)组成,Master和Minion之间通过ZeroMQ(消息队列)进行通讯,Master和Minion分别监听4505与4506端口,4505为master与minion认证通信端口,4506为master用来发送或者接受minion的命令执行返回信息。
- 当客户端启动后,会主动链接master端注册,然后一直保持该TCP连接,而master通过这条TCP连接对客户端进行控制,如果连接断开,master将对客户端不能进行控制,但是,当客户端断开连接后,会定期向master端请求注册。
SaltStack常用模块
- 与ansible类似,SaltStack提供了很多功能模块,便于对操作系统的基础功能和常用工具操作。
1:pkg模块 :是包管理,包括增删更新。
2:file模块 :管理文件操作,包括同步文件、设置文件权限和所属用户组、删除文件等操作。
3:cmd模块 :是在Minion上执行命令或者脚本。
4:user模块 :管理系统账户操作。
5:service模块 :管理系统服务操作
6:cron模块 :管理cron服务操作
实验环境
角色 | 主机名 | IP地址 |
---|---|---|
master | master.saltstack.com | 192.168.144.112 |
minion | web01.saltstack.com | 192.168.144.111 |
SaltStack安装
1、更改主机名关闭防火墙
- 需要注意的是master与minion端都需关闭SELinux和防火墙,且一定要设置完整的FQDN,域名的形式也要一样,不然在主控端执行远程执行命令或者配置的时候,等待的时间会非常长,甚至还会出现其他不可控的情况。
systemctl stop firewalld.service
setenforce 0vim /etc/hostname
master.saltstack.com //(管理)
web01.saltstack.com //(被管理)
- 修改每台hosts文件
vim /etc/hosts
192.168.144.112 master.saltstack.com //所有机器保持一致,保证解析得到的域名可控
192.168.144.111 web01.saltstack.com
- 重启服务器
2、安装master与minion端
- 安装master端
yum install epel-release -y
yum install salt-master
- 安装被控制端
yum install epel-release -y
yum install -y salt-minion
3、master端配置
vim /etc/salt/master
interface: 192.168.144.111 //15行 监听地址改为本地IP
............
auto_accept: True //215 证书认证
............
file_roots: //416行 站点目录开启,注意打开后目录文件是否存在,若不存在需要手动创建
base:
- /srv/salt
............
nodegroups: //710行 组分类
group1: ‘web01.saltstack.com‘
group2: ‘web02.saltstack.com‘
............
pillar_opts: True //552行 pillar开启
pillar_roots: //529行
base:
- /srv/pillar
- 过滤空行与#开头行,查看所配置项。
cat /etc/salt/master | grep -v ^$ | grep -v ^#
- 创建master的站点目录/srv/salt与pillar目录/srv/pillar
mkdir /srv/salt
mkdir /srv/pillar
systemctl start salt-master.service //开启服务
netstat -natp | egrep ‘4505|4506‘ //查看4505、4506端口
4、被管理端minnion配置
vim /etc/salt/minion
master: 192.168.144.111 //16行 指定管理端IP
id: web01.saltstack.com //78行 指定被控的主机名
- 启动minion
systemctl start salt-minion.service
5、C/S构建完成,验证简单操作
salt ‘‘ test.ping //查看通信状态
salt ‘‘ cmd.run ‘df -h‘ //查看所有被管理端的挂载情况
salt ‘web01.saltstack.com‘ cmd.run ‘df -h‘ //查看指定主机的挂载情况
salt ‘‘ grains.items //查看grains值
salt ‘‘ pillar.items //查看pillar(动态信息)
salt-key //查看已经被接受过的客户端
Saltstack批量部署安装Apache
1、创建sls入口文件表示执行Apache模块
vim /srv/salt/top.sls
base:
‘*‘: //*号表示对所有主机
- apache //对应下面执行文件的名称
2、创建模块执行文件
vim /srv/salt/apache.sls
apache-service:
pkg.installed:
- names:
- httpd
- httpd-devel
service.running:
- name: httpd
- enable: True
systemctl restart salt-master
- 在主控端执行刷新state配置命令,让被控制端执行安装apache
salt ‘*‘ state.highstate
- 也可去minion被控制端检测是否安装成功。
以上是关于自动化运维工具---SaltStack安装部署及简单案例的主要内容,如果未能解决你的问题,请参考以下文章