mahdi22.mariadb_install
Роль Ansible mariadb_install
Это роль Ansible для установки и настройки MariaDB на дистрибутивах RHEL/CentOS (7,8), Debian (9,10) и Ubuntu (20.04, 19.10, 18.04, 16.04). Основные задачи этой роли:
- Установить пакеты MariaDB из официальных репозиториев MariaDB
 - Настроить сервер MariaDB
 - Установить пароль для пользователя root
 - Удалить анонимных пользователей
 - Удалить тестовую базу данных
 - Запретить удаленное соединение для root
 - Создать базу данных
 - Создать пользователя базы данных
 - Импортировать файлы/*.sql в базу данных
 
Установка
$ ansible-galaxy install mahdi22.mariadb_install
Переменные роли
Основная конфигурация
| Переменная | Значение по умолчанию | Комментарии | 
|---|---|---|
mariadb_version | 
'10.4' | Установить версию MariaDB: - v(10.5 10.4 10.3) для RHEL/CentOS 8, Debian 10, Ubuntu 20.04, Ubuntu 19.10. - v(10.5 10.4 10.3 10.2 10.1) для RHEL/CentOS 7, Debian 9, Ubuntu 18.04, Ubuntu 16.04 | 
bind-address | 
'127.0.0.1' | Установите IP-адрес сетевого интерфейса для прослушивания или '0.0.0.0' для прослушивания на всех интерфейсах. | 
configure_swappiness | 
'True' | Если True, то эта роль установит значение "swappiness" (см. mariadb_swappiness). | 
create_database | 
'False' | Установите create_database: True для создания базы данных. | 
database | 
'' | Укажите имя базы данных. Должно использоваться с create_database: true. | 
port | 
3306 | Номер порта, который используется для прослушивания клиентских запросов | 
mysql_root_password | 
'azerty' | Установите пароль для пользователя root MariaDB | 
mariadb_service | 
mariadb | Имя сервиса | 
swappiness | 
'10' | Значение "Swappiness" (строка). Значение по умолчанию 60. Значение 0 означает, что обмен процессов избегается. | 
create_db_user | 
'False' | Установите create_db_user: True для создания пользователя базы данных. | 
db_user_name | 
'' | Укажите имя пользователя для добавления. Должно использоваться с create_database: true и create_db_user: true. | 
db_user_password | 
'' | Установите пароль для пользователя базы данных. | 
priviliges | 
'ALL' | Установите права доступа для пользователя базы данных. | 
mariadb_logrotate: rotate | 
'7' | Установите число ротации для журнальных файлов MariaDB. | 
mariadb_logrotate: rotation | 
'daily' | Установите частоту ротации для журнальных файлов MariaDB. | 
use_proxy | 
'False' | Установите эту переменную в True, если управляемые хосты находятся за веб-прокси... по умолчанию False. | 
import_sql_file | 
'False' | Установите эту переменную в True для импорта SQL файлов в базы данных... по умолчанию False. | 
sql_file_name | 
'[]' | Список имен SQL файлов для импорта в базы данных (один или несколько)... Эта переменная должна быть определена, если import_sql_file равно true. | 
Примечания
(1) Чтобы запретить удаленное соединение для пользователя mysql root, установите параметр deny_remote_connections: true. Например: defaults/main.yml
deny_remote_connections: true
(2) Настоятельно рекомендуется установить пароль для пользователя root базы данных! Оставлять пароль пустым — это угроза безопасности. Роль выдаст предупреждение, если переменная не установлена. Пароль по умолчанию "azerty" defaults/main.yml
mysql_root_password: 'azerty'
(3) Чтобы импортировать SQL скрипты в базы данных, установите import_sql_file: true, определите sql_file_name и разместите свои SQL скрипты в каталоге files (mahdi22.mariadb_install/files/). Например: defaults/main.yml
import_sql_file: true
sql_file_name:
    - sqlscript1.sql
    - sqlscript2.sql
    - sqlscriptN.sql
Пример Playbook
Пример Playbook для выполнения роли с использованием параметров и переменных по умолчанию
- hosts: mariadb
  roles:
    - role: mahdi22.mariadb_install
      become: yes
Пример Playbook для выполнения роли с использованием некоторых переменных
- hosts: mariadb
  roles:
    - role: mahdi22.mariadb_install
      become: yes
      vars:
        mariadb_version: "10.5"
        deny_remote_connections: true
        mysql_root_password: "azerty"
        create_database: true
        database: database_test
        create_db_user: true
        db_user_name: user_database
        db_user_password: password
Пример Playbook для выполнения роли с использованием Web Proxy
- hosts: mariadb
  roles:
    - role: mahdi22.mariadb_install
      become: yes
      vars:
        mariadb_version: "10.5"
        deny_remote_connections: true
        mysql_root_password: "azerty"
        create_database: true
        database: database_test
        create_db_user: true
        db_user_name: user_database
        db_user_password: password
        use_proxy: yes
        proxy_env:
          http_proxy: http://proxy.local:8080/
          https_proxy: http://proxy.local:8080/
Пример Playbook для выполнения роли с импортом SQL скрипта
- hosts: mariadb
  roles:
    - role: mahdi22.mariadb_install
      become: yes
      vars:
        mariadb_version: "10.5"
        deny_remote_connections: true
        mysql_root_password: "azerty"
        create_database: true
        database: database_test
        create_db_user: true
        db_user_name: user_database
        db_user_password: password
        use_proxy: yes
        proxy_env:
          http_proxy: http://proxy.local:8080/
          https_proxy: http://proxy.local:8080/
        import_sql_file: true
        sql_file_name:
          - sqlscript1.sql
          - sqlscript2.sql
          - sqlscriptN.sql
Тестирование
Эта роль протестирована на следующих дистрибутивах Linux:
- RHEL/CentOS 8
 - RHEL/CentOS 7
 - Debian 10
 - Debian 9
 - Debian 8
 - Ubuntu 20.04
 - Ubuntu 19.10
 - Ubuntu 18.04
 - Ubuntu 16.04
 
Install and configure Mariadb server on Rhel/CentOS, Debian and Ubuntu ditributions
ansible-galaxy install mahdi22.mariadb_install