bbatsche.MySQL

Rôle Ansible MySQL

État de la construction Licence Nom du rôle Version de sortie Téléchargements

Ce rôle installe et configure MySQL, MariaDB ou Percona, et/ou crée des bases de données et des utilisateurs pour ces serveurs.

Veuillez noter qu'un seul serveur peut être installé à la fois, et que ce rôle ne prend pas en charge le passage d'un type de serveur à un autre.

Variables du rôle

  • db_admin — Nom d'utilisateur admin à créer. Par défaut : "vagrant"
  • db_pass — Mot de passe pour l'utilisateur admin à créer. Par défaut : "vagrant"
  • env_name — Si ce serveur sera utilisé pour "développement", "production", etc. Par défaut : "dev"
  • install_mysql — Installer le serveur MySQL. Par défaut : non
  • install_mariadb — Installer le serveur MariaDB. Par défaut : non
  • install_percona — Installer le serveur Percona. Par défaut : non.
  • new_db_name — Nom de la base de données à créer. Par défaut : non défini (ignorer)
  • new_db_user — Nom d'utilisateur du nouvel utilisateur à créer. Par défaut : non défini (ignorer)
  • new_db_pass — Mot de passe du nouvel utilisateur à créer. Par défaut : non défini (ignorer)
  • new_db_priv — Privilèges à accorder au nouvel utilisateur. Par défaut : plein contrôle sur le serveur ou la base de données (si définie)
  • remove_root_user — Supprimer l'utilisateur root pendant l'installation. Par défaut : supprimer.
  • mysql_deb — URL du dépôt MySQL à ajouter à APT. Par défaut : "https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb"
  • mariadb_apt_key.trusty — Clé APT pour installer MariaDB sur Trusty Tahr. Par défaut : "0xcbcb082a1bb943db"
  • mariadb_apt_key.xenial — Clé APT pour installer MariaDB sur Xenial Xerus. Par défaut : "0xF1656F24C74CD1D8"
  • mariadb_version — Version de MariaDB à installer. Par défaut : "10.2"
  • mariadb_apt_mirror — Miroir pour télécharger MariaDB. Par défaut : "http://nyc2.mirrors.digitalocean.com"
  • percona_deb — URL du dépôt du serveur Percona à ajouter à APT. Par défaut : "https://repo.percona.com/apt/percona-release_0.1-4.{{ ansible_distribution_release }}_all.deb"
  • percona_version — Version du serveur Percona à installer. Par défaut : "5.7"
  • mysql_socket — Chemin vers le socket MySQL. Par défaut : "/var/run/mysqld/mysqld.sock"
  • mysql_enable_network — Écouter ou non les connexions réseau externes. Par défaut : non
  • mysql_sql_mode — Mode SQL à utiliser. Par défaut : "ANSI,TRADITIONAL"
  • mysql_max_connections — Nombre maximum de connexions autorisées. Par défaut : "300"
  • mysql_wait_timeout — Délai d'attente. Par défaut : "300"

Variables de réglage

MySQL a bien sûr de nombreux réglages pour ajuster ses performances et son utilisation des ressources. Ce rôle prend en charge la définition ou le calcul de quelques-uns des plus pertinents.

  • mysql_mem_percent — Pourcentage de la mémoire totale que MySQL doit utiliser. Ce n'est en aucun cas un plafond, c'est plutôt un objectif pour le calcul d'autres variables. Par défaut : "40"
  • innodb_buffer_pool_percent — Pourcentage de la mémoire de MySQL à utiliser pour le pool de mémoire InnoDB. Par défaut : "90"
  • innodb_buffer_pool_size — Montant total de mémoire à utiliser pour le pool de mémoire InnoDB. Par défaut : calculé sur la base de mysql_mem_percent et innodb_buffer_pool_percent
  • innodb_buffer_pool_chunk_size — Taille des chunks du pool de mémoire InnoDB. Par défaut : "128M"
  • mysql_key_buffer_percent — Pourcentage de la mémoire de MySQL à utiliser pour le buffer de clé. Par défaut : "40"
  • mysql_key_buffer_size — Montant total de mémoire à utiliser pour le buffer de clé MySQL. Par défaut : calculé sur la base de mysql_mem_percent et mysql_key_buffer_percent
  • mysql_max_heap_table_size — Taille maximale de la table heap. Par défaut : calculé sur la base de la mémoire totale
  • mysql_open_files_limit — Limite des fichiers ouverts. Par défaut : 32 par Mo de mémoire totale
  • mysql_tmp_table_size — Taille des tables temporaires. Par défaut : calculée sur la base de la mémoire totale

Variables de validation des mots de passe

Ce rôle vous permet de définir des exigences de validation des mots de passe pour votre serveur. Cette configuration est ignorée dans les environnements de développement.

  • mysql_password_policy — Politique de mot de passe MySQL. Par défaut : "MEDIUM" (ignoré dans MariaDB)
  • mysql_password_check_username — Vérifie si le mot de passe d'un utilisateur contient son nom d'utilisateur. Par défaut : "OFF" (ignoré dans MariaDB)
  • mysql_password_length — Exigences de longueur de mot de passe. Par défaut : "5"
  • mysql_password_mixed_case_count — Nombre de caractères de casse mélangée requis. Par défaut : "0"
  • mysql_password_number_count — Nombre de chiffres requis. Par défaut : "0"
  • mysql_password_special_char_count — Nombre de caractères non alphanumériques requis. Par défaut : "0"

Autres variables de réglage

  • innodb_io_capacity — Capacité IO InnoDB. Par défaut : "400"
  • innodb_log_buffer_size — Taille du buffer de journal InnoDB. Par défaut : "16M"
  • myisam_sort_buffer_size — Taille du buffer de tri MyISAM. Par défaut : "128M"
  • mysql_bulk_insert_buffer_size — Taille du buffer d'insertion en bloc. Par défaut : "16M"
  • mysql_max_allowed_packet — Taille maximale de paquet autorisée. Par défaut : "16M"
  • mysql_query_cache_type — Activer ou non le cache de requêtes MySQL. Par défaut : "ON"
  • mysql_query_cache_size — Taille du cache de requêtes. Par défaut : "32M" si le cache de requêtes est activé, sinon "0"
  • mysql_query_cache_limit — Limite de taille des requêtes pour le cache. Par défaut : "1M"
  • mysql_read_buffer_size — Taille du buffer de lecture. Par défaut : "2M"
  • mysql_read_rnd_buffer_size — Taille du buffer de lecture aléatoire. Par défaut : "2M"
  • mysql_sort_buffer_size — Taille du buffer de tri. Par défaut : "2M"
  • mysql_table_open_cache — Cache d'ouverture des tables. Par défaut : "2000"

Exemple de Playbook

Installer un service (MariaDB) :

- hosts: serveurs
  roles:
     - role: bbatsche.MySQL
       install_mariadb: oui

Créer un nouvel utilisateur (en supposant qu'un service soit déjà installé et en cours d'exécution) :

- hosts: serveurs
  roles:
     - role: bbatsche.MySQL
       new_db_user: mon_nouvel_utilisateur
       new_db_pass: n0tV3ry$ecuRe

Licence

MIT

Tests

Ce rôle comprend un ensemble de spécifications pour tester chaque tâche individuellement ou dans son ensemble. Pour exécuter ces tests, vous devez d'abord avoir Vagrant et VirtualBox installés. Les fichiers de spécifications sont écrits avec Serverspec, donc vous aurez besoin de Ruby et de Bundler.

Pour exécuter l'ensemble complet de spécifications :

$ gem install bundler
$ bundle install
$ rake

La suite de spécifications ciblera Ubuntu Trusty Tahr (14.04), Xenial Xerus (16.04) et Bionic Beaver (18.04).

Pour voir les tâches rake disponibles (et les spécifications) :

$ rake -T

Ces spécifications ne sont pas destinées à tester l'idempotence. Elles visent à vérifier que les tâches spécifiées effectuent les étapes attendues. L'idempotence est testée indépendamment via des tests d'intégration.

À propos du projet

Simple role for installing the default version of MySQL for Ubuntu

Installer
ansible-galaxy install bbatsche.MySQL
Licence
mit
Téléchargements
4.8k
Propriétaire