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/ansible-mariadb-install