使用SaltStack进行批量服务器部署的核心步骤如下:
安装Master与Minion
# Master端(以CentOS为例)
yum install -y epel-release
yum install -y salt-master
# Minion端
yum install -y salt-minion
/etc/salt/master):interface: 主控端IP
auto_accept: True # 允许自动认证(生产环境建议关闭)
file_roots:
base: - /srv/salt # 状态文件根目录
/etc/salt/minion):master: 主控端IP
id: Minion主机名 # 唯一标识
# Master端
systemctl start salt-master
# Minion端
systemctl start salt-minion
# 测试连通性
salt '*' test.ping
基础环境配置
systemctl stop firewalld && systemctl disable firewalld
setenforce 0 && sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
hostnamectl set-hostname 主机名
echo "主控端IP 主机名" >> /etc/hosts
编写State状态文件
/srv/salt/目录下创建状态文件(如nginx.sls),定义安装、配置步骤:nginx:
pkg.installed: [] # 安装Nginx
service.running:
- enable: True
- require:
- pkg: nginx
top.sls定义批量应用规则(支持按主机组、主机名匹配):base:
'web*': # 匹配所有以web开头的主机名
- nginx
分组与变量管理
/etc/salt/master中定义主机组(如nodegroups):nodegroups:
web_servers: 'web01,sweb02' # 按主机名分组
# /srv/pillar/top.sls
base:
'web*':
- nginx_vars
# /srv/pillar/nginx_vars.sls
nginx:
port: 8080
执行批量部署
# 执行指定环境的配置(如dev环境)
salt -N web_servers state.highstate env=dev
# 或针对特定主机
salt 'web01' state.apply nginx
salt '*' state.show_highstate # 查看即将应用的状态
salt '*' state.apply nginx test=True # 测试模式(不实际执行)
# 检查Nginx是否运行
salt 'web*' service.status nginx
# 查看配置文件是否正确分发
salt 'web*' cmd.run 'cat /etc/nginx/nginx.conf'
/var/log/salt/masterauto_accept,通过手动认证Minion公钥,并使用Vault加密敏感数据。-async)或使用Salt-SSH减少Agent依赖。通过以上步骤,可实现基于SaltStack的批量服务器部署,确保配置一致性并提升运维效率。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。