1. 程式人生 > >ansible實現nginx雙主模式反代,keepalived高可用,memcached緩存

ansible實現nginx雙主模式反代,keepalived高可用,memcached緩存

ansible實現nginx前端反代 keepalived高可用與對後端rs的配置

ansible自動化運維工具配置ngnix前端反代到後端真實機,並設置keepalived高可用,在後端一臺真實主機上配置httpd,mysql,php-fpm;設置memcached緩存服務器在這臺真實主機上;(因為本人電腦配置問題,無法開啟那麽多虛擬機,所以就簡單構建了一下)

IP配置:

Directory1(MASTER):

eno16777736:172.16.72.5

eno16777736:0:172.16.72.1(虛擬VIP)

eno33554976:192.168.72.1

eno33554976:0:192.168.72.5(虛擬DIP)

Directory2(BACKUP):

eno16777736:172.16.72.4

eno33554976:192.168.72.2

RS1:

eno16777736:192.168.72.3

①安裝ansible

技術分享

聯網安裝即可

②配置ansible的hosts inventory

對配置文件/etc/ansible/hosts

技術分享

nginxproxy是作為反代服務器高可用的兩臺主機的真實IP,後端的參數是作為變量存在的,後面會 講到;

rs是作為後端真實主機的IP聲明,這樣ansible才能針對不同的主機做出不同的配置操作;

③設置角色roles:

角色roles需要在/etc/ansible/roles下創建對應的角色目錄,如

技術分享

創建的角色需要在每個目錄下對應創建該角色的tasks(任務),handlers,templates等需要使用的 目錄;

技術分享

像tasks,handlers,vars這樣的目錄下都需要有一個主配置文件main.yml,用於設置任務,定義 配置文件被修改後的處理操作和定義變量;templates目錄則是用於存放被template模塊傳送的文件, 需以j2結尾的文件;files目錄則是用於存放copy模塊復制的文件;

④nginx角色創建:

技術分享

第一項任務:傳送nginx相關yum源;(再次並沒有直接安裝nginx,因為網絡並沒有連接,使用之 前安裝denginx進行操作)

第二項任務:傳送配置好的nginx.conf文件,該文件存放於/etc/ansible/roles/nginx/templates 下;

配置好的nginx.conf:

技術分享

第三項任務:配置nginx反代服務器的ip_forward核心參數;可以直接傳送配置文件永久保存;

⑤keepalived角色創建:

技術分享

第一項任務:安裝keepalived,使用yum模塊安裝;

第二項任務:傳送事先配置好的keepalived配置文件;當配置文件被修改後,通過notify轉到 handlers目錄下的main.yml執行重啟服務操作;對配置文件中設置變量參數如:

技術分享

變量的value在hosts inventory處獲取,也可以直接在該角色的vars目錄下創建main.yml中寫入;

技術分享

handlers中的配置:

技術分享

第三項任務:啟動keepalived服務;


nginx下實現keepalived高可用雙主模式:

技術分享

技術分享

⑥後端真實服務器apache配置

技術分享

第一項任務:安裝httpd;

第二項任務:傳送配置好的httpd配置文件;若配置文件改動過則通過notify調用handlers重啟服 務;

配置好的httpd.conf:

技術分享

handlers中的配置:

技術分享

第三項任務:對httpd服務進行控制,httpd_status變量默認是啟動,可以在命令行中通過-e選項 設置變量;

vars目錄中的配置:

技術分享

⑦後端真實服務器mysql配置:

技術分享

第一項任務:安裝mariadb,對於centos7;使用when進行驗證,判斷主機版本號;

第二項任務:安裝mysqld,對於centos6;使用when進行驗證,判斷主機版本號;

第三項任務與第四項任務都是啟動相對應的mysql;

vars配置文件設置:

技術分享

⑧後端真實服務器php配置:

技術分享

第一項任務:安裝php-fpm;

第二項任務:對php-fpm服務的操作;

vars目錄中的配置:

技術分享

⑨後端真實服務器memcached配置:

技術分享

第一項任務:安裝memcached;

第二項任務:安裝memcached關於php緩存所需要的軟件php-prcl-memcache;

第三項任務:傳送安裝memcached後需要進行php緩存的php配置文件;(針對於php-fpm)配置文件若 修改過則通過notify轉到handlers;

技術分享

handlers:

技術分享

vars:

技術分享

⑩將phpmyadmin軟件包傳送過去

技術分享

放入files目錄下;

然後在真實服務器處進行解壓;

最後執行

#ansible rs -m shell -a "route add default gw 192.168.72.5"

讓後端服務器的輸出轉到虛擬的DIP上;

輸出結果:

技術分享


ansible實現nginx雙主模式反代,keepalived高可用,memcached緩存