使用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.178linux.com/102732

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

相关推荐

  • 正则表达式

    正则表达式REGEXP 有一类特殊符号表是控制伙同裴的功能程序支持:grep,seb,。。。基本正则表达式:BRE扩展正则表达式;ere采用不同算法经检查处理正则表达式的软件模块PCRE元字符:字符匹配,匹配次数,位置锚定,分组 man7详细文档 字符匹配.表示任意的单一字符 放在[]里表示.本身不需要转义\.转义(回归字符本身的含义)表示.本身[]表示字符…

    Linux笔记 2018-04-08
  • sed

    用法: sed  [选项]… ‘script’ inputfile 其中script是脚本基于sed语法的脚本                 inputfile文件内容 常用选项 -n   :不输出模式空间内容到屏幕,即不自动打印 -e   :多点编辑 -f    :   /PATH/SCRIPT_FILE:从指定文件中…

    Linux笔记 2018-04-14
  • SELinux简介

    SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。

    2018-05-15
  • Linux故障修复

    软件包故障一、库文件丢失破坏:rm –rf /lib64/libacl.so.1故障状态:依赖这个库的命令不可用;系统不可启动 修复:如果丢失的是软链接文件;方法:1、进入救援模式2、创建软件链接cd /mnt/sysimageln –s libc.2-17.so.6 libc.so.6如果删除的是文件,只能从其它主机拷贝一份到本机二、rpm故障1、rpm文…

    2018-05-17
  • 日志管理

    日志介绍 日志配置 日志管理 远程日志 基于MYSQL的日志

    Linux笔记 2018-06-25
  • 网络和进程管理命令及bash循环

    netstat,dstat,route,nmcli,bash,until循环,while循环

    2018-04-10