olly - Fotolia

Manifest-Dateien für den Einstieg in die Konfigurationsverwaltung mit Puppet

Puppet dient der Konfigurationsverwaltung und bietet einen leichten Einstieg. Diese Beispiele zeigen den Umgang mit ersten Manifest-Dateien.

Puppet gehört zu den populärsten Tools zur Konfigurationsverwaltung, woran sicher auch der einfache Einstieg seinen Anteil hat. Auf diese Weise sind auch die ersten Schritte in Puppet-Testumgebungen sehr einfach.

Die grundlegende Puppet-Architektur sieht einen Master und mehrere Agents auf CentOS 7.3 vor. Für eine Testumgebung können Master- und Agent-Rollen auf einem Computer installiert werden, in einer realen Umgebung würde man Master und mehrere Puppet-Agents natürlich auf unterschiedlichen Nodes installieren.

Installation einer Puppet-Testumgebung

Als erster Schritt sollte zunächst die Installation der Puppet-Software durchgeführt werden. In manchen Linux-Versionen ist Puppet allerdings auch bereits enthalten. Für CentOS empfiehlt sich die Installation der zusätzlichen Pakete des EPEL-Repository (Enterprise Linux), die zwar offiziell nicht unterstützt werden, aber doch sehr bequeme Funktionen bereitstellen. Hierfür wird der Befehl yum install -y epel-release ausgeführt. Als nächstes wird über yum -y install puppet Puppet installiert. Damit wird die kostenfreie Open-Source-Version von Puppet installiert, nicht die Enterprise-Version mit kostenpflichtigem Support.

Nach der Puppet-Installation kann bereits mit dem Erstellen von Manifest-Dateien begonnen werden. Puppet nutzt zur Definition eines gewünschten Zielzustandes eine deklarative Sprache, die in einer Manifest-Datei dargelegt wird. Dabei werden unterschiedliche Bereiche typischerweise über unterschiedliche Manifest-Dateien verwaltet. Ein Beispiel hierfür wäre das Anlegen eines Anwenders. Um einen ersten Testfall durchzuspielen, kann eine Manifest-Datei mit dem Namen adduser.pp angelegt werden, die folgenden Inhalt hat:

 user { 'linda':

  ensure => 'present',

  home => '/home/linda',

  shell => '/bin/bash',

}

Nachdem diese Datei erstellt wurde, kann sie über den Befehl puppet apply adduser.pp angewendet werden. Anschließend sollte man als Ausgabe des Befehls in etwa das Folgende sehen:

[root@server3 ~]# puppet apply adduser.pp

Notice: Compiled catalog for server3.example.com in environment production in 0.09 seconds

Notice: /Stage[main]/Main/User[linda]/ensure: created

Notice: Finished catalog run in 0.04 seconds

Weitere Artikel zu Puppet:

Überblick über die Konfigurationsverwaltung mit Puppet

Die Rolle von Puppet in Red-Hat-Umgebungen nach der Ansible-Übernahme

Master und Node: Überblick über die Puppet-Architektur

Nun kann über den Befehl getent passwd linda verifiziert werden, dass der Nutzer auch tatsächlich angelegt wurde. Gibt man allerdings ls -l /home/linda ein, dann stellt man fest, dass das Verzeichnis nicht vorhanden ist. Über das Puppet-Manifest wurde lediglich der Nutzer mit einem eigenen Dateibereich angelegt. Puppet ist aber leider nicht schlau genug, auch gleich ein Home-Verzeichnis für den neuen Nutzer anzulegen. Dies kann aber dem vorher angelegten Manifest problemlos hinzugefügt werden:

file { '/home/linda':

  ensure => 'directory',

  owner => 'linda',

  group => 'linda'

  mode => '770',

  require => User['linda'],

}

Führt man anschließend den Befehl puppet apply adduser.pp erneut aus, wird der neue Anwender korrekt mit Home-Verzeichnis angelegt. Um eine Liste möglicher Ressourcen zur Verwaltung zu erhalten, kann der Befehl puppet resource --type angewendet werden, woraufhin eine lange Liste aller möglicher Ressourcentypen angezeigt werden sollte.

Service-Ressourcen mit Puppet verwalten

Service-Ressourcen gehören zu den interessantesten Puppet-Optionen und ermöglichen die Verwaltung unterschiedlichster Services eines Computers. Um sich mit Service-Ressourcen vertraut zu machen, kann zunächst der Befehl puppet resource service sshd angewendet werden. Damit zeigt Puppet den aktuellen Zustand der Ressource an: ensure gibt Aufschluss darüber, ob der Service gerade läuft oder nicht, enable wiederum zeigt, ob der Service nach einem Reboot automatisch gestartet wird.

[root@server3 ~]# puppet resource service sshd

service { 'sshd':

  ensure => 'running',

  enable => 'true',

}

Als weiteres Beispiel könnte auch der Service vsftpd abgefragt werden:

[root@server3 ~]# puppet resource service vsftpd

service { 'vsftpd':

  ensure => 'stopped',

  enable => 'false',

}

Puppet-Nutzer finden normalerweise auch recht schnell ohne Hilfe heraus, was sie für die Verwaltung von Service-Ressourcen benötigen. Wie mit dem Anwender im ersten Manifest gilt auch hier, dass der Service zunächst installiert werden muss, bevor er verwaltet werden kann. Das folgende Puppet-Manifest zeigt, wie der vsftp-Serviceeingerichtet wird.

package { 'vsftpd':

  ensure => 'present',

}

 

service { 'vsftpd':

  ensure => 'running',

  enable => true,

  require => Package['vsftpd'],

}

Führt man dieses Puppet-Manifest anschließend über den Befehl puppet apply aus, dann wird der Service gestartet und falls nötig zuvor das hierfür benötigte Paket installiert. Puppet kann dabei noch weitaus komplexere Aufgaben der Automatisierung und Konfigurationsverwaltung übernehmen. Im letzten Beispiel wurde etwa der Parameter require verwendet, um die automatische Installation benötigter Software sicherzustellen.

Sobald Administratoren Puppet aufgesetzt und sich damit vertraut gemacht haben, können über die Skriptsprache relativ leicht auch komplexe Automatisierungsaufgaben wahrgenommen werden.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Artikel wurde zuletzt im April 2017 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Data-Center-Systems-Management

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

Close