In meinem letzten Beitrag habe ich alle notwendigen Schritte zur Installation und Konfiguration von RabbitMQ auf CentOS 6.2 durchgeführt. Ich habe das auf die altmodische Art gemacht, indem ich die Kommandozeile benutzt und alles Schritt für Schritt eingegeben habe.
Wenn ich RabbitMQ auf einer neuen Box installieren würde, müsste ich alles noch einmal machen.
Großartige Zeiten, in denen wir leben! Es gibt Mechanismen, die diese Schritte vollständig automatisieren. Ich habe bereits über Puppet in einem anderen Blogbeitrag geschrieben, und heute werden wir dieses Wissen nutzen, um eine Puppet-Konfiguration für RabbitMQ zu erstellen. Also, los geht’s.
Ich habe auch ein Projekt erstellt, in dem ich ab jetzt die gesamte Konfiguration aufbewahren werde. Hole es mit
git clone git@github.com:tobias-wissmueller/dev_ops_central.git
cd dev_ops_central
Fügen wir zuerst deine Box hinzu, falls du sie nicht mehr hast.
vagrant box add dev_ops_central_box <path_to_your_box>/package.box
Setze die Berechtigungen für den SSH-Schlüssel und starte die Box.
chmod 0600 id_rsa.vagrant
vagrant up
vagrant ssh
Erstelle in deiner Box die folgende Verzeichnis- und Dateistruktur im Verzeichnis /vagrant.

Ich werde nicht den Inhalt aller Dateien auflisten, sondern dich stattdessen auf mein Repository für dieses Projekt auf GitHub verweisen, wo du das komplette Setup bekommen kannst. Wenn du mein Repository bereits geklont hast, solltest du alles auf deiner lokalen Maschine haben. Da ich an diesem Branch weiterarbeiten werde und du die gleiche Version haben möchtest, die ich nach diesem Beitrag committe, beachte, dass ich den Commit mit dem Label ‘managing_rabbitmq_with_puppet’ getaggt habe.
Gehe jetzt als root in /etc/puppet und entferne das manifests-Verzeichnis
sudo bash
cd /etc/puppet
rm -rf manifests/
Erstelle nun einige symbolische Links zu deiner Puppet-Konfiguration.
ln -s /vagrant/manifests
ln -s /vagrant/modules
Auch hier haben wir es mit einem Brownfield zu tun. Das Entfernen dieses Verzeichnisses und das Erstellen dieser symbolischen Links hätte vor dem Verpacken der Box erledigt werden sollen, aber wir könnten das natürlich auch mit Puppet machen.
Lass uns fortfahren und alles zu unserer Konfiguration hinzufügen, was wir für RabbitMQ brauchen. Diesmal geht mein Dank an Rob Harrop von First Banco, der einen ausgezeichneten Beitrag mit dem Titel “Automating Development VMs with Vagrant and Puppet” geschrieben hat. Ja, das ist der gleiche Ansatz, den ich hier verfolge, aber ich muss es selbst machen und darüber schreiben, um ein tieferes Verständnis zu erlangen.
Ich habe die gesamte Konfiguration genommen und hier und da ein paar Versionsnummern geändert. Danach habe ich den Bereitstellungsprozess ausgelöst mit
puppet apply --verbose manifests/site.pp
Zusätzlich habe ich die Firewall gestoppt mit
/etc/init.d/iptables stop
Ich habe das auch in meine Puppet-Konfiguration aufgenommen, also wenn du meinen Code verwendest, musst du den obigen Befehl nicht ausführen.
Wie in meinem letzten Beitrag habe ich das gesamte Setup überprüft, indem ich den Browser von meinem Host-System auf das RabbitMQ Management Center auf meiner Vagrant-Box gerichtet habe, mit der folgenden URL: http://localhost:55672 und mich mit Benutzername guest und Passwort guest angemeldet habe.
Was ich hier nicht machen werde, ist die SSL-Konfiguration. Das hebe ich mir für ein anderes Mal auf, da ich dafür keine unmittelbare Verwendung habe.
Wir sind jetzt einen Schritt weiter bei der Automatisierung unserer Infrastruktur. Wenn wir etwas kaputt machen, können wir unsere Box zerstören und neu aufbauen, und alles wird wieder in Ordnung sein. Probier es aus und verlasse deine Box, dann führe folgendes aus
vagrant destroy && vagrant up
Das wird eine Weile dauern. In der Zwischenzeit mach dir einen Kaffee, und wenn du zurückkommst, wartet eine frische Box auf dich.
Fertig für heute!