Ready for Enterprise

Zend Server via Puppet konfigurieren
Kommentare

Wer seine PHP-Applikationen selbst betreibt, kennt das Problem: Der Quellcode ist dank Versionsverwaltung, z. B. SVN, perfekt unter Kontrolle. Dank Paketmanagement und geordnetem Build-Prozess wird die Anwendung nachvollziehbar installiert. Wie sieht es jedoch mit der Gesamtkonfiguration des Systems aus? Diese ist meistens in keinem wirklich nachvollziehbaren Zustand. Knifflig wird es, wenn gleich mehrere Server verwaltet werden müssen. Hier leistet das Konfigurations- und Provisioning-Framework Puppet ganze Arbeit und stellt die Nachvollziehbarkeit sicher.

Die Konfiguration eines Systems, sei es nur ein Entwicklungssystem, ein Test- oder auch Produktivsystem, nachvollziehbar und wiederherstellbar zu verwalten, kann mittels genauer Dokumentation gut abgedeckt werden. Man schreibt sich einfach jeden Eingriff in das System genau auf und falls ein anderes System genau gleich konfiguriert werden soll, dann nimmt man die Dokumentation und arbeitet sie ab. Wenn da bloß das Problem mit der Disziplin nicht wäre. Schnell ist ein Detail übersehen und noch schneller ist eine Anpassung an der Konfiguration einfach in der Eile nicht in die Doku eingeflossen. Noch schlimmer wird es, wenn mehr als eine Person für die Konfiguration von Systemen verantwortlich ist. Warum das Ganze nicht einfach umdrehen und aus der Dokumentation die Konfiguration automatisch auf ein oder dann eben x Systemen applizieren? Genau diesen Ansatz verfolgt Puppet. In diesem Artikel soll nach einer kurzen Einführung in Puppet ein Zend Server konfiguriert werden. Die so erarbeiteten Konfigurationsbeschreibungen können dann ganz einfach auf ein beliebiges System angewendet werden. Es muss sich dabei nicht einmal um die gleiche Distribution handeln. Puppet kennt viele Eigenheiten der verschiedenen Distributionen und kann diese abstrahieren.

Was ist Puppet?

Puppet ist eine deklarative Sprache, um Konfigurationen und Systemzustände zu beschreiben, eine Client-/Serverlösung, um diese Deklarationen zu verteilen und eine Funktionsbibliothek, die die deklarierte Konfiguration auf den Zielsystemen umsetzt. Puppet ist in Ruby umgesetzt und unterstützt demzufolge jede zu POSIX kompatible Plattform, die Ruby 1.8 ausführen kann. Genaueres zur Plattformunterstützung findet sich im Kasten: „Unterstützte Plattformen“. Der Ansatz von Puppet, ein System als eine Reihe von Diensten (Services), die sich wiederum aus einzelnen Komponenten zusammensetzen, zu beschreiben, ist gerade für Softwareentwickler einfacher umzusetzen, als sich Wissen über Sysadmin Tools anzueignen. Effektiv muss man auf seinem Zielsystem gar nicht mehr wissen, wie etwas eingerichtet wird. Man beschreibt den gewünschten Service und seine Komponenten, und Puppet erledigt das auf dem Zielsystem mit den richtigen Werkzeugen automatisch. Dieser Artikel stellt ein Praxisbeispiel vor, wie ein Zend Server lauffähig unter der Kontrolle von Puppet installiert und konfiguriert werden kann. Wer Spaß an der Sache findet und mehr über Puppet erfahren möchte, der kann sich via Trac alle nötigen Infos holen.

Unterstützte Plattformen

Puppet unterstützt alle POSIX-Systeme auf OS-Ebene. Jedoch sind viele Zusatztools, die sich um die jeweilige Systemkonfiguration kümmern, z. B. Paketmanager, sehr plattformspezifisch.

Folgende Liste zeigt den aktuellen Stand der erfolgreich getesteten und daher von Puppet unterstützten Plattformen:

  • CentOS 4/Linux 2.6 (x86_64, i386, VMWare ESX 32-bit)
  • CentOS 5/Linux 2.6 (athlon, i386, VMWare ESX 32-bit)
  • Darwin 8.9.1 (PowerPC, i386)
  • Debian 3.1 ’sarge’/Linux 2.6 (i386, amd64)
  • Debian 4.0 ‚etch’/Linux 2.6 (i386, xen686, amd64, powerpc)
  • Debian 5.0 ‚lenny’/Linux 2.6 (xen686, amd64)
  • Fedora Core 2 (i386)
  • Fedora Core 3 (i386)
  • Fedora Core 4 (i386)
  • Fedora Core 5 (i386)
  • Fedora Core 6 (i386)
  • Fedora 7 (i386/x86_64)
  • Fedora 8 (i386/x86_64)
  • Fedora 9 (i386/x86_64)
  • Fedora 10 (i386/x86_64)
  • Fedora 11 (i386/x86_64)
  • FreeBSD 4.7 (i386)
  • FreeBSD 6.0 (i386)
  • Gentoo Linux (x86_64)
  • Mandriva Corporate Server 4 (i586)
  • OpenBSD 4.1 (i386)
  • OpenBSD 4.2 (i386)
  • OpenBSD 4.3 (i386)
  • Oracle Linux 4 (x86_64)
  • RHEL 3 ES (VMWare ESX 32-bit)
  • RHEL 4 ES,AS (i386, x86_64)
  • RHEL 5 (i386, x86_64)
  • Sun Solaris 2.6 (i386, sparc)
  • Sun Solaris 7 (i386, sparc)
  • Sun Solaris 8 (i386, sparc)
  • Sun Solaris 9 (i386, sparc)
  • Sun Solaris 10 (i386, x86_64, sparc64)
  • SuSE Linux 8/Linux 2.4 (i386)
  • SuSE Linux Enterprise Desktop 10/Linux 2.6 (i586)
  • SuSE Linux Enterprise Server 10/Linux 2.6 (i586)
  • SuSE Linux Enterprise Server 9/Linux 2.6 (i586, x86_64)
  • Ubuntu 7.04 Feisty GNU/Linux 2.6 (i686, xen686)
  • Ubuntu 7.10 Gutsy GNU/Linux 2.6 (i686, xen686)
  • Ubuntu 8.04 Hardy GNU/Linux 2.6 (i686, xen686)
  • Ubuntu 8.10 Intrepid GNU/Linux 2.6 (i686, xen686)
  • Ubuntu 9.04 Jaunty GNU/Linux 2.6 (i686, xen686)

 

Vorraussetzungen

Wir gehen in unserem Beispiel von einer Basisinstallation von CentOS 5.3, das RHEL 5.3 entspricht, aus. CentOS gilt als sehr stabile und Enterprise-taugliche Linux-Distribution und ist daher der ideale Unterbau für den Zend Server. Die Installation muss keine besonderen Ansprüche erfüllen. Am besten installiert man einfach ein Basissystem ohne grafische Oberfläche. Wichtig ist, dass man entweder direkt oder via Proxy auf das Internet zugreifen kann. CentOS kann man kostenlos als x86_64- oder i386-Version downloaden. Um Puppet unter CentOS zu betreiben, benötigt man das EPEL Repository. Dieses stellt stabile Pakete aus der Fedora für CentOS zur Verfügung. Das EPEL Repository fügt man am einfachsten folgendermaßen hinzu:

su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm'

Jetzt kann Puppet einfach mit folgendem Befehl installiert werden:

yum clean metadata yum install puppet-server

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -