
技术分享 | ansible一键安装GreatSQL并构建MGR集群
内容提纲
• 1. 安装ansbile
• 2. 配置ansible
• 3. 建立ssh信任
• 4. 测试ansible
• 5. 使用ansible自动安装GreatSQL
▪ 5.1 修改 /etc/hosts 设置正确的主机名
▪ 5.2 下载GreatSQL-ansible安装包并解压缩
▪ 5.3 利用ansible安装GreatSQL
▪ 5.4 检查运行过程输出
▪ 5.5 检查安装结果
利用ansible一键安装GreatSQL并完成MGR部署。
本次介绍如何利用ansible一键安装GreatSQL并完成MGR部署。
本文介绍的运行环境是CentOS 7.9:
1. 安装ansbile
直接用yum安装ansible即可:
查看版本号,确认安装成功:
这就OK了。
2. 配置ansible
修改 /etc/ansible/hosts 文件,把要安装GreatSQL的服务器IP加进去,例如:
如果是在本机安装,直接填写本机的内网IP地址或回环地址(127.0.0.1)均可。
上面这个主机列表,分为两个组,一个是选择作为MGR PRIMARY节点的组 greatsql_mgr_primary,只有一个主机。
另一组选择作为SECONDARY节点 greatsql_mgr_secondary,有两个主机。
两个组也可以合并一起,成为一个新的组 greatsql_dbs。
3. 建立ssh信任
为了简单起见,直接建立ssh信任,方便ansible一键安装。
首先生成ssh key:
使用缺省值,提示输入passphrase时,敲回车使用空的passphrase。
将ssh key复制到目标服务器上:
按提示输入口令,完成后测试使用ssh登录不再提示输入口令。如果是在本机安装,那么ssh-copy-id也要对本机执行一遍。
或者手动将ssh key复制到远程主机上,写到 ~/.ssh/authorized_keys 文件中(注意不要折行、断行)。
4. 测试ansible
随意执行一个指令,测试ansibile可连接远程主机:
这就表示可以正常运行了。
5. 使用ansible自动安装GreatSQL
5.1 修改 /etc/hosts 设置正确的主机名
修改几个服务器上的 /etc/hosts 文件,加入正确的主机名配置:
5.2 下载GreatSQL-ansible安装包并解压缩
打开GreatSQL-Ansible项目主页:https://gitee.com/GreatSQL/GreatSQL-Ansible
找到页面右侧“发行版”,进入,选择 " GreatSQL-8.0.23-14-Linux.x86_64-ansible-v0.1-alpha.tar.xz" 这个二进制包下载到服务器上:
特别提醒:上述安装包是我的内部测试版本,不是正式发布的版本。
解压缩后,能看到除了 GreatSQL-8.0.23-14-Linux.x86_64.tar.xz 安装包之外,还有GreatSQL-ansible一键安装相关文件:
几个文件作用分别介绍下:
• GreatSQL-8.0.23-14-Linux.x86_64.tar.xz,GreatSQL二进制安装包。
• greatsql.yml,ansible一键安装脚本。
• check_mysql.yml,MySQL进程、端口预检查脚本。
• vars.yml,定义一些变量的脚本,里面的变量名有些需要修改以适应各自不同的安装环境。
5.3 利用ansible安装GreatSQL
开始执行前,需要确认 vars.yml 文件中下面这些相关参数是否要调整:
下面是关于这些参数的解释:
执行下面的命令一键完成GreatSQL的安装、初始化,加入systemd服务、以及MGR初始化等所有工作:
5.4 检查运行过程输出
安装时会先行检查是否已有mysqld进程在运行,或者3306端口上是否已有其他服务。
如果是的话,则输出内容可能会是这样的:
看到有 skipping 以及 skipped=N 字样。而如果是正常安装,则会输出类似下面的内容:
5.5 检查安装结果
有 ok 以及 skipped=0 字样,这就表示都被正常被执行了,此时应该已经安装成功了,检查一下:
检查MGR服务运行状态:
以上ansible脚本已上传到gitee仓库中,详见:https://gitee.com/GreatSQL/GreatSQL-Ansible。
相应的测试版二进制包也可以在这里下载:https://gitee.com/GreatSQL/GreatSQL-Ansible/releases。
搞定,收工。
水平有限,也请各位读者大人帮忙看看ansible安装脚本里有哪些可以优化的地方,感谢。
本文转载自公共号GreatSQL社区。
