mahdi22.mariadb_install

Ansible
Ansible
Galaxy

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" (voir mariadb_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
À propos du projet

Install and configure Mariadb server on Rhel/CentOS, Debian and Ubuntu ditributions

Installer
ansible-galaxy install mahdi22.mariadb_install
Licence
mit
Téléchargements
1.6k
Propriétaire