🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
简单实验图: ![](https://box.kancloud.cn/0f66860fb6cddd723b192d2e44d5eb47_881x557.png) 实现说明: 主机名 IP地址 安装角色 master.51yuki.cn 10.2.11.227 salt-master node2.51yuki.cn 10.2.11.228 salt-minion\haproxy\keepalived node3.51yuki.cn 10.2.11.226 salt-minion\haproxy\keepalived node4.51yuki.cn 10.2.11.217 salt-minion\nginx+php\memcached node5.51yuki.cn 10.2.11.216 salt-minion\nginx+php mysql.51yuki.cn 10.2.11.240 mysql 实验功能: 1)通过saltstack初始化所有系统 2)通过saltstack配置haproxy、keepalived 3)通过saltstack配置nginx+php 4)通过saltstack配置memcached 实现前提: 关闭所有机器上的firewalld,selinux防火墙 (如果要开启firewalld,请放行4505,4506端口) 1)在master上安装salt-master [admin@master ~]$ sudo yum -y install salt-master 2)在node2.51yuki.cn 到node5.51yuki.cn的机器上安装salt-minion(我这里以node4.51yuki.cn为例,其他机器上类似) [admin@node4 ~]$ sudo yum -y install salt-minion 3)在salt-minion上配置 3.1) sudo vim /etc/salt/minion master: master.51yuki.cn 3.2)启动服务 [admin@node4 ~]$ sudo systemctl start salt-minion 4)在salt-master配置 [admin@master ~]$ sudo salt-key -L Accepted Keys: node2.51yuki.cn node3.51yuki.cn Denied Keys: Unaccepted Keys: node4.51yuki.cn node5.51yuki.cn Rejected Keys: [admin@master ~]$ sudo salt-key -A The following keys are going to be accepted: Unaccepted Keys: node4.51yuki.cn node5.51yuki.cn Proceed? [n/Y] y Key for minion node4.51yuki.cn accepted. Key for minion node5.51yuki.cn accepted. [admin@master ~]$ sudo salt-key -L Accepted Keys: node2.51yuki.cn node3.51yuki.cn node4.51yuki.cn node5.51yuki.cn Denied Keys: Unaccepted Keys: Rejected Keys: 5)配置nodegroups,根据角色划分组 编写/etc/salt/master配置文件 nodegroups: proxyserver: 'L@node2.51yuki.cn,node3.51yuki.cn' haserver: 'L@node2.51yuki.cn,node3.51yuki.cn' webserver: 'L@node4.51yuki.cn,node5.51yuki.cn' nodegroups: proxyserver: 'L@node2.51yuki.cn,node3.51yuki.cn' haserver: 'L@node2.51yuki.cn,node3.51yuki.cn' webserver: 'L@node4.51yuki.cn,node5.51yuki.cn' 6) 测试 [admin@master salt]$ sudo salt -N webserver test.ping node4.51yuki.cn: True node5.51yuki.cn: True [admin@master salt]$ sudo salt -N haserver test.ping node2.51yuki.cn: True node3.51yuki.cn: True [admin@master salt]$ sudo salt -N proxyserver test.ping node2.51yuki.cn: True node3.51yuki.cn: True 思路: 1) 尽可能把每个模块独立开,例如nginx,php,memcached,haproxy等,里面只包含安装 2) 业务模块,根据不同业务,拷贝编辑配置文件 3)把所有系统初始化的内容放到base环境下 salt的环境配置: 1)开发环境 2)测试环境 3)预生产环境 4)生产环境 ---------base 基础环境 ---------prod 生产环境 配置/etc/salt/master file_roots: base: - /srv/salt/base prod: - /srv/salt/prod pillar_roots: base: - /srv/pillar/base prod: - /srv/pillar/prod 然后创建相应目录 [admin@master ~]$ sudo mkdir /srv/salt/{base,prod} [admin@master ~]$ sudo mkdir -p /srv/pillar/{base,prod} 重启salt-master [admin@master ~]$ sudo systemctl restart salt-master