Suche

Einweg-VM zur Runtime erstellen

Natürlich lassen sich mit Puppet auch komplexere Kalibrierungen durchführen. Das folgende Script installiert und startet Apache2:

class apache {
  exec { 'apt-get update':
    command => '/usr/bin/apt-get update'
  }
  package { "apache2":
    ensure => present,
  }
  service { "apache2":
    ensure => running,
    require => Package["apache2"],
  }
}
include apache

Wie man in dem Script sehen kann, ist es in Puppet möglich, einzelne Komponenten in Klassen zu kapseln und dem aktuellen Skript hinzuzufügen. Hierdurch lassen sich auch komplette Module in Puppet erstellen, die man in verschiedenen Skripten nutzen kann. Für bekannte Tools findet man im Internet eine ganze Fülle an fertigen Modulen, die man nur im eigenem Puppet-Skript inkludieren muss, um so beispielsweise schnell eine laufende MongoDB zu erhalten. Puppet Labs, die Entwickler von Puppet, bieten unter http://forge.puppetlabs.com ein eigenes Repository an, in dem es mittlerweile bereits über 600 fertige Module gibt. Will man sich selber intensiver mit Puppet auseinandersetzen, empfiehlt sich neben der Online-Dokumentation unter http://docs.puppetlabs.com/learning/ auch die Lektüre eines der vorhandenen Bücher zu Puppet (Ich selber kann „Pulling Strings With Puppet“ empfehlen).

Durch die Verbindung von Vagrant und Puppet kann man nun virtuelle Systeme definieren, die jederzeit „on the fly“ neu aufgesetzt oder zerstört werden und zum Beispiel als ApplicationServer oder Datenbank-System zur Entwicklung einer Anwendung dienen können. Dieser Ansatz ist besonders interessant für kleine Teams oder einzelne Entwickler, die keinen Zugriff auf eine große und kostspielige Serverlandschaft haben. Auch Systeme zum Testen von neuen Tools oder Technologien sind schnell aufgesetzt und schwerwiegende Fehler in der Anfangszeit, die z.B. den Datenbankserver komplett zerstören, kein Problem mehr. Die virtualisierte Umgebung ist in wenigen Minuten neu hochgezogen.

Diese Beschreibung der Features von Vagrant und Puppet kratzt natürlich nur an der Oberfläche. Beide Tools verfügen über deutlich mehr Funktionen. So ist es in Vagrant problemlos möglich, ganze Umgebungen von mehreren VMs zu managen oder eigene Boxen als Templates zu erstellen.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.