一、部署背景

由于业务系统的特殊性,我们需要针对不同的客户环境部署 MySQL主从复制集群,由于大都数用户都是专网环境,无法使用外网,为了更便捷,高效的部署,针对业务系统的特性,我这边编写了基于ansible自动化工具, 一键远程离线部署MySQL主从复制集群容器版集群,当然也会编写二进制版本,敬请期待吧!

说明:如果有兴趣,可以从工具下载中获取下载链接,此工具可帮助你快速了解一个自动化部署工具是如何编写的?


二、功能简介

1、支持版本 5.6.50、5.7.30、8.0.30
2、支持 1台主机 一键远程部署MySQL单实例。
3、支持 1台主机 一键远程部署MySQL主从复制 单机伪集群(一主两从)。
4、支持 2台主机 一键远程部署MySQL主从复制 分布式集群(一主一从)。
5、支持 3台主机 一键远程部署MySQL主从复制 分布式集群(一主两从)。
6、支持一键部署所有节点或单个MySQL实例依次 部署、启动、停止、重启、检查、移除等功能
7、 支持数据目录、日志目录、IP地址、版本号、端口、root密码等参数的灵活配置
8、 支持数据目录、日志目录、配置文件目录等持久化

说明:由于当前自动化部署工具最多支持三节点模式,所以准备最多3台服务器即可。


三、工具下载

基于ansible一键离线部署MySQL主从复制容器版分布式集群工具


四、工具说明

目录结构如下:
在这里插入图片描述

目录说明如下:
在这里插入图片描述

op.sh主控脚本参数如下:
在这里插入图片描述

其中代码行数:4879行,使用shell语言+jinja2语言。
在这里插入图片描述


五、部署要求

1、建议提前关闭好防火墙和selinux。
2、当前部署工具是基于docker和docker-compose, 所以需要提前安装好docker和docker-compose工具。


六、部署步骤

说明:根据主机数量,请选择一台主机作为主控端,其它主机作为受控端,如果服务器数量为1台,则即可为主控端,又可为受控端。主控端需提前安装好ansible工具。这里为了避免麻烦,特意写了一个离线的ansible部署脚本,可实现一键部署ansible。脚本已经集成到该工具中,开箱即用,非常方便!

在这里插入图片描述

由于文章篇幅有限,这里就只介绍,在3台主机上,如何使用ansible工具实现MySQL主从复制式分布式集群的一键容器化部署?


1、生成3台主机的hosts文件和config.yml文件
在这里插入图片描述


2、编辑hosts文件

注意:base_dir变量无需修改,这个变量是自动生成的,只需修改服务器ip地址、ssh端口、账号密码等信息即可。

在这里插入图片描述


3、编辑config.yml文件
在这里插入图片描述


4、执行部署操作

说明:如果不清楚部署操作命令,可使用其帮助命令,如下所示
在这里插入图片描述

一键部署服务

#方式一:一键部署所有节点
[root@localhost mysql_cluster]# ./op.sh setup node3 all

#方式二:单个节点依次部署
[root@localhost mysql_cluster]# ./op.sh setup node3 06 
[root@localhost mysql_cluster]# ./op.sh setup node3 07 
[root@localhost mysql_cluster]# ./op.sh setup node3 08 

一键部署结果,如下图所示:
在这里插入图片描述

查看MySQL主从复制集群状态信息,如下图所示:
在这里插入图片描述


总结:使用ansible自动化工具一键部署MySQL主从复制集群,效率确实非常高,全程部署2分钟就完全搞定了,对于一些需要多次部署的场景,自动化确实很重要,可以极大的提高整个部署效率,我觉得对于运维来说,一定要有高度的自动化意识,当然这只是单个服务模块的自动化部署,如果是把整个业务系统,编写成一键自动化部署工具的化,这可能是一个非常的工程,当然,后期有机会我也会进行分享整个业务系统的一键部署是如果设计及编写的。


总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》


版权声明:本文为m0_37814112原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_37814112/article/details/129334289