lechuckroh.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.mariadbЛицензия
 
            mit
          
Загрузки
 
            87
          
Владелец
 