簡單實驗圖:

實現說明:
主機名 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模塊管理