Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

Ansible – MariaDB Installation automatisieren

Veröffentlicht am 2. März 2018 von Christian Piazzi Hinterlasse ein Kommentar , Aktualisiert am 12. Februar 2019
Geschätzte Lesezeit: 1 Minute

Ansible - MariaDBZu einem LAMP Stack gehört auch immer eine Datenbank. Da wir uns in den letzten Artikel bereits angeschaut haben, wie man die Installation von Apache und php automatisiert, wollen wir uns heute mit der Ansible MariaDB Role beschäftigen.

Voraussetzung für dieses Tutorial ist eine Funktionsfähige Ansible Installation sowie eine ssh Zugriff auf das Zielsystem mit Ansible.

Ansible MariaDB Role – defaults/main.yml

Wir beginnen wieder mit dem festlegen der benötigten Variablen. Für die Ansible MariaDB Role brauchen wir nur eine Variable. In dieser wollen wir das root Passwort für die MariaDB Datenbank hinterlegen. Das ganze sieht dann wie folgt aus:

YAML
1
mariadb_root_password: dbpassword1!

Ansible MariaDB Role – tasks/main.yml

In der Konfiguration der MariaDB Rolle haben wir insgesamt vier Blöcke, die ich nun nacheinander vorstellen werden.

YAML
1
2
3
4
5
6
7
8
- name: MariaDB | install
  package:
    name: "{{ item }}"
    state: installed
  with_items:
    - mariadb-server
    - mariadb
    - MySQL-python

Im ersten Block installieren wir wie gewohnt einige notwendige Pakete für den MariaDB Server.

YAML
1
2
3
4
5
- name: Ensure service is started
  service:
    name: mariadb
    state: started
    enabled: yes

Nachdem die MariaDB Pakete installiert sind, starten wir MariaDB und aktivieren den automatischen Start der Datenbank bei einem Neustart des Systems.

1
2
3
4
5
6
- name: Check if root password is set
  shell: >
    mysqladmin -u root status
  changed_when: false
  failed_when: false
  register: root_pwd_check

Im dritten Block prüfen wir ob bereits ein Passwort für den root User gesetzt würde. Dies ist sinnvoll, damit das root Passwort nicht bei jeden Ansible lauf neu gesetzt wird. Das  Ergebnis hinterlegen wir in root_pwd_check.

1
2
3
4
5
6
7
- name: Set MariaDB root password for the first time
  mysql_user:
    name: root
    password: "{{ mariadb_root_password }}"
    host_all: yes
    state: present
  when: root_pwd_check.rc == 0

Im letzten Block setzten wir das Passwort für den root User, falls dieses noch nicht gesetzt wurde. Dafür prüfen wir auf die in im dritten Block erstelle Variable.

Testen der Ansible MariaDB Role

Um das ganze zu testen, lege ich in meiner site.yml eine entsprechende Gruppe für die MariaDB Role an. hier übergebe ich dann entsprechend das gewünschte root Passwort für die Datenbank.

YAML
1
2
3
4
5
6
- name: mariadb
  hosts: mariadb
  roles:
    - mariadb
  vars:
    - mariadb_root_password: 3eXfddF%7EP`b',G

Anschließend starten wir den ansible run wie gewohnt mit dem ansible-playbook Befehl. Das ganze sieht dann wie folgt aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ansible-playbook site.yml -i hosts
 
PLAY [mariadb] **********************************************************************************
 
TASK [Gathering Facts] **************************************************************************
ok: [192.168.10.90]
 
TASK [mariadb : MariaDB | install] **************************************************************
changed: [192.168.10.90] => (item=mariadb-server)
ok: [192.168.10.90] => (item=mariadb)
changed: [192.168.10.90] => (item=MySQL-python)
 
TASK [mariadb : Ensure service is started] ******************************************************
changed: [192.168.10.90]
 
TASK [mariadb : Check if root password is set] **************************************************
ok: [192.168.10.90]
 
TASK [mariadb : Set MariaDB root password for the first time] ***********************************
changed: [192.168.10.90]
 
PLAY RECAP **************************************************************************************
192.168.10.90              : ok=5    changed=3    unreachable=0    failed=0

Kategorie: Ansible Tags: Ansible, Automatisierung, Centos, Database, Datenbank, DevOps, mariaDB

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Neueste Kommentare

  • Prometheus Installation unter Ubuntu - Modius - Techblog bei Prometheus Installation unter CentOS
  • Rainer bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2025 · Outreach Pro on Genesis Framework · WordPress · Anmelden