ansible自动化运维学习(4)——使用ansible roles实现(apache+haproxy+keepalived)负载均衡+高可用

本文详细介绍了如何利用Ansible Roles搭建apache、haproxy和keepalived的负载均衡和高可用环境。从Ansible Roles的基本概念、目录结构到galaxy命令工具的使用,再到具体创建和配置apache、haproxy和keepalived三个Roles的步骤,逐一展开讲解,包括编写任务文件、触发器、模板和变量文件等内容,最终实现服务器集群的高可用性。
摘要由CSDN通过智能技术生成

1.ansible roles简介

Ansible roles是为了层次化、结构化地组织Playbook
roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们
roles一般用于基于主机构建服务的场景中,在企业复杂业务场景中应用的频率很高
以特定的层级目录结构进行组织的tasks、variables、handlers、templates、files等
相当于函数的调用把各个功能切割成片段来执行

2.roles目录结构

role_name定义的role名字
files存放copy或script等模块调用的函数
tasks定义各种task,要有main.yml,其他文件include包含调用
handlers定义各种handlers,要有main.yml,其他文件include包含调用
vars定义variables,要有main.yml,其他文件include包含调用
templates存储由template模块调用的模板文本
meta定义当前角色的特殊设定及其依赖关系,要有main.yml的文件
defaults要有main.yml的文件,用于设定默认变量

3.ansible-galaxy命令工具

Ansible Galaxy 是一个免费共享和下载 Ansible 角色的网站,可以帮助我们更好的定义和学习roles
ansible-galaxy命令默认与https://galaxy.ansible.com网站API通信,可以查找、下载各种社区开发的 Ansible 角色
ansible-galaxy在 Ansible 1.4.2 就已经被包含了
在ansible galaxy网站查询roles
在这里插入图片描述
安装的roles默认是存放在家目录中:/root/.ansible/roles
对于的roles的快速部署,很有帮助
出于安全原因,下载的代码需要仔细研读每一行代码
在这里插入图片描述
注意:接下来创建的所有角色都是基于上一篇文章的
之前所有的都写在playbook当中,现在实现角色分离,这样更有利于自动化运维
在这里插入图片描述

4.创建第一个roles(apache)

目的:server1给server2和server3安装httpd服务

(1)role存放的路径在配置文件/etc/ansible/ansible.cfg中定义:roles_path = /etc/ansible/roles

这里我们使用的是普通用户devops来做ansible,因此应该是roles_path = /home/devops/ansible/roles
先在ansible目录下创建roles目录
然后编辑ansible.cfg配置文件,在配置文件中声明

在这里插入图片描述
在这里插入图片描述
(2)列出已安装的角色,注意路径问题

此时还没有创建角色,因此是空的
在这里插入图片描述
(3)进入角色目录,创建apache角色,再次查看角色就有了
在这里插入图片描述
在这里插入图片描述
(4)进入apache角色目录,发现有任务目录、触发器目录、模板目录、变量目录等等

删除测试目录和说明文档,这两个暂时没有用

在这里插入图片描述
(5)编写任务的yml文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改一下路径
在这里插入图片描述
在这里插入图片描述
(6)编写触发器的yml文件
在这里插入图片描述
在这里插入图片描述
(7)编写模板文件,拷贝一个过来即可,不需要修改
在这里插入图片描述
(8)编写变量的yml文件
在这里插入图片描述
在这里插入图片描述
(9)查看主机文件,确保主机信息正确
在这里插入图片描述
在这里插入图片描述
(10)编写最终要执行的文件
在这里插入图片描述
在这里插入图片描述
(11)开始执行,没有报错,说明角色分离成功
在这里插入图片描述
在这里插入图片描述
这就实现了apache的角色分离
其实昨天把所有的都做出来了,也验证了效果,今天就是实现一下角色分离
也就是把昨天的playbook.yml文件拆分

5.创建第二个roles(haproxy)

目的:在server1上安装haproxy服务,实现server2和server3的负载均衡

(1)创建haproxy角色,以及删除没有用的文件和目录
在这里插入图片描述
(2)编写任务文件
在这里插入图片描述
在这里插入图片描述
(3)编写触发器文件
在这里插入图片描述
在这里插入图片描述
(4)编写模板文件,其实也就是把昨天的拷贝一份
在这里插入图片描述
(5)不需要编写变量文件
在这里插入图片描述
(6)编写最终要执行的apache文件,因为haproxy和httpd是结合在一起的,要实现负载均衡
在这里插入图片描述
在这里插入图片描述
(7)编写主机文件
在这里插入图片描述
在这里插入图片描述
(8)执行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
没有报错,说明成功实现了访问server1负载均衡server2和server3

5.创建第三个roles(keepalived)

目的:在server2和server3上安装httpd,在server1和server4上安装haproxy,在server1上安装keepalived,实现高可用
也就是server1和server4两个调度器之间的高可用

(1)创建角色,删除文件
在这里插入图片描述
(2)编写任务文件
在这里插入图片描述
在这里插入图片描述
(3)编写触发器文件
在这里插入图片描述
在这里插入图片描述
(4)编写模板文件
在这里插入图片描述
在这里插入图片描述
注意变量的书写
在这里插入图片描述
(5)编写主机文件
在这里插入图片描述
在这里插入图片描述
(6)编写最终要执行的文件
在这里插入图片描述
在这里插入图片描述
(7)执行
在这里插入图片描述
在这里插入图片描述
(8)测试:看是否实现了高可用

可以看到server1上具有VIP

在这里插入图片描述
在这里插入图片描述
在浏览器里面访问VIP,实现了负载均衡,此时是server1上的haproxy做负载均衡
在这里插入图片描述
在这里插入图片描述
在server1上停止keepalived服务,发现VIP自动漂移到了server4上面
在这里插入图片描述
在这里插入图片描述
此时浏览仍然可以正常访问,因为server4在做haproxy负载均衡
在这里插入图片描述
在这里插入图片描述
重新开启keepalived服务,发现VIP又漂回server1上,因为server1的优先级别高
在这里插入图片描述
浏览器仍然可以正常访问
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值