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:
第三項任務:對httpd服務進行控制,httpd_status變量預設是啟動,可以在指令行中通過-e選項 設定變量;
vars目錄中的配置:
⑦後端真實伺服器mysql配置:
第一項任務:安裝mariadb,對于centos7;使用when進行驗證,判斷主機版本号;
第二項任務:安裝mysqld,對于centos6;使用when進行驗證,判斷主機版本号;
第三項任務與第四項任務都是啟動相對應的mysql;
vars配置檔案設定:
⑧後端真實伺服器php配置:
第一項任務:安裝php-fpm;
第二項任務:對php-fpm服務的操作;
⑨後端真實伺服器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上;
輸出結果:
本文轉自 wujunqi1996 51CTO部落格,原文連結:http://blog.51cto.com/12480612/1979790