MySQL
Роль Ansible для MySQL
Эта роль устанавливает и настраивает MySQL, MariaDB или Percona сервер, а также создает базы данных и пользователей для этих серверов.
Обратите внимание, что одновременно может быть установлен только один сервер, и эта роль не поддерживает переключение с одного типа сервера на другой.
Переменные роли
db_admin
— Имя администратора, который будет создан. По умолчанию "vagrant"db_pass
— Пароль для создаваемого администратора. По умолчанию "vagrant"env_name
— Укажет, используется ли сервер для "разработки", "производства" и т.д. По умолчанию "dev"install_mysql
— Устанавливать ли MySQL сервер. По умолчанию нетinstall_mariadb
— Устанавливать ли MariaDB сервер. По умолчанию нетinstall_percona
— Устанавливать ли Percona сервер. По умолчанию нет.new_db_name
— Имя базы данных для создания. По умолчанию не задано (пропущено)new_db_user
— Имя нового пользователя для создания. По умолчанию не задано (пропущено)new_db_pass
— Пароль нового пользователя для создания. По умолчанию не задано (пропущено)new_db_priv
— Привилегии для нового пользователя. По умолчанию - полные права на сервер или базу данных (если задана)remove_root_user
— Удалить пользователя root во время установки. По умолчанию удаляется.mysql_deb
— URL репозитория MySQL для добавления в APT. По умолчанию "https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb"mariadb_apt_key.trusty
— APT ключ для установки MariaDB на Trusty Tahr. По умолчанию "0xcbcb082a1bb943db"mariadb_apt_key.xenial
— APT ключ для установки MariaDB на Xenial Xerus. По умолчанию "0xF1656F24C74CD1D8"mariadb_version
— Версия MariaDB для установки. По умолчанию "10.2"mariadb_apt_mirror
— Зеркало для загрузки MariaDB. По умолчанию "http://nyc2.mirrors.digitalocean.com"percona_deb
— URL репозитория Percona сервера для добавления в APT. По умолчанию "https://repo.percona.com/apt/percona-release_0.1-4.{{ ansible_distribution_release }}_all.deb
"percona_version
— Версия Percona сервера для установки. По умолчанию "5.7"mysql_socket
— Путь к MySQL сокету. По умолчанию "/var/run/mysqld/mysqld.sock"mysql_enable_network
— Слушать ли внешние сетевые подключения. По умолчанию нетmysql_sql_mode
— SQL режим для использования. По умолчанию "ANSI,TRADITIONAL"mysql_max_connections
— Максимальное количество допустимых соединений. По умолчанию "300"mysql_wait_timeout
— Тайм-аут ожидания. По умолчанию "300"
Переменные настройки
MySQL имеет множество настроек для оптимизации производительности и использования ресурсов. Эта роль поддерживает установку или расчет некоторых наиболее важных настроек.
mysql_mem_percent
— Процент от общей памяти, который MySQL должен использовать. Это не ограничение, а скорее цель для расчета других переменных. По умолчанию "40"innodb_buffer_pool_percent
— Процент памяти MySQL, используемый для пула буферов InnoDB. По умолчанию "90"innodb_buffer_pool_size
— Общий объем памяти, используемой для пула буферов InnoDB. По умолчанию рассчитывается на основеmysql_mem_percent
иinnodb_buffer_pool_percent
innodb_buffer_pool_chunk_size
— Размер чанка пула буферов InnoDB. По умолчанию "128M"mysql_key_buffer_percent
— Процент памяти MySQL, используемый для буфера ключей. По умолчанию "40"mysql_key_buffer_size
— Общий объем памяти, используемой для буфера ключей MySQL. По умолчанию рассчитывается на основеmysql_mem_percent
иmysql_key_buffer_percent
mysql_max_heap_table_size
— Максимальный размер кучи таблицы. По умолчанию рассчитывается на основе общей памятиmysql_open_files_limit
— Ограничение на открытые файлы. По умолчанию 32 на 1 МБ общей памятиmysql_tmp_table_size
— Размер временной таблицы. По умолчанию рассчитывается на основе общей памяти
Переменные проверки пароля
Эта роль позволяет задать требования к проверке паролей для вашего сервера. Эта настройка пропускается в средах разработки.
mysql_password_policy
— Политика паролей MySQL. По умолчанию "MEDIUM" (игнорируется в MariaDB)mysql_password_check_username
— Проверять, содержит ли пароль пользователя его имя. По умолчанию "OFF" (игнорируется в MariaDB)mysql_password_length
— Требования к длине пароля. По умолчанию "5"mysql_password_mixed_case_count
— Количество требуемых символов разного регистра. По умолчанию "0"mysql_password_number_count
— Количество требуемых цифр. По умолчанию "0"mysql_password_special_char_count
— Количество требуемых неалфавитных символов. По умолчанию "0"
Другие переменные настройки
innodb_io_capacity
— IO возможность InnoDB. По умолчанию "400"innodb_log_buffer_size
— Размер буфера журналов InnoDB. По умолчанию "16M"myisam_sort_buffer_size
— Размер буфера сортировки MyISAM. По умолчанию "128M"mysql_bulk_insert_buffer_size
— Размер буфера для массовой вставки. По умолчанию "16M"mysql_max_allowed_packet
— Максимальный разрешенный размер пакета. По умолчанию "16M"mysql_query_cache_type
— Включать ли кэш запросов MySQL. По умолчанию "ON"mysql_query_cache_size
— Размер кэша запросов. По умолчанию "32M", если кэш запросов включен, иначе "0"mysql_query_cache_limit
— Ограничение размера запросов для кэша. По умолчанию "1M"mysql_read_buffer_size
— Размер буфера чтения. По умолчанию "2M"mysql_read_rnd_buffer_size
— Размер буфера случайного чтения. По умолчанию "2M"mysql_sort_buffer_size
— Размер буфера сортировки. По умолчанию "2M"mysql_table_open_cache
— Кэш открытых таблиц. По умолчанию "2000"
Пример плейбука
Установка службы (MariaDB):
- hosts: servers
roles:
- role: bbatsche.MySQL
install_mariadb: yes
Создать нового пользователя (при условии, что служба уже установлена и запущена):
- hosts: servers
roles:
- role: bbatsche.MySQL
new_db_user: my_new_user
new_db_pass: n0tV3ry$ecuRe
Лицензия
MIT
Тестирование
Включает в себя набор спецификаций для тестирования каждой задачи по отдельности или в целом. Чтобы запустить эти тесты, вам сначала нужно установить Vagrant и VirtualBox. Спецификации написаны с использованием Serverspec, поэтому вам понадобятся Ruby и Bundler.
Чтобы запустить полный набор спецификаций:
$ gem install bundler
$ bundle install
$ rake
Набор спецификаций будет нацелен на Ubuntu Trusty Tahr (14.04), Xenial Xerus (16.04) и Bionic Bever (18.04).
Чтобы увидеть доступные задачи rake (и спецификации):
$ rake -T
Эти спецификации не предназначены для проверки идемпотентности. Они предназначены для проверки того, что указанные задачи выполняют ожидаемые шаги. Идемпотентность тестируется независимо через интеграционное тестирование.
Simple role for installing the default version of MySQL for Ubuntu
ansible-galaxy install bbatsche/Ansible-MySQL-Role