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" (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
Install and configure Mariadb server on Rhel/CentOS, Debian and Ubuntu ditributions
ansible-galaxy install mahdi22.mariadb_install