mariadb
Ansible роль mariadb
Ansible роль для управления MariaDB.
- Установка пакетов MariaDB из официального репозитория MariaDB.
- Установка/Сброс пароля root.
- Удаление базы данных
test
. - Удаление анонимных пользователей.
- Создание пользователей и баз данных.
- Управление конфигурационным файлом
my.cnf
. - Репликация.
Фиксированные настройки:
- Движок хранения: InnoDB.
Проверено на:
- CentOS 7.4
- Ubuntu 16.04 (Xenial)
- Ubuntu 18.04 (Bionic)
- MariaDB 10.3
Требования
Нет требований.
Переменные роли
Переменная | Значение по умолчанию | Комментарии |
---|---|---|
mariadb_bind_address |
'127.0.0.1' | IP-адрес сетевого интерфейса для прослушивания. '0.0.0.0' для всех интерфейсов. |
mariadb_binlog_format |
'ROW' | Формат бинарного логирования (STATEMENT , ROW , MIXED ). |
mariadb_charset |
'utf8' | |
mariadb_collation |
'utf8_general_ci' | |
mariadb_databases |
[] | базы данных для добавления. См. mysql_db. |
mariadb_enabled_on_startup |
true | 'true': включить MariaDB при запуске. |
mariadb_expire_logs_days |
10 | количество дней до автоматического удаления файлов бинарного лога. |
mariadb_group_concat_max_len |
1024 | |
mariadb_innodb_buffer_pool_size |
256M | |
mariadb_innodb_file_per_table |
ON | |
mariadb_innodb_flush_log_at_trx_commit |
1 | |
mariadb_innodb_log_buffer_size |
8M | |
mariadb_innodb_log_file_size |
64M | |
mariadb_innodb_lock_wait_timeout |
50 | |
mariadb_join_buffer_size |
256K | |
mariadb_key_buffer_size |
256M | |
mariadb_lower_case_table_names |
1 | 0: чувствительность к регистру (Linux), 1: хранится в нижнем регистре, нечувствительно к регистру (Windows), 2: хранится как указано, сравнивается в нижнем регистре (OSX). |
mariadb_max_allowed_packet |
64M | |
mariadb_max_binlog_size |
100M | максимальный размер бинарного лога (4096 байт ~ 1ГБ). |
mariadb_max_connections |
151 | |
mariadb_max_heap_table_size |
16M | |
mariadb_myisam_sort_buffer_size |
64M | |
mariadb_mysqldump_max_allowed_packet |
64M | |
mariadb_overwrite_global_mycnf |
true | true : глобальный my.cnf будет перезаписан каждый раз при выполнении этой роли. |
mariadb_port |
3306 | номер порта. |
mariadb_read_buffer_size |
1M | |
mariadb_read_rnd_buffer_size |
4M | |
mariadb_replication_master |
'' | мастер репликации. |
mariadb_replication_master_host |
'' | хост мастера репликации (по умолчанию: hostvars[mariadb_replication_master]['ansible_host'] ). |
mariadb_replication_role |
'' | роль репликации (master , slave ). |
mariadb_replication_user |
[] | пользователь для репликации (имя , пароль обязательны). |
mariadb_root_password |
'root' | пароль root. |
mariadb_root_remote |
no |
yes : разрешить удаленный вход для root. |
mariadb_root_remote_host |
'%' | разрешенный хост для удаленного входа root. |
mariadb_server_id |
'' | ID сервера (репликация). |
mariadb_skip_name_resolve |
1 | |
mariadb_sort_buffer_size |
1M | |
mariadb_sql_mode |
NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION, STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO | |
mariadb_table_open_cache |
256 | |
mariadb_thread_cache_size |
8 | |
mariadb_tmp_table_size |
16M | |
mariadb_users |
[] | пользователи для добавления. |
mariadb_version |
'10.3' | версия MariaDB для установки. |
mariadb_wait_timeout |
28800 |
Зависимости
Нет зависимостей.
Пример Playbook
Создать базы данных и пользователей
---
- name: пример
hosts: all
become: true
vars:
mariadb_bind_address: '0.0.0.0'
mariadb_root_password: 'root'
mariadb_root_remote: yes
mariadb_databases:
- name: dev
mariadb_users:
- name: dev
password: 'devdev'
priv: "dev.*:ALL"
host: "%"
roles:
- lechuckroh.mariadb
Репликация
инвентаризация хостов
mariadb-master ansible_host=192.168.50.11 ansible_user=vagrant
mariadb-slave ansible_host=192.168.50.12 ansible_user=vagrant
Playbook для мастера
---
- name: Установить mysql на Мастере
hosts: mariadb-master
become: true
vars:
mariadb_bind_address: '0.0.0.0'
mariadb_root_password: 'root'
mariadb_databases:
- name: dev1
- name: dev2
replicate: yes
- name: dev3
replicate: no
mariadb_users:
- name: dev
password: 'devdev'
priv: "dev*.*:ALL"
host: "%"
mariadb_server_id: 1
mariadb_max_binlog_size: 100M
mariadb_binlog_format: ROW
mariadb_expire_logs_days: 10
mariadb_replication_role: master
mariadb_replication_master: mariadb-master
mariadb_replication_user:
name: repl
password: repl
tasks:
- include_role:
name: lechuckroh.mariadb
Playbook для слейва
---
- name: Установить mysql на Мастере
hosts: mariadb-slave
become: true
vars:
mariadb_bind_address: '0.0.0.0'
mariadb_root_password: 'root'
mariadb_databases:
- name: dev1
- name: dev2
mariadb_server_id: 2
mariadb_replication_role: master
mariadb_replication_master: mariadb-master
mariadb_replication_user:
name: repl
password: repl
tasks:
- include_role:
name: lechuckroh.mariadb
Лицензия
MIT
Установить
ansible-galaxy install lechuckroh/ansible-role-mariadb
Лицензия
mit
Загрузки
67
Владелец