maxscale
#######################################################################################################
:exclamation: УСТАРЕВАНИЕ :exclamation:
Этот репозиторий и связанная с ним роль устарели в пользу Manala Ansible Collection
Вы найдете информацию о его использовании в репозитории коллекции
#######################################################################################################
Ansible Роль: Maxscale
:exclamation: Сообщите о проблемах и отправьте Pull Requests в основной репозиторий Ansible Role :exclamation:
Эта роль будет заниматься настройкой и конфигурацией Maxscale.
Она является частью Ansible стека Manala, но может использоваться как отдельный компонент.
Требования
Эта роль предназначена для работы с debian-пакетами mariadb maxscale, доступными в mariadb maxscale репозитории. Пожалуйста, используйте роль manala.apt для правильной установки.
manala_apt_preferences:
- maxscale@maxscale_2_4
Зависимости
Нет.
Установка
Ansible 2+
Используя ansible galaxy cli:
ansible-galaxy install manala.maxscale
Используя файл требований ansible galaxy:
- src: manala.maxscale
Обработчики роли
Имя | Тип | Описание |
---|---|---|
maxscale restart |
Сервис | Перезапустить сервис Maxscale |
Переменные роли
Имя | По умолчанию | Тип | Описание |
---|---|---|---|
manala_maxscale_install_packages |
~ | Массив | Пакеты зависимостей для установки |
manala_maxscale_install_packages_default |
['maxscale'] | Массив | Пакеты зависимостей по умолчанию |
manala_maxscale_config_file |
'/etc/maxscale.cnf' | Строка | Путь к файлу конфигурации |
manala_maxscale_config_template |
'config/_default.j2' | Строка | Путь к шаблону конфигурации по умолчанию |
manala_maxscale_config |
~ | Массив/Строка | Конфигурация |
manala_maxscale_configs_exclusive |
false | Логический | Эксклюзивность конфигураций |
manala_maxscale_configs_dir |
'{{ manala_maxscale_config_file }}.d' | Строка | Путь к папке конфигураций |
manala_maxscale_configs_defaults |
{} | Массив | Путь к шаблонам конфигураций по умолчанию |
manala_maxscale_configs |
[] | Массив | Конфигурации |
manala_maxscale_users_file |
'/var/lib/maxscale/passwd' | Строка | Путь к файлу пользователей |
manala_maxscale_users_template |
'users/_default.j2' | Строка | Путь к шаблону пользователей по умолчанию |
manala_maxscale_network_users |
~ | Массив | Сетевые пользователи (не изменятся, если null) |
Пример конфигурации (конфигурация кластера Galera)
Шаблон конфигурации
manala_maxscale_config_template: maxscale/custom_template.j2
Конфигурация на основе содержимого
manala_maxscale_config: |
[maxscale]
max_auth_errors_until_block = 0
[admin]
type = service
router = cli
Конфигурация на основе массива словарей (устарело)
manala_maxscale_config:
- maxscale:
- threads: auto #Выделенный контейнер
- Splitter Service:
- type: service
- router: readwritesplit
- servers: mariadb-1, mariadb-2, mariadb-3
- user: maxscale
- passwd: XXXXXXXXXXXXXX
- Splitter Listener:
- type: listener
- address: "{{ ansible_eth0.ipv4.address }}" # IP хоста, можно пропустить, по умолчанию слушает все интерфейсы
- port: 3306
- socket: /tmp/ClusterMaster
- service: Splitter Service
- protocol: MySQLClient
- mysql-1:
- type: server
- address: 172.16.X.XX
- port: 3306
- protocol: MySQLBackend
- mysql-2:
- type: server
- address: 172.16.X.XX
- port: 3306
- protocol: MySQLBackend
- mysql-3:
- type: server
- address: 172.16.X.XX
- port: 3306
- protocol: MySQLBackend
- Galera Monitor:
- type: monitor
- module: galeramon
- servers: mariadb-1, mariadb-1, mariadb-1
- user: maxscale
- passwd: XXXXXXXXXXX
- CLI:
- type: service
- router: cli
- CLI Listener:
- type: listener
- service: CLI
- protocol: maxscaled
- address: localhost
- port: 6603
Конфигурации
manala_maxscale_configs_exclusive: true
manala_maxscale_configs:
# На основе содержимого
- file: foo.cnf
config: |
[foo-1]
type = server
address = foo-1
port = 3306
protocol = MariaDBBackend
# На основе массива словарей (устарело)
- file: bar.cnf
config:
- foo-1:
- type: server
- address: foo-1
- port: 3306
- protocol: MariaDBBackend
# Массив словарей (устарело)
- file: bar.cnf
config:
- foo-1:
- type: server
- address: foo-1
- port: 3306
- protocol: MariaDBBackend
# Шаблон cnf
- file: template.cnf
template: my_maxscale_template.cnf.j2
config:
Foo: bar
# Убедитесь, что конфигурация отсутствует
- file: absent.cnf
state: absent # По умолчанию "present"
# Игнорировать конфигурацию
- file: ignore.cnf
state: ignore
# Упрощенные конфигурации
- "{{ my_custom_configs_array }}"
Пользователи
manala_maxscale_network_users:
- name: foo
password: $1$MXS$ilOCSZPnjmHjTz6B96SiJ1 # "foo" (сгенерирован maxpasswd)
- name: bar
password: $1$MXS$M.YZOr2pNTgW87l7KQWLU/ # "bar" (сгенерирован maxpasswd)
Пример playbook
- hosts: servers
roles:
- role: manala.maxscale
Лицензия
MIT
Информация об авторе
Manala (http://www.manala.io/)
Installation and configuration of Maxscale (MySQL/MariaDB Proxy)
ansible-galaxy install manala/ansible-role-maxscale