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

О проекте

Manage MariaDB

Установить
ansible-galaxy install lechuckroh/ansible-role-mariadb
Лицензия
mit
Загрузки
67
Владелец