mahdi22.mariadb_install
Ansible-Rolle mariadb_install
Eine Ansible-Rolle zur Installation und Absicherung von MariaDB auf RHEL/CentOS (7,8), Debian (9,10) und Ubuntu (20.04, 19.10, 18.04, 16.04) Distributionen. Die Aufgaben dieser Rolle sind:
- Installation von MariaDB-Paketen aus den offiziellen MariaDB-Repositories
- Konfiguration des MariaDB-Servers
- Setzen des Root-Passworts für die Datenbank
- Entfernen anonymer Benutzer
- Entfernen der Testdatenbank
- Entfernen der Remote-Verbindung für Root
- Erstellen einer Datenbank
- Erstellen eines Datenbankbenutzers
- Importieren von Dateien/*.sql-Skripten in die Datenbank
Installation
$ ansible-galaxy install mahdi22.mariadb_install
Rollenvariablen
Grundkonfiguration
Variable | Standard | Bemerkungen |
---|---|---|
mariadb_version |
'10.4' | Setzen Sie die MariaDB-Version: - v(10.5, 10.4, 10.3) für RHEL/CentOS 8, Debian 10, Ubuntu 20.04, 19.10. - v(10.5, 10.4, 10.3, 10.2, 10.1) für RHEL/CentOS 7, Debian 9, Ubuntu 18.04, 16.04 |
bind-address |
'127.0.0.1' | Setzen Sie die IP-Adresse der Netzwerkschnittstelle, auf die zugehört werden soll, oder '0.0.0.0', um auf allen Schnittstellen zu hören. |
configure_swappiness |
'True' | Wenn True , wird dieser Wert auf "swappiness" gesetzt (siehe mariadb_swappiness ). |
create_database |
'False' | Setzen Sie create_database: True, um eine Datenbank zu erstellen. |
database |
'' | Setzen Sie den Namen der Datenbank. Sollte mit create_database: true verwendet werden. |
port |
3306 | Die Portnummer, die zur Annahme von Clientanfragen verwendet wird |
mysql_root_password |
'azerty' | Setzen Sie das Root-Passwort für MariaDB |
mariadb_service |
mariadb | Name des Dienstes |
swappiness |
'10' | "Swappiness"-Wert (String). Der Systemstandard liegt bei 60. Ein Wert von 0 bedeutet, dass das Auslagern von Prozessen vermieden wird. |
create_db_user |
'False' | Setzen Sie create_db_user: True, um einen Datenbankbenutzer zu erstellen. |
db_user_name |
'' | Setzen Sie den Benutzer, der hinzugefügt werden soll. Sollte mit create_database: true, create_db_user: true und definiertem database verwendet werden. |
db_user_password |
'' | Setzen Sie das Passwort für den Datenbankbenutzer. |
privileges |
'ALL' | Setzen Sie die Berechtigungen für den Datenbankbenutzer. |
mariadb_logrotate: rotate |
'7' | Setzen Sie die Anzahl der Logrotate von MariaDB. |
mariadb_logrotate: rotation |
'daily' | Setzen Sie die Häufigkeit des Logrotate von MariaDB. |
use_proxy |
'False' | Setzen Sie diese Variable auf True, wenn die verwalteten Hosts hinter einem Web-Proxy stehen... Standard ist False. |
import_sql_file |
'False' | Setzen Sie diese Variable auf True, um SQL-Dateien in die Datenbanken zu importieren... Standard ist False. |
sql_file_name |
'[]' | Liste der SQL-Dateinamen, die in Datenbanken importiert werden sollen (ein oder mehrere Dateien)... Diese Variable sollte definiert werden, wenn import_sql_file true ist. |
Anmerkungen
(1) Um die Remote-Verbindung für den MySQL-Root-Benutzer zu entfernen, setzen Sie den Parameter deny_remote_connections: true. Zum Beispiel: defaults/main.yml
deny_remote_connections: true
(2) Es wird dringend empfohlen, das Root-Passwort für die Datenbank zu setzen! Ein leeres Passwort ist ein Sicherheitsrisiko. Die Rolle gibt eine Warnung aus, wenn die Variable nicht gesetzt wurde. Standardpasswort "azerty" defaults/main.yml
mysql_root_password: 'azerty'
(3) Um SQL-Skripte in Datenbanken zu importieren, setzen Sie import_sql_file: true, definieren Sie sql_file_name und legen Sie Ihre SQL-Skripte im Verzeichnis files (mahdi22.mariadb_install/files/) ab. Beispielsweise: defaults/main.yml
import_sql_file: true
sql_file_name:
- sqlscript1.sql
- sqlscript2.sql
- sqlscriptN.sql
Beispiel-Playbook
Beispiel-Playbook zur Ausführung der Rolle mit den Standardparametern und -variablen
- hosts: mariadb
roles:
- role: mahdi22.mariadb_install
become: yes
Beispiel-Playbook zur Ausführung der Rolle unter Verwendung einiger Variablen
- 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
Beispiel-Playbook zur Ausführung der Rolle unter Verwendung eines Web-Proxys
- 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/
Beispiel-Playbook zur Ausführung der Rolle mit Import von SQL-Skripten
- 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
Testen
Diese Rolle wurde auf folgenden Linux-Distributionen getestet:
- 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