使用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 19:21
下一篇 2018-07-12 23:21

相關推薦

  • 初學linux你該死記它們

    最笨的方法往往是最好的方法

    Linux筆記 2018-04-08
  • 第二章Linux基礎學習筆記

    本章內容:
    1.用戶登錄
    2.終端
    3.shell介紹
    4.執行命令
    5.簡單命令
    6.Tap鍵補全
    7.命令行歷史
    8.bash快捷鍵
    9.使用gnome-terminal
    10.whatis
    11.command –help
    12.man and info
    13.本地幫助文檔/usr/share/doc/
    14.官網在線文檔
    15.其他網站和搜索

    Linux筆記 2018-03-31
  • Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示

    文件管理工具:cp,mv,rm cp:命令:copy:復制文件的數據 ? ?源文件;目標文件 ? ? ? 單源復制 cp [OPTION]… [-T] SOURCE DEST ? 如果DEST不存在,則事先創建此文件,并復制原文件的數據流至DEST中: ? 如果DEST存在: ? ? ? ?如果DEST是非目錄文件:則覆蓋目標文件 ? ? ? ?…

    Linux筆記 2018-05-20
  • linux系統命令行安裝軟件

    一、CentOS7 1)首先通過df或lsblk命令,查看系統中有無掛載本地光盤鏡像: 2)若沒有掛載,即當前系統中df看不到光盤設備/dev/sr0,使用mount命令進行光盤掛載: monut /dev/cdrom /mnt 3)然后切換到/mnt路徑下,到Packages目錄下,就可以看到當前系統光盤鏡像所自帶的所有rpm軟件包,然后同通過rpm -i…

    2018-03-30
  • Centos6.9上安裝httpd2.2.34步驟

    Centos6.9上安裝httpd2.2.34步驟 1.????? 首先安裝包組 yum groupinstall “development tools”如下圖所示: 2.????? 我們需要建立一個repo倉庫,可以指向網絡鏡像地址,也可以指向光盤,這里為了更加快速,所以指向光盤。并且清除緩存,獲取repolist列表。 在/etc/yum.repos.d…

    2018-04-22
欧美性久久久久