ansible安装GreatSQL构建MGR集群

来源:这里教程网 时间:2026-03-01 17:24:50 作者:

本次介绍如何利用ansible快速安装GreatSQL并构建包含仲裁节点的MGR集群。

1. 安装准备

1.1 安装ansible

首先利用dnf/yum安装ansible:

yum install -y ansible

1. 2  配置ansible

修改  /etc/ansible/hosts 文件,把要安装GreatSQL的服务器IP加进去,例如:

 cat /etc/ansible/hosts
[greatsql_dbs:children]
greatsql_mgr_primary
greatsql_mgr_secondary
[greatsql_mgr_primary]
172.26.170.13
[greatsql_mgr_secondary]
172.26.170.14
172.26.170.15

上面这个主机列表,分为两个组,一个是选择作为MGR PRIMARY节点(或在多主模式中第一个需要初始化引导的节点)的组 greatsql_mgr_primary,只有一个主机。另一组选择作为SECONDARY节点 greatsql_mgr_secondary,有两个主机。两个组也可以合并一起,成为一个新的组 greatsql_dbs。

1.3  建立ssh信任

为了简单起见,直接建立ssh信任,方便ansible一键安装。

首先生成ssh key

$ ssh-keygen

使用缺省值,提示输入passphrase时,敲回车使用空的passphrase。

将ssh key复制到目标服务器上:

$ ssh-copy-id root@172.26.170.13

按提示输入口令,完成后测试使用ssh登录不再提示输入口令。如果是在本机安装,那么ssh-copy-id也要对本机执行一遍。或者手动将ssh key复制到远程主机上,写到 ~/.ssh/authorized_keys 文件中(注意不要折行、断行)。

1.4 测试ansible

随意执行一个指令,测试ansibile可连接远程主机:

a nsible greatsql_dbs -a "uptime"

1.5 下载GreatSQL-Ansible安装包

打开GreatSQL-Ansible项目主页:

找到页面右侧“发行版”,进入,选择 "  GreatSQL-8.0.32-24-Linux-glibc2.17-x86_64-minimal-ansible.tar.xz " 这个二进制包下载到服务器上:

$ cd /opt/greatsql/; wget -c " 
$ tar zxf GreatSQL-8.0.32-24-Linux-glibc2.17-x86_64-minimal-ansible.tar.xz

解压缩后,能看到除了  GreatSQL-8.0.32-24-Linux-glibc2.17-x86_64-minimal.tar.xz 安装包之外,还有GreatSQL-ansible一键安装相关文件:

# ls -l
总用量 45268
-rw-r--r-- 1 root root      333 8月   8 11:04 check_mysql.yml
-rw-r--r-- 1 root root 46324036 8月   8 11:09 GreatSQL-8.0.32-24-Linux-glibc2.17-x86_64-minimal.tar.xz
-rwxr-xr-x 1 root root     8920 8月   8 12:41 greatsql.yml
drwxr-xr-x 3 root root      103 8月   8 11:07 mysql-support-files
-rw-r--r-- 1 root root      869 8月   8 11:04 README.en.md
-rw-r--r-- 1 root root      795 8月   8 11:04 README.md
-rw-r--r-- 1 root root      474 8月  19 11:50 vars.yml

几个文件作用分别介绍下:

  • GreatSQL-8.0.32-24-Linux-glibc2.17-x86_64-minimal.tar.xz,GreatSQL二进制minimal安装包。

  • greatsql.yml,ansible一键安装脚本。

  • check_mysql.yml,MySQL进程、端口预检查脚本。

  • vars.yml,定义一些变量的脚本,里面的变量名有些需要修改以适应各自不同的安装环境。

    2. 安装GreatSQL并构建MGR集群

    2.1 配置Ansible安装剧本

    在开始安装前,要先修改  vars.yml 这个Ansbile安装剧本中的几个配置选项:

    cat vars.yml 
    work_dir: /opt/greatsql/GreatSQL-8.0.32-24-Linux-glibc2.17-x86_64-minimal-ansible
    extract_dir: /usr/local
    data_dir: /data/GreatSQL
    file_name: GreatSQL-8.0.32-24-Linux-glibc2.17-x86_64-minimal.tar.xz
    base_dir: /usr/local/GreatSQL-8.0.32-24-Linux-glibc2.17-x86_64-minimal
    my_cnf: /etc/my.cnf
    mysql_user: mysql
    mysql_port: 3306
    mgr_user: repl
    mgr_user_pwd: repl4MGR
    mgr_seeds: '172.26.170.13:33061,172.26.170.14:33061,172.26.170.15:33061'
    mgr_single_mode: 1
    wait_for_start: 60

    提醒:

    1. 除了修改work_dir和mgr_seeds参数外,其他的都请谨慎修改,否则可能会提示找不到文件目录等错误。

    2. 如果是要采用多主模式,在 /etc/ansible/hosts 文件中,把第一个需要初始化引导的节点放在  greatsql_mgr_primary 组里,其他节点照常放在  greatsql_mgr_secondary 组里。

    2.2 开始ansible安装

    执行下面的命令一键完成GreatSQL的安装、初始化,加入systemd服务、以及MGR初始化等所有工作:

    $ cd /opt/greatsql/GreatSQL-8.0.32-24-Linux-glibc2.17-x86_64-minimal-ansible
    $ ansible-playbook ./greatsql.yml

    2.3 检查ansible执行过程输出

    安装时会先行检查是否已有mysqld进程在运行,或者3306端口上是否已有其他服务,如果存在的话,跳过安装,会 看到有  skipping  以及  skipped=N  字样。而如果是正常安装,则会输出类似下面的内容:

    有  ok  以及  skipped=0  字样,这就表示都被正常被执行了,此时应该已经安装成功了,检查一下:

    检查MGR服务运行状态:

    select * from performance_schema.replication_group_members;

    参考:

    %E9%97%AE%E9%A2%98%E5%8F%8D%E9%A6%88

  • 相关推荐