當前位置:
首頁 > 最新 > Ansible自動部署nginx+keepalived高可用負載均衡

Ansible自動部署nginx+keepalived高可用負載均衡

本公眾號內容大多由平時操作整理記錄,如果有錯誤的地方歡迎留言指正

本篇文章記錄通過Ansible自動化部署nginx的負載均衡高可用,前端代理使用nginx+keepalived,後端web server使用3台nginx用於負載效果的體現,結構圖如下:


主機規劃

Ansible : 192.168.214.144

Keepalived-node-1 : 192.168.214.148

Keepalived-node-2 : 192.168.214.143

web1 : 192.168.214.133

web2 : 192.168.214.135

web3 : 192.168.214.139


iplist.txt

執行腳本

[root@Ansible script]# ./autokey.sh

測試驗證

配置Ansible基於主機名認證,方便單獨管理遠程主機

先看一下web的目錄結構

編寫user.yml

編寫install_nginx.yml

創建nginx配置文件的template模板

由於是測試,後端web服務的nginx.conf配置文件基本保持默認,只只更具後端主機情況設置worker進程數,使用ansible的setup模塊中的變數獲取遠程主機的cpu的數量值

編寫temps.yml

編寫start.yml

編寫main.yml

編寫執行主文件web_install.yml,執行文件不能與web角色放在同一目錄,通常放在roles目錄

安裝前測試: -C選項為測試

如沒有問題則執行安裝

測試訪問


部署高可用集群需要注意各節點包括後端主機的時間問題,保證各主機時間一致。


編寫user.yml

編寫install_server.yml

編寫temps.yml

配置nginx proxy配置文件模板

配置keepalived配置文件模板

同樣,在master_keepalived.conf.j2基礎修改另存為backup_keepalived.conf.j2,只修改角色與優先順序即可。注意:master_keepalived.conf.j2文件中的檢測故障降低優先順序的值要確保降低後MASTER優先順序小於BACKUP的優先順序

編寫start.yml

編寫main.yml

編寫執行主文件

執行檢測roles

執行測試沒問題即可執行自動部署

執行過程如下:

至此,自動部署nginx+keepalived高可用負載均衡完成了

最後看一下roles目錄的結構

下面測試服務:keepalived的服務沒有在ansible中設置自動啟動,到keepalived節點啟動即可。

測試node節點

將node-1 的MASTER服務停掉測試故障轉移,同時查看node-2狀態變化

執行: nginx -s stop

查看vrrp通知,可以看到主備切換正常:

再測試訪問:

node-1恢復主節點,搶回MASTER角色

node-1節點執行nginx指令,可以看到VIP漂移回到node-1節點,測試訪問


上面的自動部署方式還有可以改進的地方,比如,可以將配置keepalived的配置文件中的許多參數在roles中以統一變數的方式定義,然後在template模板文件中引用參數就可以了

此外還有一個需要注意的地方是:keepalived的配置文件中使用了killall指令檢測本地的nginx服務狀態,如果檢測結果狀態為非0就會執行vrrp_script中定義的降級操作,要確保系統這個指令可以執行,有時該指令沒有被安裝,如果該指令沒有存在,即使MASTER節點發生故障也不會發生變化

GIF


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux日記 的精彩文章:

nginx記錄客戶端真實ip問題與日誌時間格式修改

TAG:Linux日記 |