mysql

Ansible Роль: mysql

Ansible роль, которая устанавливает сервер MySQL или MariaDB на Fedora, Debian и Ubuntu.

Версии MySQL будут устанавливаться из https://dev.mysql.com/downloads/repo/apt/ для Debian и Ubuntu и из https://dev.mysql.com/downloads/repo/yum/ для Fedora.

Для MariaDB будут использоваться репозитории из https://downloads.mariadb.org/mariadb/repositories/.

Требования

Для настройки брандмауэра должна работать служба firewalld, и необходимо установить пакет python-firewall.

Переменные роли

Доступные переменные перечислены ниже, с умолчательными значениями:

mysql_vendor: mysql
mysql_origin: distribution
mysql_upstream_version: ~ # MariaDB: 10.2, MySQL: 5.7

mysql_root_password: "My $3cr3t password"

mysql_import_timezones: yes

mysql_bind_address: 0.0.0.0

mysql_key_buffer_size: 256M
mysql_max_allowed_packet: 1M
mysql_table_open_cache: 256
mysql_sort_buffer_size: 1M
mysql_read_buffer_size: 1M
mysql_read_rnd_buffer_size: 4M
mysql_net_buffer_length: 1M
mysql_myisam_sort_buffer_size: 64M
mysql_thread_cache_size: 8
mysql_query_cache_size: 16M

mysql_max_connections: ~
mysql_thread_concurrency: ~

mysql_ssl_ca: ~
mysql_ssl_cert: ~
mysql_ssl_key: ~

mysql_custom_config: ~

mysql_backup: no
mysql_backup_destination: /var/lib/backup/database
mysql_backup_password: "My $3cr3t password"

mysql_firewall_zones: []

mysql_databases: []
mysql_users: []

Вендор и источник

Эта Ansible роль поддерживает установку MySQL и MariaDB из распределения или из upstream пакетов.

Вендор можно задать в переменной mysql_vendor, поддерживающей значения mysql и mariadb. По умолчанию используется вендор mysql.

Переменная mysql_origin определяет источник установки пакетов. По умолчанию, значение distribution означает, что будут установлены пакеты из распределения. При этой конфигурации версия определяется распределением и не может быть изменена.

Если переменная mysql_origin установлена в upstream, будет установлен пакет из MySQL/MariaDB. Это делается с использованием репозиториев из https://downloads.mariadb.org/mariadb/repositories/. В этом случае версию можно указать в переменной mysql_upstream_version.

Пользователь root

Пароль, указанный в переменной mysql_root_password, будет установлен как пароль root-пользователя во время установки. Его следует заменить на надежный пароль.

Пользователь root сможет подключаться только с локального хоста. Все записи удаленных хостов будут удалены.

Кроме того, будут удалены анонимные пользователи и тестовая база данных.

Импорт часовых поясов

Данные о часовых поясах будут импортированы по умолчанию (см. https://dev.mysql.com/doc/refman/5.7/en/mysql-tzinfo-to-sql.html). Чтобы изменить это поведение, измените переменную mysql_import_timezones на no.

Сеть

По умолчанию сервер слушает на всех IPv4 интерфейсах хоста. Это можно изменить, установив переменную mysql_bind_address на другой адрес, а не на 0.0.0.0.

Опции

Есть некоторые параметры, которые могут быть изменены и имеют умолчания. Смотрите выше или в defaults/tasks.yml и документации для получения дополнительной информации.

SSL

Чтобы включить поддержку SSL, необходимо настроить переменные mysql_ssl_ca, mysql_ssl_cert и mysql_ssl_key.

Пользовательская конфигурация

Дополнительную конфигурацию можно задать в переменной mysql_custom_config, например:

mysql_custom_config: |
                     skip_name_resolve
                     skip-locking

Резервное копирование

Хотя резервное копирование по умолчанию отключено, автоматический скрипт ежедневного резервного копирования можно включить, установив mysql_backup в yes.

Он просто делает дамп всех баз данных в папку, определенную в mysql_backup_destination, как SQL файл с меткой времени. Кроме того, он ссылается на последний файл резервной копии для каждой базы данных в [database]_latest.sql.

Пользователь базы данных для резервного копирования будет создан автоматически с паролем, заданным в переменной mysql_backup_password. Обязательно задайте эту переменную на надежный пароль, так как по умолчанию она пустая, и возникнет ошибка, если резервное копирование включено, и этот пароль не установлен.

Брандмауэр

Переменная mysql_firewall_zones может быть использована для объявления зон брандмауэра, в которых должен быть доступен nginx. Это означает, что порты 3306/tcp будут открыты.

В настоящее время поддерживается только firewalld, что является стандартным для Fedora.

Базы данных

Базы данных для создания можно определить в переменной mysql_databases. Возможные значения для каждой записи в mysql_databases следующие, вместе с умолчаниями:

name: ~
collation: utf8_general_ci
encoding: utf8
import_file: ~

Имя

В ключе name можно установить имя базы данных.

Сортировка и кодировка

Чтобы настроить сортировку и кодировку, их можно задать в collaction и encoding.

Импорт

Есть возможность указать путь к SQL файлу в import_file, который будет импортирован после создания базы данных. Это может быть использовано для импорта резервных копий.

Если база данных уже существует, ничего не будет импортировано.

Пользователи

Пользователи базы данных могут быть определены в переменной mysql_users. Возможные значения для каждой записи в mysql_users следующие, вместе с умолчаниями:

name: ~
password: ~
host: localhost
privileges: "*.*:USAGE"
append_privileges: no

Учетные данные

Ключи name и password определяют учетные данные пользователя. Пользователь может получить доступ к серверу только с хоста, указанного в host. Значение % позволит подключение с любого хоста.

Привилегии

Привилегии могут быть определены в privileges в виде строки, смотрите руководство MySQL или MariaDB для получения дополнительной информации. Если append_privileges установлено на yes, определенные привилегии будут добавлены к уже существующим.

Зависимости

Нет

Пример Playbook

- hosts: all
  roles:
    - { role: mjanser.mysql }
  vars:
    mysql_root_password: secret
    mysql_databases:
      - name: my_db
    mysql_users:
      - name: my_user
        password: secret
        privileges: "my_db.*:ALL"

Лицензия

MIT

О проекте

Installs MySQL or MariaDB

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