Ein Kunde benötigte kürzlich Unterstützung bei der Automatisierung seiner PostgreSQL-Installation mit Ansible. EDBs edb-ansible Collection bietet alle erforderlichen Funktionen und wurde von mir verwendet, um die benötigten Playbooks bereitzustellen. Zunächst musste ich mich mit einem Problem auseinandersetzen: Mein Notebook läuft unter Windows 10. Daher beschloss ich, mich mit einer kleinen Linux-VM zu behelfen, die mit Vagrant und Virtualbox erstellt wurde. In diesem Blogbeitrag möchte ich die Schritte zeigen, die implementiert werden, um eine sofort einsatzbereite Umgebung zu haben.
Das Vagrantfile
mit dem Bootstrap-Skript ist in meinem Github Repository verfügbar.
Vagrant VM-Konfiguration
Zunächst beginne ich mit der VM und ihrer Konfiguration im Vagrantfile
. Die Datei hat sich im Laufe der Zeit weiterentwickelt und bietet die Möglichkeit, mehrere VMs zu erstellen. In diesem Fall benötige ich nur eine VM, die server8
genannt wird, Ubuntu ausführt und 3 CPU-Kerne, 8 GB RAM und eine statische IP-Adresse verwendet.
Aus Komfortgründen werden zwei Vagrant-Plugins verwendet. vagrant-vbguest installiert automatisch die VirtualBox Guest Additions und vagrant-hostmanager modifiziert die hosts
-Datei des Hosts und der VM, um die Auflösung von Multi-Machine-Umgebungen zu ermöglichen.
Der Rest des Skripts durchläuft alle konfigurierten VMs, in diesem Fall nur einmal, und stellt die VM bereit. Ein gemeinsamer Satz von Konfigurationsoptionen wird immer verwendet, z.B. USB deaktivieren.
Das Bootstrap-Skript wird am Ende der Datei aufgerufen. Es kapselt die benutzerdefinierten Anwendungen ein, die für dieses kleine Projekt installiert werden sollen.
Bootstrap-Skript
Lassen Sie uns die Details des Bootstrap-Skripts betrachten, das lediglich ein Bash-Skript ist. Zunächst wird die Liste aller verfügbaren Pakete aktualisiert und anschließend werden alle installierten Pakete aktualisiert.
Basierend auf der Docker-Dokumentation wird das Convenience-Skript ausgeführt, um Docker zu installieren. Der Benutzer vagrant
wird der Gruppe docker
hinzugefügt, um Container ausführen zu können.
Der nächste Codeblock stellt sicher, dass die neueste Version des Docker Compose Plugins installiert wird. Dies ist eine Voraussetzung, um die Tests für die edb-ansible
Collection durchzuführen.
Schließlich werden die Pakete make, Git-Client, Pip für Python3 und Ansible installiert.
Führen Sie den Befehl vagrant up
aus und stellen Sie die VM bereit. Verbinden Sie sich per SSH mit der VM mit dem Standard-Vagrant-SSH-Schlüssel oder verwenden Sie vagrant ssh
.
Ansible Collection-Test
Das edb-ansible
Repository enthält die Dokumentation für Entwicklung und Tests.
Die folgenden Schritte dienen nur zur Überprüfung, ob die VM funktioniert.
Erstellen Sie eine lokale Collection-Zip-Datei mit make
.
Wechseln Sie in das Testverzeichnis und installieren Sie die Anforderungen mit Pip.
Die verschiedenen Rollen erfordern entweder ein kostenloses Konto für das EDB-Repository oder verwenden das Repository der Postgres Development Group.
In diesem Beispiel wird das EDB-Repository verwendet, um den Testfall zur Initialisierung eines Clusters auf Ubuntu 20 auszuführen. In der Testdokumentation finden Sie eine vollständige Liste der Funktionen und wie Sie testen können.
Überprüfen Sie die Protokollausgabe, um einen erfolgreichen Durchlauf zu bestätigen.
Im Falle eines Fehlers, bereinigen Sie den fehlgeschlagenen Test oder beginnen Sie mit der Fehlersuche.
Sie sind jetzt bereit, zur edb-ansible
-Collection beizutragen.