uoi-io.galera

Ansible Galera (Готово для OpenStack)

Этот модуль обеспечивает поддержку настройки кластера Galera.

Будут добавлены два репозитория в систему упаковки:

  • MariaDB (MariaDB, Galera)
  • Percona (xtrabackup)

Поддерживаемые дистрибутивы:

  • CentOS 7.x
  • RedHat EL 7.x
  • Debian 8.x

Поддерживаемые функции:

  • Firewalld (на сервере нужны пакеты iptables и firewalld)
  • SELinux
  • Pacemaker

Поддержка Pacemaker предоставляет инструмент clustercheck и необходимую конфигурацию для xinetd.

Когда поддержка Pacemaker определена, кластер Galera будет остановлен, и опция wsrep_cluster_address из конфигурации MariaDB будет удалена, чтобы дать возможность Pacemaker принять решение.

Требования

Этот модуль требует как минимум 3 узла и Ansible версии 2.0.

Переменные роли

Если galera_reset_cluster установлено в true, все базы данных будут стерты, будьте осторожны!

CONFIG

### MARIADB
master: ctrl01
mariadb_bind_address: 0.0.0.0
mariadb_port: 3306
mariadb_max_connections: 4096
mariadb_query_cache_size: 0
mariadb_default_storage_engine: InnoDB
mariadb_maintenance_password: I3uL6AqJLHInv85x
mariadb_root_password: 3248ew7dsYUG762
mariadb_hosts_allow: 192.168.%
mariadb_datadir: /var/lib/mysql

### GALERA
galera_node_address: "{{ ansible_eth0.ipv4.address }}"
galera_pacemaker_support: false
galera_clustercheck_user: clustercheck
galera_clustercheck_password: Y3aH1l0ved2CH3CK
galera_reset_cluster: false
galera_selinux: true
galera_firewalld: true
galera_cluster_name: uoi-sql-cluster
galera_sst_method: xtrabackup-v2
galera_sst_user: sst-replication
galera_sst_password: gr34tp4ss0rd
galera_cluster_nodes:
  - ctrl01
  - ctrl02
  - ctrl03
galera_provider_options: 'pc.ignore_quorum=true; gcache.size=1G'
galera_retry_autocommit: 10
galera_slave_threads: 8

ПЕРЕМЕННЫЕ

Поскольку модуль поддерживает дистрибутивы RedHat и Debian, нам нужно определить некоторые значения в зависимости от семейства ОС.

### REDHAT
# файл: roles/galera/vars/RedHat.yml
galera_packages:
  - MariaDB-server
  - percona-xtrabackup
  - socat
  - MySQL-python
  - percona-toolkit
  - galera
  - policycoreutils-python
  - checkpolicy
  - xinetd
mariadb_svc_name: mariadb
mariadb_config: my.cnf.d/server.cnf
galera_provider: /usr/lib64/galera/libgalera_smm.so
percona_package: https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-3.noarch.rpm
### DEBIAN
# файл: roles/galera/vars/Debian.yml
galera_packages:
  - mariadb-server
  - xtrabackup
  - socat
  - python-mysqldb
  - percona-toolkit
  - xinetd
mariadb_svc_name: mysql
mariadb_config: mysql/conf.d/galera.cnf
galera_provider: /usr/lib/galera/libgalera_smm.so
## MAIN
# файл: roles/galera/vars/main.yml
galera_xinet_port: 9200

# ПОРТЫ МЕЖДУНЕТЕВОГО ЭКРАНА
fw_mysql: "{{ mariadb_port }}"
fw_mysql_ist: 4568
fw_mysql_sst: 4444
fw_galera: 4567
fw_xinetd: "{{ galera_xinet_port }}"

Зависимости

Отсутствуют.

Пример Playbook

master: node1
mariadb_bind_address: 0.0.0.0
mariadb_max_connections: 4096
mariadb_maintenance_password: I3uL6AqJLHInv85x
mariadb_root_password: 3248ew7dsYUG762
mariadb_hosts_allow: 10.0.%

galera_node_address: "{{ ansible_eth0.ipv4.address }}"
galera_pacemaker_support: false
galera_clustercheck_user: clustercheck
galera_clustercheck_password: Y3aH1l0ved2CH3CK
galera_cluster_name: uoi-sql-cluster
galera_sst_password: gr34tp4ss0rd
galera_cluster_nodes:
  - node-1
  - node-2
  - node-3
  - node-4
  - node-5

galera-status

Когда развертывание завершено, выполните команду galera-status, чтобы получить четкий статус кластера Galera.

# galera-status

Лицензия

Apache

Информация об авторе

Эта роль была создана в 2016 году Гаэтаном Треллю (goldyfruit).

О проекте

Deploy a Galera 3 cluster with MariaDB 10.1, supports SELinux, firewalld, Pacemaker

Установить
ansible-galaxy install uoi-io.galera
Лицензия
apache-2.0
Загрузки
126
Владелец