mahdi22.mariadb_install
Rôle Ansible mariadb_install
Un rôle Ansible pour installer et sécuriser MariaDB sur les distributions RHEL/CentOS (7, 8) et Debian (9, 10) ainsi que sur Ubuntu (20.04, 19.10, 18.04, 16.04). Plus précisément, les responsabilités de ce rôle sont :
- Installer les paquets MariaDB à partir des dépôts officiels de MariaDB
- Configurer le serveur MariaDB
- Définir le mot de passe de l'utilisateur root de la base de données
- Supprimer les utilisateurs anonymes
- Supprimer la base de test
- Supprimer les connexions à distance pour l'utilisateur root
- Créer une base de données
- Créer un utilisateur de base de données
- Importer des fichiers/*.sql dans la base de données
Installation
$ ansible-galaxy install mahdi22.mariadb_install  
Variables du rôle
Configuration de base
| Variable | Par défaut | Commentaires | 
|---|---|---|
| mariadb_version | '10.4' | Définir la version de 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' | Définir ceci sur l'adresse IP de l'interface réseau sur laquelle écouter, ou '0.0.0.0' pour écouter sur toutes les interfaces. | 
| configure_swappiness | 'True' | Lorsque True, ce rôle définira la valeur de "swappiness" (voirmariadb_swappiness). | 
| create_database | 'False' | Définir create_database : True pour créer une base de données. | 
| database | '' | Définir le nom de la base de données. Doit être utilisé avec create_database : true | 
| port | 3306 | Le numéro de port utilisé pour écouter les requêtes des clients | 
| mysql_root_password | 'azerty' | Définir le mot de passe root de MariaDB | 
| mariadb_service | mariadb | Nom du service | 
| swappiness | '10' | Valeur de "Swappiness" (chaîne). La valeur par défaut est 60. Une valeur de 0 signifie qu'il est évité de remplacer des processus. | 
| create_db_user | 'False' | Définir create_db_user : True pour créer un utilisateur de base de données. | 
| db_user_name | '' | Définir l'utilisateur à ajouter. Doit être utilisé avec create_database : true, create_db_user : true et base de données définie | 
| db_user_password | '' | Définir le mot de passe de l'utilisateur de la base de données. | 
| privileges | 'ALL' | Définir les privilèges de l'utilisateur de la base de données. | 
| mariadb_logrotate: rotate | '7' | Définir le nombre de rotations de logrotate pour MariaDB. | 
| mariadb_logrotate: rotation | 'daily' | Définir la rotation de logrotate pour MariaDB. | 
| use_proxy | 'False' | Définir cette variable sur True si les hôtes gérés sont derrière un proxy web... par défaut False | 
| import_sql_file | 'False' | Définir cette variable sur True pour importer des fichiers sql dans les bases de données... par défaut False | 
| sql_file_name | '[]' | Liste des noms de fichiers sql à importer dans les bases de données (un fichier ou plusieurs)... Cette variable doit être définie si import_sql_file est vrai | 
Remarques
(1) Pour supprimer la connexion à distance pour l'utilisateur root de MySQL, définissez le paramètre deny_remote_connections : true. Par exemple :
defaults/main.yml  
deny_remote_connections: true  
(2) Il est fortement recommandé de définir le mot de passe root de la base de données ! Laisser le mot de passe vide est un risque pour la sécurité. Le rôle émettra un avertissement si la variable n'est pas définie. Mot de passe par défaut "azerty"
defaults/main.yml  
mysql_root_password: 'azerty'  
(3) Pour importer un script sql dans les bases de données, définissez import_sql_file : true, définissez sql_file_name et mettez vos scripts sql dans le répertoire files (mahdi22.mariadb_install/files/). Par exemple :
defaults/main.yml  
import_sql_file: true  
sql_file_name:  
    - sqlscript1.sql  
    - sqlscript2.sql  
    - sqlscriptN.sql  
Exemple de Playbook
Exemple de playbook pour exécuter le rôle en utilisant les paramètres et variables par défaut
- hosts: mariadb  
  roles:  
    - role: mahdi22.mariadb_install  
      become: yes  
Exemple de playbook pour exécuter le rôle en utilisant certaines variables
- 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  
Exemple de playbook pour exécuter le rôle en utilisant un proxy Web
- 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/  
Exemple de playbook pour exécuter le rôle avec importation de script 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  
Tests
Ce rôle est testé sur les distributions 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.mariadb_install