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
Über das Projekt

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

Installieren
ansible-galaxy install mahdi22.mariadb_install
Lizenz
mit
Downloads
1.6k
Besitzer