简单实验图:
![](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
- 第一章:saltstack的基本介绍
- 第二章:saltstack的安装部署
- 第一节:在centos7系统上安装saltstack工具
- 第二节:在windows server 2008上安装salt-minion
- 第三章: saltstack的配置管理
- 第一节:salt-master配置
- 第二节:salt-minion配置
- 第三节:了解YAML
- 第四节:salt-master配置文件详解
- 第五节:了解Jinja2
- 第六节:配置普通用户可以运行saltstack的模块
- 第四章:远程执行
- 第一节:远程执行基础介绍
- 第二节:目标定位
- 一、全局及正则表达式匹配
- 二、列表匹配
- 三、Grains
- 四: Pillar
- 五:subnet and ip
- 六:组合匹配
- 七: node group
- 第三节:常用模块
- 一、查看帮助
- 二、Network模块
- 三、Service模块
- 四:State模块
- 五、Cron模块
- 六、File模块
- 七、iptables模块
- 八、pkg包管理
- 第四节:Salt其他命令
- 一、salt-cp(拷贝文件)
- 二、salt-ssh
- 三、salt-key
- 第五节:saltstack返回程序
- 第一节:返回保持到数据库(mysql)
- 第五章:配置管理
- 第一节:简单入门
- 第二节:状态间关系
- 第六章:数据系统
- 第一节:grains
- 第二节:pillar
- 第七章:saltstack配置管理
- 第一节:系统初始化操作
- 第二节:功能模块
- 一、haproxy模块
- 二、keepalived模块
- 三、nginx模块
- 四: pcre模块
- 五: zlib模块
- 六:user模块
- 七:php模块
- 第三节:业务模块
- 第一节:haproxy代理
- 第二节:keepalived业务
- 第八章:自动化管理工具saltstack
- 第一节:文件管理
- 第二节:软件管理
- 第三节:服务管理
- 第四节:sysctl模块管理