Saltstack_實戰指南01_系統規劃

 

1. 實戰項目GitHub地址

以前《Saltstack_使用指南》詳細講解了saltstack的使用。那麼從這節開始實戰講解,固然不會再像以前那樣詳細說明了。只是講一些系統規劃之類的信息。python

                                                                                                                                                                                

具體的項目代碼請參見GitHub。linux

該項目已經放在了GitHub上,地址以下:git

https://github.com/zhanglianghhh/salt-example-lnmp

 

2. 主機規劃

說明:github

上述的salt03-web、salt04-web、salt05-web、salt150-master沒有內網地址。但若是爲了方便省事兒,你也能夠給這些機器添加外網地址,這樣就不須要網關服務器,直接就能夠訪問公網了。web

 

2.1. 內網機器經過網關服務器訪問公網

實現salt03-web、salt04-web、salt05-web、salt150-master經過網關服務器GateWay00,達到訪問公網的目的。數據庫

前提保證上述全部機器內網都是同一網段,相互之間能夠正常通訊。vim

 

參見博文:《VMware 實現 iptables NAT及端口映射服務器

 

網關機器開啓linux的轉發功能架構

1 [root@gateway01 ~]# tail /etc/sysctl.conf   # 添加以下內容
2 …………
3 net.ipv4.ip_forward = 1
4 [root@gateway01 ~]# sysctl -p   # 生效

 

網關機器iptables操做app

 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    

 

相關文章
相關標籤/搜索