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

   

nginx搭建双主和负载均衡 nginx双主模式_配置文件

   联网安装即可

   ②配置ansible的hosts inventory

   对配置文件/etc/ansible/hosts

   

nginx搭建双主和负载均衡 nginx双主模式_memcached_02

   nginxproxy是作为反代服务器高可用的两台主机的真实IP,后端的参数是作为变量存在的,后面会  讲到;

   rs是作为后端真实主机的IP声明,这样ansible才能针对不同的主机做出不同的配置操作;

   ③设置角色roles:

   角色roles需要在/etc/ansible/roles下创建对应的角色目录,如

   

nginx搭建双主和负载均衡 nginx双主模式_nginx搭建双主和负载均衡_03

   创建的角色需要在每个目录下对应创建该角色的tasks(任务),handlers,templates等需要使用的  目录;

   如

   

nginx搭建双主和负载均衡 nginx双主模式_nginx搭建双主和负载均衡_04

   像tasks,handlers,vars这样的目录下都需要有一个主配置文件main.yml,用于设置任务,定义  配置文件被修改后的处理操作和定义变量;templates目录则是用于存放被template模块传送的文件,  需以j2结尾的文件;files目录则是用于存放copy模块复制的文件;

   ④nginx角色创建:

   

nginx搭建双主和负载均衡 nginx双主模式_后端_05

   第一项任务:传送nginx相关yum源;(再次并没有直接安装nginx,因为网络并没有连接,使用之    前安装denginx进行操作)

   第二项任务:传送配置好的nginx.conf文件,该文件存放于/etc/ansible/roles/nginx/templates    下;

   配置好的nginx.conf:

   

nginx搭建双主和负载均衡 nginx双主模式_后端_06

   第三项任务:配置nginx反代服务器的ip_forward核心参数;可以直接传送配置文件永久保存;

   ⑤keepalived角色创建:

   

nginx搭建双主和负载均衡 nginx双主模式_数据库_07

   第一项任务:安装keepalived,使用yum模块安装;

   第二项任务:传送事先配置好的keepalived配置文件;当配置文件被修改后,通过notify转到      handlers目录下的main.yml执行重启服务操作;对配置文件中设置变量参数如:

   

nginx搭建双主和负载均衡 nginx双主模式_后端_08

   变量的value在hosts inventory处获取,也可以直接在该角色的vars目录下创建main.yml中写入;

   

nginx搭建双主和负载均衡 nginx双主模式_memcached_02

   handlers中的配置:

   

nginx搭建双主和负载均衡 nginx双主模式_数据库_10

   第三项任务:启动keepalived服务;


   nginx下实现keepalived高可用双主模式:

   

nginx搭建双主和负载均衡 nginx双主模式_后端_08

   

nginx搭建双主和负载均衡 nginx双主模式_数据库_12

   ⑥后端真实服务器apache配置

   

nginx搭建双主和负载均衡 nginx双主模式_配置文件_13

   第一项任务:安装httpd;

   第二项任务:传送配置好的httpd配置文件;若配置文件改动过则通过notify调用handlers重启服    务;

   配置好的httpd.conf:

   

nginx搭建双主和负载均衡 nginx双主模式_数据库_14

   handlers中的配置:

   

nginx搭建双主和负载均衡 nginx双主模式_后端_15

   

   第三项任务:对httpd服务进行控制,httpd_status变量默认是启动,可以在命令行中通过-e选项    设置变量;

   vars目录中的配置:

   

nginx搭建双主和负载均衡 nginx双主模式_memcached_16

   ⑦后端真实服务器mysql配置:

   

nginx搭建双主和负载均衡 nginx双主模式_后端_17

   第一项任务:安装mariadb,对于centos7;使用when进行验证,判断主机版本号;

   第二项任务:安装mysqld,对于centos6;使用when进行验证,判断主机版本号;

   第三项任务与第四项任务都是启动相对应的mysql;

   

   vars配置文件设置:

   

nginx搭建双主和负载均衡 nginx双主模式_nginx搭建双主和负载均衡_18

   ⑧后端真实服务器php配置:

   

nginx搭建双主和负载均衡 nginx双主模式_memcached_19

   第一项任务:安装php-fpm;

   第二项任务:对php-fpm服务的操作;

   vars目录中的配置:

   

nginx搭建双主和负载均衡 nginx双主模式_后端_20

   ⑨后端真实服务器memcached配置:

   

nginx搭建双主和负载均衡 nginx双主模式_数据库_21

   第一项任务:安装memcached;

   第二项任务:安装memcached关于php缓存所需要的软件php-prcl-memcache;

   第三项任务:传送安装memcached后需要进行php缓存的php配置文件;(针对于php-fpm)配置文件若    修改过则通过notify转到handlers;

   

nginx搭建双主和负载均衡 nginx双主模式_nginx搭建双主和负载均衡_22

   

   handlers:

   

nginx搭建双主和负载均衡 nginx双主模式_数据库_23

  

   vars:

   

nginx搭建双主和负载均衡 nginx双主模式_memcached_24

   

   ⑩将phpmyadmin软件包传送过去

   

nginx搭建双主和负载均衡 nginx双主模式_后端_25

   放入files目录下;

   然后在真实服务器处进行解压;

   

   最后执行

   #ansible rs -m shell -a "route add default gw 192.168.72.5"

   让后端服务器的输出转到虚拟的DIP上;

   

   输出结果:

     

nginx搭建双主和负载均衡 nginx双主模式_nginx搭建双主和负载均衡_26

   


转载于:https://blog.51cto.com/12480612/1979790