设为首页 收藏本站
查看: 1609|回复: 0

[经验分享] ansible实现nginx双主模式反代,keepalived高可用,memcached缓存

[复制链接]

尚未签到

发表于 2017-11-8 09:55:07 | 显示全部楼层 |阅读模式
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
    b8ee57df44ba6098cbf12a4376b8ef3e.jpg-wh_500x0-wm_3-wmp_4-s_2677827236.jpg
   联网安装即可
   ②配置ansible的hosts inventory
   对配置文件/etc/ansible/hosts
    5b535a7a0bca616b5fba6e9a30c72380.jpg-wh_500x0-wm_3-wmp_4-s_1668585324.jpg
   nginxproxy是作为反代服务器高可用的两台主机的真实IP,后端的参数是作为变量存在的,后面会  讲到;
   rs是作为后端真实主机的IP声明,这样ansible才能针对不同的主机做出不同的配置操作;
   ③设置角色roles:
   角色roles需要在/etc/ansible/roles下创建对应的角色目录,如
    da4c3819dfa53bd45b940ccc68b5cf73.jpg-wh_500x0-wm_3-wmp_4-s_243630332.jpg
   创建的角色需要在每个目录下对应创建该角色的tasks(任务),handlers,templates等需要使用的  目录;
   如
    873a07e6ade0a0e7a1476f97b222bc5c.jpg-wh_500x0-wm_3-wmp_4-s_1317123798.jpg
   像tasks,handlers,vars这样的目录下都需要有一个主配置文件main.yml,用于设置任务,定义  配置文件被修改后的处理操作和定义变量;templates目录则是用于存放被template模块传送的文件,  需以j2结尾的文件;files目录则是用于存放copy模块复制的文件;
   ④nginx角色创建:
    79ec79adbc5e499366862714a02ecb29.jpg-wh_500x0-wm_3-wmp_4-s_2337066866.jpg
   第一项任务:传送nginx相关yum源;(再次并没有直接安装nginx,因为网络并没有连接,使用之    前安装denginx进行操作)
   第二项任务:传送配置好的nginx.conf文件,该文件存放于/etc/ansible/roles/nginx/templates    下;
   配置好的nginx.conf:
    0fa7436a1dcd5d74843767d4c6833d4c.jpg-wh_500x0-wm_3-wmp_4-s_1928288128.jpg
   第三项任务:配置nginx反代服务器的ip_forward核心参数;可以直接传送配置文件永久保存;
   ⑤keepalived角色创建:
    0d91ca4a5c38c19147b03d6cda8995f4.jpg-wh_500x0-wm_3-wmp_4-s_752837343.jpg
   第一项任务:安装keepalived,使用yum模块安装;
   第二项任务:传送事先配置好的keepalived配置文件;当配置文件被修改后,通过notify转到      handlers目录下的main.yml执行重启服务操作;对配置文件中设置变量参数如:
    e643c68598cc9788dadeed6ff5a718fc.jpg-wh_500x0-wm_3-wmp_4-s_4009670683.jpg
   变量的value在hosts inventory处获取,也可以直接在该角色的vars目录下创建main.yml中写入;

   handlers中的配置:
    c56bdf578fd7782ff3c9277db95f7aab.jpg-wh_500x0-wm_3-wmp_4-s_123649891.jpg
   第三项任务:启动keepalived服务;

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

    dfc212cffadb6f4b04fcc01372b037f4.jpg-wh_500x0-wm_3-wmp_4-s_2033735354.jpg
   ⑥后端真实服务器apache配置
    f1e6484d225c4d0eb443fb94cd061ae0.jpg-wh_500x0-wm_3-wmp_4-s_3282533899.jpg
   第一项任务:安装httpd;
   第二项任务:传送配置好的httpd配置文件;若配置文件改动过则通过notify调用handlers重启服    务;
   配置好的httpd.conf:
    b01a6de3c1878195db11a3c655e669b3.jpg-wh_500x0-wm_3-wmp_4-s_2241758266.jpg
   handlers中的配置:
    b11a5a8d0320666e52df928fd98925c4.jpg-wh_500x0-wm_3-wmp_4-s_1645602783.jpg

   第三项任务:对httpd服务进行控制,httpd_status变量默认是启动,可以在命令行中通过-e选项    设置变量;
   vars目录中的配置:
    db6f688fddd79b707e514b615659cca1.jpg-wh_500x0-wm_3-wmp_4-s_1699649863.jpg
   ⑦后端真实服务器mysql配置:
    ceca28cf826244037ddda4f7484e3a07.jpg-wh_500x0-wm_3-wmp_4-s_1689943989.jpg
   第一项任务:安装mariadb,对于centos7;使用when进行验证,判断主机版本号;
   第二项任务:安装mysqld,对于centos6;使用when进行验证,判断主机版本号;
   第三项任务与第四项任务都是启动相对应的mysql;

   vars配置文件设置:
    edd76b7febedd8e7cc5da103e841fd16.jpg-wh_500x0-wm_3-wmp_4-s_2251266450.jpg
   ⑧后端真实服务器php配置:
    2d2b53e715f0480b7fb769ce8471d605.jpg-wh_500x0-wm_3-wmp_4-s_654351594.jpg
   第一项任务:安装php-fpm;
   第二项任务:对php-fpm服务的操作;
   vars目录中的配置:
    9338757974ee4029b0d7b7236585aa1e.jpg-wh_500x0-wm_3-wmp_4-s_3687642067.jpg
   ⑨后端真实服务器memcached配置:
    d4acd8fa157667f6990d07f1a402a6f6.jpg-wh_500x0-wm_3-wmp_4-s_2439614268.jpg
   第一项任务:安装memcached;
   第二项任务:安装memcached关于php缓存所需要的软件php-prcl-memcache;
   第三项任务:传送安装memcached后需要进行php缓存的php配置文件;(针对于php-fpm)配置文件若    修改过则通过notify转到handlers;
    e07f9cf4f9ee419c9b8abad7a6e23e45.jpg-wh_500x0-wm_3-wmp_4-s_2160155878.jpg

   handlers:
    7e71f22d7fe47345008720d3ad30758d.jpg-wh_500x0-wm_3-wmp_4-s_1478731567.jpg

   vars:
    99134ee68672a8cbfbd0df2c915bb22e.jpg-wh_500x0-wm_3-wmp_4-s_1313141027.jpg

   ⑩将phpmyadmin软件包传送过去
    9fc29d5ce3a715310e3b4366955d24f2.jpg-wh_500x0-wm_3-wmp_4-s_2676977123.jpg
   放入files目录下;
   然后在真实服务器处进行解压;

   最后执行
   #ansible rs -m shell -a "route add default gw 192.168.72.5"
   让后端服务器的输出转到虚拟的DIP上;

   输出结果:
      ed4442ed52bb27f314fecc44adffb5a9.jpg-wh_500x0-wm_3-wmp_4-s_1709568563.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-406706-1-1.html 上篇帖子: ansible-playbook 下篇帖子: ansible介绍+基本操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表