Lokale Puppet-Entwicklung mit Geppetto und VMware

Dieser Artikel beschreibt die lokale Entwicklungsumgebung und Workflow, die ich für die Entwicklung und Erprobung Multi-System-Konfigurationen, die von Puppet verwaltet werden. VMWare Workstation wird verwendet, um lokale Puppet Master-und Test-Knoten mit '/ etc / puppet "auf der Meister Geppetto Workstation auf meinem lokalen Computer zugeordnet laufen.

Ziele

Effektive und effiziente Entwicklung von Puppet-konfigurierten Systemen erfordert häufige Integration und Tests: die Puppet Code, den Sie schreiben, sollte sofort auf einem Puppet Master zu erscheinen und den verschiedenen Knoten mit einem Testsystem angewendet werden.

Wie es funktioniert

Windows als ich meinen lokalen Workstation. Die Puppet Manifeste werden in einem Code-Repository gespeichert, wie Subversion oder Git. Geppetto ist der IDE. VMware Workstation bietet virtuelle Server für einen lokalen Puppet Master und einem oder mehreren Tests Knoten, die eine Multi-Computer-System-Konfiguration zu simulieren.

Mit Geppetto, der Puppet-Code wird in einen lokalen Arbeitsbereich auf meinem Windows-Workstation überprüft. VMware Workstation macht diese "Geppetto Workspace" stehen dem Puppet Master virtuellen Server. Diese Montage wird "nur lesen", als persönliche Präferenz. Ich Softlink die "/ etc / puppet 'Verzeichnis auf dem Puppet Master, dies eingebundenen Dateisystem.

Jegliche Änderungen am Code, dass ich jetzt machen mit dem Geppetto Redakteur wird sofort auf dem lokalen Puppet Master erscheinen. Beachten Sie, dass ich noch nicht in jedem Code geprüft. All dieser Entwicklungsarbeit ist lokal auf meinem Arbeitsplatz.

Regression und Funktionsprüfung durch die Auslösung der Puppet-Agenten auf den verschiedenen Test-Nodes getan. Ich häufig wieder ein Test Node zu einer Basis Snapshot, um die Puppet manifest gründlich testen.

Bei diesem Ansatz, der Kodex-Prüfzyklus ist schnell und gibt mehr Sicherheit, dass der Code, den ich schließlich in Check wird sowohl in einer Bare-Metal-Szenario sowie inkrementellen Patch auf einem bereits laufenden Umfeld erfolgreich.

Nach dem Check in, der Code zu einem QA Umwelt und schließlich die Produktion Servern bereitgestellt.

Wie bauen Sie

VMware Ordnerfreigabe ist die einzige schwierigste Schritt bei der Erreichung dieses lokalen Entwicklungsumgebung. Hier ist, wie es zu tun.

Erstelle einen Virtual Server auf den lokalen Puppet Master sein

Erstelle ich eine Debian-basierte virtuelle Maschine, die als Puppet Master verwenden. Generieren des Puppet Katalog ist arbeitsspeicherintensiven, so dass ich dafür mehr als genug Speicher, 2GB.

Konfigurieren Geppetto Local Workspace
Enable "Folder Sharing" in the Options tab for the Puppet master virtual machine.

Ermöglichen "Ordner Freigabe" in der Registerkarte Optionen für die Puppet Master virtuellen Maschine.

The Puppet-Repository wird von Geppetto zu einem lokalen Arbeitsbereich ausgecheckt auf der Workstation. Dieses Verzeichnis wird in der nächsten Stufe verwendet werden,, Einrichten Ordnerfreigabe.

Aktivieren Ordner Sharing auf VMworkstation

Aktivieren Ordner Freigabe in der Registerkarte Optionen für die Puppet Master virtuelle Maschine und wählen Sie den gleichen Ordner wie von Geppetto verwendet werden, wenn sie ihre lokalen Code-Repository Arbeitsbereich erzeugt.

Installieren von VMware Tools in Puppet Master Virtual Machine

Beim Starten des Puppet Master virtuellen Maschine, Sie werden die Erinnerung Meldung siehe unten:

VMware Reminder Message to Install Tools in Guest OS

VMware Reminder Nachricht an Werkzeuge in Guest OS installieren

Montieren Sie das CD-Rom-Laufwerk mit "mount / dev / cdrom / 'Befehl von innerhalb des Gast, extrahieren Sie die VMwareTools Archiv und führen Sie dann das '/ vmware-install.pl.' Befehl.

Wenn Sie die Fehlermeldung unten, dann müssen Sie zusätzliche Schritte zu ergreifen, um zu installieren machen, gcc und die Kernel-Header für den Gast.

Required Packages Preventing the Installation of VMware Tools.

Benötigte Pakete zur Verhütung der Installation der VMware Tools.

Unter Debian diese Pakete installiert sind mit dem Befehl:

aptitude install gcc libglib2.0-0 make linux-headers-`uname-r`-y

Bei der Verwendung von VMware Workstation 7, Sie müssen möglicherweise den vollständigen Pfad zum gcc-4.3 Paket angeben, wie unten gezeigt:

Specifying the full path to gcc-4.3: /usr/bin/gcc-4.3 in Debian.

Die Angabe der vollständigen Pfad zu gcc-4.3: /usr/bin/gcc-4.3 in Debian.

Ebenfalls, Sie müssen manuell den Speicherort der Kernel-Header. In meiner virtuellen Maschine, sie werden in '/ usr/src/linux-headers-2.6.32-5-686/include' befindet. Das wird anders sein für Ihren Computer:

KernelHeaders

Lage von Kernel-Header

Die VMware Tools sollte jetzt kompilieren und zeigt die Erfolgsmeldungen unten:

Successful Compilation of VMware Tools.

Erfolgreiche Compilation von VMware Tools.

Linking / etc / puppet montiert Filesystem

Damit der Puppet Master, um die Module auf dem freigegebenen Ordner gespeichert nutzen, der einfachste Ansatz ist, um das Verzeichnis "/ etc / puppet" mit einem Softlink auf die eingebundenen Dateisystem ersetzen, wie in der Befehlszeile unten:

Replacing the Puppet Directory with a Softlink to the Mounted Filesystem.

Austauschen der Puppet-Verzeichnis mit einem Softlink dem eingehängten Dateisystem.

Wir können nun bestätigen, dass der "/ etc / puppet 'Verzeichnis auf dem Puppet Master virtuelle Maschine ist ein Nur-Lese-Montage des Geppetto Arbeitsbereich auf dem lokalen Arbeitsplatz, wie durch den Test unten:

Testing the Setup

Testen Sie das Setup

18. Juni, 2013 Posted by Jon Jaroker Abgelegt in: Puppet Workflows