使用ansible完成keepalived高可用Nginx的配置;

編寫ansible role,完成keepalived高可用Nginx的配置;

前言:

ansible作為一款靈活、高效、功能豐富的自動化部署工具在企業運維管理中備受推崇。本文演示使用ansible部署小型web框架,實現高可用、負載均衡的目標。

目標環境拓撲:1

環境介紹:

前端代理層由兩臺nginx實現,并安裝keepalived實現地址滑動達成高可用。

web層由兩套Apache+PHP+WordPress 構建應用環境。數據層由一臺mariadb組成,篇幅限制這里并沒有做數據庫主從復制、讀寫分離(實際環境數據庫一定要實現這兩項功能)。

IP一覽:

192.168.158.7? ? ? ? ? ? ? ? ? ? ? ? ? ?ansible?管理客戶端

192.168.158.17? ? ? ? ? ? ? ? ? ? ? ? ? VS1?nginx+keepalived

192.168.158.27? ? ? ? ? ? ? ? ? ? ? ? ? VS2 nginx+keepalived

192.168.158.37? ? ? ? ? ? ? ? ? ? ? ? ? RS2?apache+php-fpm+wordpress

192.168.158.47? ? ? ? ? ? ? ? ? ? ? ? ? RS2?apache+php-fpm+wordpress

192.168.158.47? ? ? ? ? ? ? ? ? ? ? ? ? mariadb-server

一、環境準備

1.管理端安裝ansible,配置ssh秘鑰使主機間實現基于秘鑰的認證

ssh-keygen

ssh-copy-id 192.168.158.7

scp -r .ssh 192.168.158.17:/root/

scp -r .ssh 192.168.158.27:/root/

scp -r .ssh 192.168.158.37:/root/

scp -r .ssh 192.168.158.47:/root/

scp -r .ssh 192.168.158.57:/root/

2.編輯ansible的hosts文件,定義所有的主機

vim /etc/ansible/hosts

2

3.為所有主機同步時間

ansible all -a ‘ntpdate 172.20.0.1’

3

4.創建ansible相關角色的目錄

mkdir -pv /etc/ansible/roles/{mysql,web,nginx}/{files,tasks,templates,vars,handlers,meta}

二、配置web的playbook:

1.創建tasks文件

10

2.創建handlers

5

3.添加要復制過去的配置文件

放在/etc/ansible/roles/web/files/下 ① WordPress目錄 ② httpd.conf ③fastcgi.conf④www.conf#從別的地方考過來

tar xvf wordpress-4.9.4-zh_CN.tar.gz -C /etc/ansible/roles/web/files/

cp /etc/httpd/conf/http.conf??/etc/ansible/roles/web/files/

4.修改WordPress連接數據庫的配置文件

7

6

5.添加web主劇本

8

6.測試,沒問題的話就下一步

ansible-playbook -C /etc/ansible/web.yml

9

三、配置代理層

1.添加task任務

11

2.添加handlers

12

3.準備template文件 ①keepalived.conf.j2 ②nginx.conf.j2

4.修改keepalived模板文件

13

12

5.修改nginx模板文件

4

3

6.添加nginx主劇本

15

7.測試,沒問題的話就下一步

ansible-playbook -C /etc/ansible/nginx.yml

18

四、配置mariadb

1.配置mariadb的任務清單

16

2.設置files文件

vim roles/mysql/files/mysql.sql
CREATE DATABASE wpdb;
GRANT ALL ON wpdb.* TO ‘wpuser’@’192.168.158.%’ IDENTIFIED BY ‘centos’;

3.添加mysql主劇本

17

4.測試,沒問題的話就下一步

ansible-playbook -C /etc/ansible/mysql.yml

五、執行ansible

cd??/etc/ansible

ansible-playbook web.yml
ansible-playbook nginx.yml
ansible-playbook mysql.yml

訪問頁面http://192.168.158.88/wordpress

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/102732

(2)
ponypony
上一篇 2018-07-12
下一篇 2018-07-12

相關推薦

  • 第十周作業

    1、Centos7系統下實現httpd-2.2的安裝,并分別實現prefork、worker、event等幾種工作方式
    2、簡述request報文請求方法和狀態響應碼
    3、詳細描述httpd虛擬主機、站點訪問控制、基于用戶的訪問控制、持久鏈接等應用配置實例

    Linux筆記 2018-07-14
  • 第一周博客(4)

    基礎命令

    Linux筆記 2018-05-12
  • Linux 用戶及權限管理(未完)

    1、查看(登錄)用戶名稱及所啟動的進程 A、使用w命令查看登錄用戶正在使用的進程信息 w命令用于顯示已經登錄系統的用戶的名稱,以及他們正在做的事。該命令所使用的信息來源于/var/run/utmp文件。w命令輸出的信息包括: 用戶名稱 用戶的機器名稱或tty號 遠程主機地址 用戶登錄系統的時間 空閑時間(作用不大) 附加到tty(終端)的進程所用的時間(JC…

    Linux筆記 2018-05-28
  • Centos6.9 的安裝過程

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Centos6.9虛擬機創建過程 (本次安裝過程以VMware14版本為主) 一、??????????? 首先需要先獲取centos6.9的安裝包,如果計算機上還未有centos6.9的安裝包,你可以到以下網址進…

    Linux筆記 2018-03-31
  • 基礎命令(二)

    date -s “2018-4-3”

    2018-04-03
  • 加密和安全

    安全機制 信息安全防護的目標保密性 Confidentiality完整性 lntegrity可用性 Usability可控制性Controlability不可否認性 Non-repudiation安全防護環節物理安全:各種設備/主機、機房環境系統安全:主機或設備的操作系統應用安全:各種網絡服務、應用程序網絡安全:對網絡訪問的控制、防火墻規則數據安全:信息的備…

    2018-06-02
欧美性久久久久