SaltStack 简介
Salt 是一个基础平台管理工具. SaltStack 采用 C/S 模式, server 端就是 salt 的 master,client 端就是 minion,minion 与 master 之间通过 ZeroMQ 消息队列通信. master 监听 4505 和 4506 端口, 4505 为 master 和 minion 认证通信端口, 4506 为 master 用来发送命令或者接收 minion 的命令执行返回信息.
SaltStack 常用模块
SaltStack 提供了非常多的功能模块, 以便于对操作系统的基础功能和常用工具的操作.
1:pkg 模块 : 是包管理, 包括增删更新.
2:file 模块 : 管理文件操作, 包括同步文件, 设置文件权限和所属用户组, 删除文件等操作.
3:cmd 模块 : 是在 Minion 上执行命令或者脚本.
4:user 模块 : 管理系统账户操作.
5:service 模块 : 管理系统服务操作
6:cron 模块 : 管理 cron 服务操作
部署环境
角色 | 主机名 | IP |
---|---|---|
master | master.saltstack.com | 192.168.200.128 |
minion | web01.saltstack.com | 192.168.200.129 |
minion | web02.saltstack.com | 192.168.200.130 |
操作步骤
SaltStack 安装
1: 修改主机名
# vim /etc/hostname
三台主机分别为:
- master.saltstack.com //(管理)
- web01.saltstack.com //(被管理)
- web02.saltstack.com //(被管理)
- # init 6 // 重启系统 让主机名生效
2: 修改三台 hosts 文件
- # vim /etc/hosts
- 192.168.200.128 master.saltstack.com
- 192.168.200.129 web01.saltstack.com
- 192.168.200.130 web02.saltstack.com
3: 安装
- # systemctl stop firewalld
- # setenforce 0 // 关闭防火墙
- # yum install -y epel-release
- # yum install -y salt-master // 管理端安装
- # yum install -y epel-release
- # yum install -y salt-minion // 被管理端安装
4: 管理端配置
- # vim /etc/salt/master
- interface: 192.168.200.128 //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 ^# // 查看修改好的配置项
5: 创建 salt 文件根目录和 pillar 目录
- # mkdir /srv/salt
- # mkdir /srv/pillar
- # systemctl start salt-master.service // 开启服务
- # netstat -natp | egrep '4505|4506' // 查看 4505,4506 端口
6: 被管理端配置
- # vim /etc/salt/minion
- master: 192.168.200.128 //16 行 指定管理端 IP
- id: web01.saltstack.com //78 行 指定被控的主机名 (另外一台为 web02.saltstack.com)
- # systemctl start salt-minion.service // 开启服务
7: 在管理端测试 . '*' 指的是所有主机
- # 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
注意:'*' 表示所有客户端执行 apache 模块
- # vim /srv/salt/top.sls
- base:
- '*':
- - apache
- # vim /srv/salt/apache.sls // 注意 apache-service 是自定义的 id 名
- apache-service:
- pkg.installed:
- - names:
- - httpd
- - httpd-devel
- service.running:
- - name: httpd
- - enable: True
重启服务
# systemctl restart salt-master
在管理端执行刷新 state 配置命令
# salt '*' state.highstate
去 minion 验证下 httpd 安装成功
来源: http://blog.51cto.com/13630803/2155031