bbatsche.MySQL
Rol de Ansible MySQL
Este rol instalará y configurará MySQL, MariaDB o Percona server y/o creará bases de datos y usuarios para esos servidores.
Por favor, tenga en cuenta que solo se puede instalar un servidor a la vez y este rol no soporta cambiar de un tipo de servidor a otro.
Variables del Rol
db_admin
— Nombre de usuario de administrador a crear. El valor por defecto es "vagrant".db_pass
— Contraseña para el usuario administrador a crear. El valor por defecto es "vagrant".env_name
— Si este servidor se usará para "desarrollo", "producción", etc. El valor por defecto es "dev".install_mysql
— Instalar el servidor MySQL. El valor por defecto es no.install_mariadb
— Instalar el servidor MariaDB. El valor por defecto es no.install_percona
— Instalar el servidor Percona. El valor por defecto es no.new_db_name
— Nombre de la base de datos a crear. El valor por defecto es indefinido (omitido).new_db_user
— Nombre de usuario del nuevo usuario a crear. El valor por defecto es indefinido (omitido).new_db_pass
— Contraseña del nuevo usuario a crear. El valor por defecto es indefinido (omitido).new_db_priv
— Privilegios a otorgar al nuevo usuario. El valor por defecto es darles control total del servidor o de la base de datos (si está definida).remove_root_user
— Eliminar el usuario root durante la instalación. El valor por defecto es eliminarlo.mysql_deb
— URL del repositorio de MySQL para agregar a APT. El valor por defecto es "https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb".mariadb_apt_key.trusty
— Clave APT para instalar MariaDB en Trusty Tahr. El valor por defecto es "0xcbcb082a1bb943db".mariadb_apt_key.xenial
— Clave APT para instalar MariaDB en Xenial Xerus. El valor por defecto es "0xF1656F24C74CD1D8".mariadb_version
— Versión de MariaDB a instalar. El valor por defecto es "10.2".mariadb_apt_mirror
— Espejo desde el cual descargar MariaDB. El valor por defecto es "http://nyc2.mirrors.digitalocean.com".percona_deb
— URL del repositorio del servidor Percona para agregar a APT. El valor por defecto es "https://repo.percona.com/apt/percona-release_0.1-4.{{ ansible_distribution_release }}_all.deb
".percona_version
— Versión del servidor Percona a instalar. El valor por defecto es "5.7".mysql_socket
— Ruta al socket de MySQL. El valor por defecto es "/var/run/mysqld/mysqld.sock".mysql_enable_network
— Si se debe permitir conexiones a la red externa. El valor por defecto es no.mysql_sql_mode
— Modo SQL a usar. El valor por defecto es "ANSI,TRADITIONAL".mysql_max_connections
— Número máximo de conexiones permitidas. El valor por defecto es "300".mysql_wait_timeout
— Tiempo de espera. El valor por defecto es "300".
Variables de Ajuste
MySQL tiene muchas configuraciones para ajustar su rendimiento y uso de recursos. Este rol admite establecer o calcular algunas de las más relevantes.
mysql_mem_percent
— Porcentaje de la memoria total que MySQL debe usar. Esto no es un límite, sino un objetivo para calcular otras variables. El valor por defecto es "40".innodb_buffer_pool_percent
— Porcentaje de la memoria de MySQL a usar para el grupo de búfer de InnoDB. El valor por defecto es "90".innodb_buffer_pool_size
— Cantidad de memoria total a usar para el grupo de búfer de InnoDB. El valor por defecto se calcula en base amysql_mem_percent
yinnodb_buffer_pool_percent
.innodb_buffer_pool_chunk_size
— Tamaño del bloque de búfer del grupo InnoDB. El valor por defecto es "128M".mysql_key_buffer_percent
— Porcentaje de la memoria de MySQL a usar para el búfer clave. El valor por defecto es "40".mysql_key_buffer_size
— Cantidad de memoria total a usar para el búfer clave de MySQL. El valor por defecto se calcula en base amysql_mem_percent
ymysql_key_buffer_percent
.mysql_max_heap_table_size
— Tamaño máximo de la tabla en heap. El valor por defecto se calcula en base a la memoria total.mysql_open_files_limit
— Límite de archivos abiertos. El valor por defecto es 32 por MB de memoria total.mysql_tmp_table_size
— Tamaño de la tabla temporal. El valor por defecto se calcula en base a la memoria total.
Variables de Validación de Contraseña
Este rol permite definir requisitos de validación de contraseña para su servidor. Esta configuración se omite en entornos de desarrollo.
mysql_password_policy
— Política de contraseña de MySQL. El valor por defecto es "MEDIUM" (ignorada en MariaDB).mysql_password_check_username
— Verificar si la contraseña de un usuario contiene su nombre de usuario. El valor por defecto es "OFF" (ignorada en MariaDB).mysql_password_length
— Requisitos de longitud de contraseña. El valor por defecto es "5".mysql_password_mixed_case_count
— Número de caracteres en mayúsculas y minúsculas requeridos. El valor por defecto es "0".mysql_password_number_count
— Número de dígitos requeridos. El valor por defecto es "0".mysql_password_special_char_count
— Número de caracteres no alfanuméricos requeridos. El valor por defecto es "0".
Otras Variables de Ajuste
innodb_io_capacity
— Capacidad IO de InnoDB. El valor por defecto es "400".innodb_log_buffer_size
— Tamaño del búfer de registro de InnoDB. El valor por defecto es "16M".myisam_sort_buffer_size
— Tamaño del búfer de ordenamiento de MyISAM. El valor por defecto es "128M".mysql_bulk_insert_buffer_size
— Tamaño del búfer de inserción masiva. El valor por defecto es "16M".mysql_max_allowed_packet
— Tamaño máximo del paquete permitido. El valor por defecto es "16M".mysql_query_cache_type
— Si habilitar o no la caché de consultas de MySQL. El valor por defecto es "ON".mysql_query_cache_size
— Tamaño de la caché de consultas. El valor por defecto es "32M" si la caché de consultas está habilitada, de lo contrario "0".mysql_query_cache_limit
— Límite de tamaño de consultas para la caché. El valor por defecto es "1M".mysql_read_buffer_size
— Tamaño del búfer de lectura. El valor por defecto es "2M".mysql_read_rnd_buffer_size
— Tamaño del búfer de lectura aleatoria. El valor por defecto es "2M".mysql_sort_buffer_size
— Tamaño del búfer de ordenamiento. El valor por defecto es "2M".mysql_table_open_cache
— Caché de tablas abiertas. El valor por defecto es "2000".
Ejemplo de Playbook
Instalar un servicio (MariaDB):
- hosts: servers
roles:
- role: bbatsche.MySQL
install_mariadb: yes
Crear un nuevo usuario (suponiendo que un servicio ya está instalado y funcionando):
- hosts: servers
roles:
- role: bbatsche.MySQL
new_db_user: my_new_user
new_db_pass: n0tV3ry$ecuRe
Licencia
MIT
Pruebas
Incluido con este rol hay un conjunto de especificaciones para probar cada tarea individualmente o en conjunto. Para ejecutar estas pruebas, primero deberá tener Vagrant y VirtualBox instalados. Los archivos de especificación están escritos usando Serverspec así que necesitará Ruby y Bundler.
Para ejecutar el conjunto completo de especificaciones:
$ gem install bundler
$ bundle install
$ rake
El conjunto de especificaciones se dirigirá a Ubuntu Trusty Tahr (14.04), Xenial Xerus (16.04) y Bionic Bever (18.04).
Para ver las tareas de rake disponibles (y especificaciones):
$ rake -T
Estas especificaciones no están destinadas a probar la idempotencia. Están destinadas a verificar que las tareas especificadas cumplan con los pasos esperados. La idempotencia se prueba de forma independiente a través de pruebas de integración.
Simple role for installing the default version of MySQL for Ubuntu
ansible-galaxy install bbatsche.MySQL