28 Mai 2014

Foreman-Installation auf Ubuntu 12.04 LTS

Im ersten Teil unserer Schritt für Schritt Anleitung widmen wir uns zunächst der grundlegenden Installation von Foreman und Puppet. Danach ist es möglich bestehende Systeme mit Puppet zu verwalten und die Reporting-Fähigkeiten von Foreman zu nutzen.

  1. Einbinden der Puppetlabs-Repositories:Foreman funktioniert sowohl mit dem in Ubuntu Precise enthaltenen Puppet 2.7 als auch mit Puppet 3.x. Die neue Version enthält jedoch einige nützliche Features und Vereinfachungen, weshalb wir diese Version bevorzugt einsetzen. Dafür ist es erforderlich die Puppetlabs-Repositories wie folgt einzubinden:
       wget https://apt.puppetlabs.com/puppetlabs-release-precise.deb
       sudo dpkg -i puppetlabs-release-precise.deb
  2. Einbinden der Paket-Repositories für Foreman
      echo "deb http://deb.theforeman.org/ precise 1.4" > foreman.list
      sudo mv foreman.list /etc/apt/sources.list.d
      wget -q http://deb.theforeman.org/foreman.asc -O- | sudo apt-key add -
  3. Installation des Foreman InstallersDer Foreman Installer nutzt Puppet, um die initale Einrichtung von Foreman voll automatisiert vorzunehmen. Daher wird dieser zunächst installiert:
    sudo apt-get update && sudo apt-get install foreman-installer
  4. Ausführung des Foreman InstallersIm einfachsten Fall einer Foreman-Installation werden die folgenden Dienste auf dem Foreman-System installiert, konfiguriert und durch Foreman verwaltet:
    • Puppet (einschließlich der PuppetCA)
    • PXE/TFTP (für Provisonierung)

    Foreman kann zusätzlich DHCP und DNS konfigurieren, wird aber standardmäßig nicht dafür konfiguriert, da das in typischen Setups oft nicht gewollt ist. Der nachfolgende Aufruf führt daher zu einer Standard-Installation:

    sudo foreman-installer

    Ein paar weitere typische Anwendungsszenarien und wie der Installer-Aufruf dafür aussehen müsste, werden in der Foreman-Dokumenation beschrieben.

  5. Erster Aufruf von Foreman:Die Installation aus Schritt 3 läuft vollautomatisch ab. Bei einer erfolgreichen Installation sehen die Ausgaben ungefähr wie folgt aus:
            Installing             Done
              [100%]
    [...........................................................................]
              Success!
              * Foreman is running at https://ubuntu-foreman.xxx.credativ.com
                  Default credentials are 'admin:changeme'
              * Foreman Proxy is running at
    https://ubuntu-foreman.xxx.credativ.com:8443
              * Puppetmaster is running at port 8140
              The full log is at
    /var/log/foreman-installer/foreman-installer.log

    Über die angegebene URL („Foreman is running at“) kann mit den ebenfalls aufgeführten Zugangsdaten auf das Webinterface zugegriffen werden. Hierbei erscheint eine Zertifikatswarnung, weil bei der Installation ein sogenanntes self-sigend Zertifikat erstellt wurde. Diese Warnung kann gefahrlos quittiert werden. Für ein produktives Setup wäre es möglich und sinnvoll, das Zertifikat durch ein CA-signiertes Zertifikat auszutauschen.

    Nach dem Login wird eine Willkommensseite mit Informationen zu möglichen ersten Schritten angezeigt. Etwa der Einrichtung eines Smart Proxy auf einem anderen System, Konfiguration von Benutzern oder ähnlichem. Diese Seite wird nur angezeigt, bis das erste Mal Puppet auf einem (noch zu konfigurierenden) System läuft.

  6. Puppet das erste Mal ausführen:Um das System auf dem Foreman installiert wurde, bei Foreman bekannt zu machen, muss puppet einmalig manuell ausgeführt werden:
    sudo puppet agent -t

    Hierbei kann es zu einer Fehlermeldung kommen. Die ist jedoch darauf zurückzuführen, dass noch keine keine Puppet-Konfiguration für das System hinterlegt ist, und kann ignoriert werden.

    Das System sollte nun in Foreman unter Hosts -> All Hosts auffindbar sein.

  7. Ein Puppet-Modul installieren und Foreman bekannt machen:Puppet sieht vor, wiederverwendbare Module je zu konfigurierender Dienste/Komponenten zu hinterlegen, an Systeme zuzuweisen und über Parameter zu konfigurieren. Fertige Module können u.a von Puppetforge (https://forge.puppetlabs.com/) bezogen werden. Um aus dieser Quelle Module zu beziehen, stellt puppet seit Version 3 einen eigenen Befehl bereit. So kann mit dem folgenden Befehl das ’ntp‘-Modul von Puppetlabs, den Entwicklern von puppet, installiert werden:
    sudo puppet module install puppetlabs-ntp

    Anschließend muss das installierte Modul in Foreman einmalig bekannt gemacht werden. Dazu wird in Puppet über Configure ->Puppet classes die Verwaltung von Puppet-Klassen aufgerufen, der Import-Button betätigt und im nachfolgenden Dialog die zu importierenden Module (in diesem Fall ntp und stdlib) ausgewählt und bestätigt.

  8. Ein System konfigurieren und Test:Um ein System zu konfigurieren, müssen diesem mindestens Puppet-Klassen zugewiesen werden Dazu muss der Host unter Hosts -> All Hosts rausgesucht und über einen Klick auf Edit bearbeitet werden.Im Reiter Puppet Classes werden dazu auf der rechten Seite die verfügbaren Klassen angezeigt. Mit einem Klick auf das Plus-Zeichen hinter dem Modul (in diesem Fall ’ntp‘) werden alle dazugehörigen Klassen (ntp, ntp::config, etc.) angezeigt. Ein weiterer Klick auf das Plus-Zeichen hinter ntp fügt es dem System hinzu. Mit Submit kann die Änderung gespeichert werden.

    Um die Konfiguration anzuwenden, wird erneut der Befehl aus Schritt 5 aufgerufen:

    sudo puppet agent -t

    Die nun angezeigten Meldungen fallen umfangreich aus. Darunter sollten aber unter anderem die folgenden Zeilen zu finden sein:

       Notice: /Stage[main]/Ntp::Install/Package[ntp]/ensure: ensure changed
    'purged' to 'present'
       Notice: /Stage[main]/Ntp::Config/File[/etc/ntp.conf]/content:
       ...
       Info: /Stage[main]/Ntp::Config/File[/etc/ntp.conf]: Filebucketed
    /etc/ntp.conf to puppet with sum 32280703a4ba7aa1148c48895097ed07
       Notice: /Stage[main]/Ntp::Config/File[/etc/ntp.conf]/content: content
    changed '{md5}32280703a4ba7aa1148c48895097ed07' to
    '{md5}ea7609ba7dba17f26db7cd86967294ae'
       Info: Class[Ntp::Config]: Scheduling refresh of Class[Ntp::Service]
       Info: Class[Ntp::Service]: Scheduling refresh of Service[ntp]
       Notice: /Stage[main]/Ntp::Service/Service[ntp]: Triggered 'refresh'
    from 1 events
       Notice: Finished catalog run in 21.41 seconds

    Hieraus wird ersichtlich, dass die Installation des ’ntp‘-Paket, die Erstellung einer Konfiguration sowie Konfiguration und Start des entsprechenden Dienstes erfolgt ist.

    Dies lässt sich auch mit den üblichen Tools verifizieren. So sollte etwa

    sudo /etc/init.d/ntp status

    die Meldung ausgeben, dass der NTP server läuft.

Damit wären wir auch schon am Ende des ersten Teils unserer Schritt für Schritt Anleitung. Nun können nach Belieben Module hinzugefügt, Systeme konfiguriert und die Reports in Foreman eingesehen werden.

Weiterführende Informationen hierzu:

In Kürze veröffentlichen wir den zweiten Teil dieser „Schritt für Schritt“-Anleitung, in dem wir uns schließlich dem Thema „Vollautomatische Installationen mit Foreman“ widmen.

 

Dieser Artikel wurde ursprünglich geschrieben von Patrick Schönfeld.

Kategorien: HowTos
Tags: Foreman Ubuntu

SH

über den Autor

Sascha Heuer


Beitrag teilen: