Saltstack_实战指南01_系统规划
?
1. 實戰項目GitHub地址
之前《Saltstack_使用指南》詳細講解了saltstack的使用。那么從這節開始實戰講解,當然不會再像之前那樣詳細說明了。只是講一些系統規劃之類的信息。
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
具體的項目代碼請參見GitHub。
該項目已經放在了GitHub上,地址如下:
https://github.com/zhanglianghhh/salt-example-lnmp?
2. 主機規劃
說明:
上述的salt03-web、salt04-web、salt05-web、salt150-master沒有內網地址。但如果為了方便省事兒,你也可以給這些機器添加外網地址,這樣就不需要網關服務器,直接就可以訪問公網了。
?
2.1. 內網機器通過網關服務器訪問公網
實現salt03-web、salt04-web、salt05-web、salt150-master通過網關服務器GateWay00,達到訪問公網的目的。
前提保證上述所有機器內網都是同一網段,相互之間可以正常通信。
?
參見博文:《VMware 實現 iptables NAT及端口映射》
?
網關機器開啟linux的轉發功能
1 [root@gateway01 ~]# tail /etc/sysctl.conf # 添加如下內容 2 ………… 3 net.ipv4.ip_forward = 1 4 [root@gateway01 ~]# sysctl -p # 生效?
網關機器iptables操作
1 # 將FORWARD鏈的策略設置為DROP,這樣做的目的是做到對內網ip的控制,你允許哪一個訪問internet就可以增加一個規則,不在規則中的ip將無法訪問internet。 2 iptables -P FORWARD DROP 3 # 這條規則規定允許任何地址到任何地址的確認包和關聯包通過。一定要加這一條,否則你只允許lan IP訪問沒有用。 4 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT 5 # 這條規則做了一個SNAT,也就是源地址轉換,將來自172.16.1.0/24的地址轉換為10.0.0.15。 6 iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to 10.0.0.15 7 # 允許該網段訪問 8 iptables -A FORWARD -s 172.16.1.0/24 -j ACCEPT 9 # 保存iptables規則 10 iptables-save > /etc/sysconfig/iptables?
最終iptables信息
1 [root@GateWay00 ~]# iptables -nL 2 Chain INPUT (policy ACCEPT) 3 target prot opt source destination 4 5 Chain FORWARD (policy DROP) 6 target prot opt source destination 7 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 8 ACCEPT all -- 172.16.1.0/24 0.0.0.0/0 9 10 Chain OUTPUT (policy ACCEPT) 11 target prot opt source destination 12 [root@GateWay00 ~]# 13 [root@GateWay00 ~]# iptables -t nat -nL 14 Chain PREROUTING (policy ACCEPT) 15 target prot opt source destination 16 17 Chain INPUT (policy ACCEPT) 18 target prot opt source destination 19 20 Chain OUTPUT (policy ACCEPT) 21 target prot opt source destination 22 23 Chain POSTROUTING (policy ACCEPT) 24 target prot opt source destination 25 SNAT all -- 172.16.1.0/24 0.0.0.0/0 to:10.0.0.15?
3. 系統架構
?
3.1. 重要說明
生產實踐環境中:數據庫監控單獨一套,做到告警去重。
原因:其他告警可能是因為數據庫有問題造成的。
?
多數情況數據庫是單獨部署,可以不用 salt 進行部署 【如果量大,那么可以在第一次進行初始化部署】
本次實戰為了完整性,對數據庫采取了 salt 方式部署。
?
3.2. 涉及機器hosts文件修改
salt150-master、salt01-haproxy、salt02-haproxy、salt03-web、salt04-web、salt05-web 機器的hosts文件都追加如下信息。
這樣主機名相互之間可以解析。
1 [root@salt100 ~]# cat /etc/hosts 2 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 3 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 4 5 172.16.1.111 salt01-haproxy 6 172.16.1.112 salt02-haproxy 7 172.16.1.113 salt03-web 8 172.16.1.114 salt04-web 9 172.16.1.115 salt05-web 10 172.16.1.150 salt150-master說明:生產優先采用hostname通信,這樣后期維護、遷移方便。
?
4. 所有主機創建yun用戶
后期所有的軟件都安裝在 /app/ 目錄下。
1 # 使用一個專門的用戶,避免直接使用root用戶 2 # 添加用戶、指定家目錄、用戶id并指定用戶密碼 3 # sudo提權 4 # 讓其它普通用戶可以進入該目錄查看信息 5 useradd -u 1050 -d /app yun && echo '123456' | /usr/bin/passwd --stdin yun 6 echo "yun ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers 7 chmod 755 /app/?
5. 在本地Windows 機器的hosts 文件追加信息
作用:模擬通過 DNS 解析訪問網站。
1 # 文件路徑:C:\Windows\System32\drivers\etc\hosts 2 # 追加信息如下 3 # SaltStack 實戰 其中salt00-keepalived為VIP 4 10.0.0.110 salt00-keepalived 5 172.16.1.111 salt01-haproxy 6 172.16.1.112 salt02-haproxy 7 172.16.1.113 salt03-web 8 172.16.1.114 salt04-web 9 172.16.1.115 salt05-web 10 172.16.1.150 salt150-master?
6. salt 部署注意事項
具體部署步驟請參見:《Saltstack_使用指南01_部署》
?
6.1. master 端配置文件修改并重啟
1 [root@salt150-master ~]# vim /etc/salt/master 2 ……………… 3 # Allow minions to push files to the master. This is disabled by default, for 4 # security purposes. 5 #file_recv: False 6 # 允許minion向master推送文件,默認不允許 7 file_recv: True 8 ……………… 9 #file_roots: 10 # base: 11 # - /srv/salt 12 # 添加如下配置 13 file_roots: 14 base: 15 - /srv/salt/base 16 prod: 17 - /srv/salt/prod 18 busi: 19 - /srv/salt/busi 20 [root@salt150-master ~]# systemctl restart salt-master.service # 重啟 master 服務?
6.2. minion端配置文件修改并重啟
所有機器都操作
1 [root@salt150-master salt]# pwd 2 /etc/salt 3 [root@salt150-master salt]# vim /etc/salt/minion 4 ……………… 5 # 可以是IP或者hostname 6 # 如果是hostname那么必須能夠解析【最佳實踐配置為 主機名】 7 master: salt150-master 8 ……………… 9 # Explicitly declare the id for this minion to use, if left commented the id 10 # will be the hostname as returned by the python call: socket.getfqdn() 11 # Since salt uses detached ids it is possible to run multiple minions on the 12 # same machine but with different ids, this can be useful for salt compute 13 # clusters. 14 # 如果id不配置,那么默認為hostname 15 # 如果下次要更改該配置,那么要把 /etc/salt/minion_id 也給刪除掉,并重啟客戶端【會生成一個新的minion_id】 16 #id: 17 [root@salt150-master ~]# systemctl restart salt-minion.service # 重啟服務?
6.3. salt 安裝完畢后記得加入開機自啟動
1 # 服務端開機自啟動 2 systemctl enable salt-master.service 3 # minion端開機自啟動 4 systemctl enable salt-minion.service?
?
轉載于:https://www.cnblogs.com/zhanglianghhh/p/10952176.html
總結
以上是生活随笔為你收集整理的Saltstack_实战指南01_系统规划的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql从zip包安装小记
- 下一篇: LeetCode Pancake Sor