天天看點

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

  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