MySQL Installation mit Puppet

Ein einfacher Weg MySQL zu installieren ist mit Puppet. Die Argumente für und wider Puppet lassen wir an dieser Stelle beiseite. In einem anderen Beitrag werden wir mehrere MySQL Instanzen auf unterschiedlichen Ports auf einem Server installieren, um zum Beispiel die MySQL Replikation zu verstehen. Puppet bietet einen schönen Ansatz den Überblick zu behalten. Hier einige Beispiele mit Ubuntu 14.04 und Puppet 3.4.

Ubuntu

Installieren wird uns Puppet auf unserem Ubuntu Betriebssystem.

Puppet bietet selbst ein fertiges MySQL Puppet Module. Wir wollen dieses Module später verwenden.

Client & Server

Installieren wir uns ein MySQL Client und ein Server. Wir erstellen eine Datei client_server.pp mit dem folgenden Inhalt.

[github file = „https://github.com/schroedingerdb/die-datenbank/blob/master/mysql/installation/client_server.pp“ ]

In der Klassendeklartion sehen wir dass das Password für den root User root ist. Führen wir unsere Puppet Konfiguration aus.

Ein mögliche Ausgabe wäre diese:

Die Warnung in der ersten Zeile ignorieren wir, denn sie sagt uns lediglich dass puppet die Hiera defaults verwendet. Die wichtige Zeile ist die letzte. Testen wir ob der user und das password funktioniert.

Nach der Eingabe des Passworts root sind wir mit der Datenbank verbunden. Eine mögliche Ausgabe wäre diese:

Wir sind nun in der Lage ein Client und Server zu installieren. Wenn der Server von Außen erreichbar sein soll, dann müssen wir einen Parameter ändern.

Server Konfiguration

Der Server lässt mit Puppet ebenfalls beliebig konfigurieren. Um das zu demonstrieren wollen wir den Server aus dem letzten Abschnitt nach Außen erreichbar machen. Wir wollen uns zum Beispiel mit der MySQL Workbench oder einem anderen Client verbinden. Versuchen wir uns von einem anderen Computer aus auf den MySQL Server zu verbinden, folgt die Meldung: Can’t connect to MySQL server on ’schroedingerdb‘ (10061). Bevor wir den passenden Parameter ändern, schauen wir uns noch vorher die aktuelle my.cnf an.

Die aktuelle Konfiguration sieht so aus:

Das sind viele Parameter. Der für uns wichtige ist bind-address. Er ist im Moment so eingestellt dass die Datenbank nur auf localhost, also auf 127.0.0.1 hört. Nicht nur die gesamte Datenbank sondern auch den Datenbankbenutzern kann der Zugang von Außen verboten werden. Die Standardeinstellung des root users ist ebenfalls auf localhost gestellt. In Puppet ändern wir nun beides in einer Puppet Konfiguration open_server.pp.

Führen wir Puppet aus:

Der Paramter bind-address hat sich dadurch in der MySQL Konfiguration /etc/mysql/my.cnf geändert und der root user hat nun Zugang auch von Außen. Die Verbindung mit der MySQL Workbench oder einem PHP Client funktioniert nun.

Ein wichtiger Hinweis noch: diese Konfiguration sollte nicht für ein Produktivsystem verwendet werden. Der root user darf von Außen nicht auf die Datenbank kommen.

 

 

Schreibe einen Kommentar

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