Verwenden von Foreman zum Verwalten von Marionettenknoten unter Ubuntu 14.04

Einführung

Foreman ist ein Open-Source-Tool, das bei der Verwaltung von Servern helfen kann, indem es eine einfache Möglichkeit bietet, mit Puppet (oder Chef) zu interagieren, um Aufgaben und die Anwendungsbereitstellung zu automatisieren. Foreman bietet eine robuste Webbenutzeroberfläche, API und CLI, mit der Sie Ihre Server bereitstellen, konfigurieren und überwachen können. Es ist für Infrastrukturen aller Größen geeignet und funktioniert mit den meisten Linux-Distributionen.

In diesem Tutorial zeigen wir Ihnen, wie Sie Foreman mit Puppet installieren und damit beginnen, Ihre Server zu verwalten. Wir werden Foreman für seine Berichts- und ENC-Funktionen (External Node Classifier) ​​verwenden, um die Verwaltung von Puppet zu vereinfachen.

Voraussetzungen

In diesem Tutorial wird davon ausgegangen, dass Sie Foreman auf einem neuen Server namens installieren, der auch als Puppet-Masterserver fungiert. Wenn Sie bereits einen Puppet-Masterserver haben, können Sie Foreman darauf installieren. Beachten Sie jedoch, dass Ihre Standardeinstellung "+ site.pp +" überschrieben wird (Ihre vorhandenen Puppet-Agentenknoten bleiben in einem "nicht verwalteten" Zustand), und Sie müssen konfigurieren Foreman, um Ihre vorhandenen Puppet-Agentenknoten zu verwalten.

Da Foreman für die Konfigurationsverwaltung von Hosts von Puppet abhängt, ist alles erforderlich, was für die Einrichtung eines Puppet-Agenten / Masters erforderlich ist. In der folgenden Liste sind die Dinge aufgeführt, die Sie zum Starten dieses Lernprogramms benötigen:

  • * Root-Zugriff: * + sudo + Zugriff auf alle Server, die Sie verwalten möchten

  • * Private Network DNS: * Forward- und Reverse-DNS müssen konfiguriert sein und jeder Server muss einen eindeutigen Hostnamen haben. Hier ist ein Tutorial zu configure your own privater Netzwerk-DNS-Server. Wenn Sie kein DNS konfiguriert haben, müssen Sie Ihre Hosts-Datei für die Namensauflösung verwenden. Wir gehen davon aus, dass Sie Ihr privates Netzwerk für die Kommunikation innerhalb Ihrer Infrastruktur nutzen.

  • * Offene Firewall-Ports: * Der Puppet-Master muss über Port 8140 erreichbar sein. Wenn Ihre Firewall zu restriktiv ist, lesen Sie diese https://www.digitalocean.com/community/tutorials/how-to-setup-a-firewall-with-ufw-on-an-ubuntu-and-debian-cloud- Anweisungen zum Zulassen eingehender Anforderungen an Port 8140 finden Sie unter [UFW Tutorial].

Sobald Sie alle Voraussetzungen erfüllt haben, können Sie den Foreman-Server (und den Puppet-Master-Server) erstellen.

Foreman Server erstellen

Erstellen Sie einen neuen * Ubuntu 14.04 * x64-Server mit dem Hostnamen "foreman". Fügen Sie das private Netzwerk mit den folgenden Details zu Ihrem DNS hinzu:

Hostname Role Private FQDN

foreman

Foreman / Puppet Master

foreman.nyc2.example.com

Wenn Sie gerade Ihr DNS eingerichtet haben und nicht sicher sind, wie Sie Ihren Host zu DNS hinzufügen sollen, lesen Sie die Informationen unter https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network -dns-server-on-ubuntu-14-04 # MaintainingDNSRecords Abschnitt [Maintaining DNS Records] des DNS-Tutorials. Im Wesentlichen müssen Sie einen "A" - und einen "PTR" -Datensatz hinzufügen und dem neuen Host erlauben, rekursive Abfragen durchzuführen. Stellen Sie außerdem sicher, dass Sie Ihre Suchdomäne so konfigurieren, dass Ihre Server kurze Hostnamen zum gegenseitigen Nachschlagen verwenden können.

Stellen Sie sicher, dass Hostname auf FQDN festgelegt ist

Geben Sie den folgenden Befehl ein, um den vollständigen Hostnamen Ihres Servers zu überprüfen:

hostname -f

Sie sollten die lange Version Ihres Servernamens sehen, z. "Foreman.nyc2.example.com". Wenn Ihr Hostname auf Ihren FQDN festgelegt ist, können Sie mit dem nächsten Abschnitt fortfahren.

Andernfalls, wenn ein Kurzname zurückgegeben wird, z. "Vorarbeiter", müssen Sie Ihren Hostnamen auf den langen Namen setzen. Bearbeiten Sie dazu Ihre + hosts + - Datei:

sudo vi /etc/hosts

Suchen Sie den ersten Eintrag für Ihren kurzen Hostnamen und fügen Sie den FQDN davor hinzu. Zum Beispiel:

127.0.1.1       foreman

Sollte geändert werden in:

127.0.1.1        foreman

Dann speichern und beenden.

Als nächstes bearbeiten Sie Ihre + Hostname + Datei:

sudo vi /etc/hostname

Ändern Sie den Eintrag in der Datei in den FQDN Ihres Servers, z. "Foreman.nyc2.example.com". Dann speichern und beenden.

Führen Sie dann den folgenden Befehl aus, um die soeben vorgenommene Konfigurationsänderung sofort einzulesen:

sudo hostname --file /etc/hostname

Ihr langer Hostname wurde festgelegt. Fahren Sie mit der Installation von Foreman fort!

Installieren Sie Foreman

Die einfachste Möglichkeit, Foreman zu installieren, besteht darin, das Foreman-Installationsprogramm zu verwenden. Das Foreman-Installationsprogramm installiert und konfiguriert alle für die Ausführung von Foreman erforderlichen Komponenten, einschließlich der folgenden:

  • Vorarbeiter

  • Puppenspieler und Agent

  • Apache Web Server mit SSL- und Passenger-Modul

Laden Sie das Foreman-Installationsprogramm mit den folgenden Befehlen herunter:

sudo sh -c 'echo "deb http://deb.theforeman.org/ trusty 1.5" > /etc/apt/sources.list.d/foreman.list'
sudo sh -c 'echo "deb http://deb.theforeman.org/ plugins 1.5" >> /etc/apt/sources.list.d/foreman.list'
wget -q http://deb.theforeman.org/pubkey.gpg -O- | sudo apt-key add -
sudo apt-get update && sudo apt-get install foreman-installer

Führen Sie dann das Foreman-Installationsprogramm mit dem folgenden Befehl aus:

sudo foreman-installer

Sie sollten die folgende Ausgabe sehen:

Your puppet version does not support progress bar
Preparing installation Done
 Success!
 * Foreman is running at https://foreman.nyc2.example.com
     Default credentials are 'admin:changeme'
 * Foreman Proxy is running at https://foreman.nyc2.example.com:8443
 * Puppetmaster is running at port 8140
 The full log is at /var/log/foreman-installer/foreman-installer.log

Wenn Ihre Ausgabe der obigen ähnelt, wurden Foreman und die erforderlichen Komponenten installiert!

Diffs aktivieren

Bevor wir fortfahren, nehmen wir eine kleine Konfigurationsänderung vor, um "Unterschiede" zu aktivieren. Mit dieser Änderung können Sie Unterschiede anzeigen, sodass Sie Änderungen an der Konfigurationsdatei in der Foreman-Berichtsansicht anzeigen können.

Bearbeiten Sie + puppet.conf +:

sudo vi /etc/puppet/puppet.conf

Suchen Sie die Zeile, die "+ show_diff " setzt, und ändern Sie ihren Wert in " true +":

   show_diff     = true

Speichern und schließen.

Foreman-Host zur Foreman-Datenbank hinzufügen

So fügen Sie den Foreman-Host der Foreman-Datenbank hinzu, indem Sie die Befehlszeile + puppet agent ausführen:

sudo puppet agent --test

Dies fügt den Foreman-Host als ersten Puppet-Agent-Knoten hinzu, der von Foreman verwaltet wird.

Melden Sie sich bei Foreman Web Interface an

Melden Sie sich beim Foreman an und ändern Sie das Administratorkennwort. Auf die Foreman-Webschnittstelle kann über die öffentliche Netzwerkschnittstelle Ihres VPS zugegriffen werden (entweder dessen öffentlicher FQDN oder dessen öffentliche IP-Adresse). + Sehen Sie sich Infrastruktur → Smart Proxies an. Wird automatisch erstellt (und zeigt die verfügbaren Funktionen an).

Standardmäßig verwendet Foreman Ihre Puppet-Zertifikate, denen Ihr Browser wahrscheinlich nicht vertraut. Akzeptieren Sie die Warnung zum Zertifikat und fahren Sie fort. Alternativ können Sie das Zertifikat durch ein Zertifikat ersetzen, das Ihrem Domänennamen entspricht und von einer vertrauenswürdigen Zertifizierungsstelle signiert ist. Nachdem Sie das Zertifikat akzeptiert und fortgefahren haben, wird die folgende Anmeldeseite angezeigt:

Wie Sie vielleicht bemerkt haben, wenn Sie "+ foreman-installer +" ausführen, sind dies die Standardanmeldeinformationen:

  • * Benutzername *: admin

  • * Passwort *: ändern

Vorarbeiter-Dashboard

Wenn Sie sich zum ersten Mal anmelden, wird das Foreman-Dashboard mit einer Übersicht über Ihre Puppet-Umgebung angezeigt. Hier sehen Sie eine Zusammenfassung des „Host-Konfigurationsstatus“, die die Anzahl der Puppet-Agentenknoten und deren jeweiligen Status anzeigt. Wenn Sie Foreman zum ersten Mal starten, sollte im Abschnitt "Guter Host" ein einzelner Server angezeigt werden:

Darunter sehen Sie eine Zusammenfassung der letzten Ereignisse und eine Grafik mit der Anzahl der „Clients“, die ihren Puppet-Job innerhalb der letzten 30 Minuten ausgeführt haben. Anhand dieser Informationen können Sie sich einen Überblick über die Funktionsweise Ihres Puppet-Setups verschaffen.

Admin-Passwort ändern

Bevor Sie etwas anderes tun, sollten Sie Ihr + admin + Benutzerpasswort ändern. Führen Sie dazu den Mauszeiger über das Element Admin User in der oberen rechten Ecke und klicken Sie auf My Account:

Suchen Sie das Password-Formular. Aktualisieren Sie Ihr Passwort auf etwas Sicheres und klicken Sie dann auf Senden.

NTP-Modul zu Foreman hinzufügen

Puppet benötigt genaue Zeitangaben, daher werden wir Foreman verwenden, um den NTP-Dienst auf dem Foreman-Host (der auch der Puppet-Master ist) zu verwalten.

Rufen Sie in einem Webbrowser https://forge.puppetlabs.com/ auf. Suchen Sie nach einem NTP-Modul. Das erste Ergebnis sollte "+ puppetlabs / ntp +" sein. Klicken Sie auf das Modul und lesen Sie darüber, um zu sehen, was es tut.

Jetzt installieren wir es in der Production-Umgebung unseres Puppet Masters mit dem folgenden Befehl:

sudo puppet module install -i /etc/puppet/environments/production/modules puppetlabs/ntp

Sie sollten eine Ausgabe wie die folgende sehen, die angibt, dass das Modul ordnungsgemäß installiert wurde:

Notice: Preparing to install into /etc/puppet/environments/production/modules ...
Notice: Downloading from https://forge.puppetlabs.com ...
Notice: Installing -- do not interrupt ...
/etc/puppet/environments/production/modules
└─┬ puppetlabs-ntp (v3.1.2)
 └── puppetlabs-stdlib (v4.3.2)

Das Modul wurde im Puppet Master installiert, muss jedoch zu Foreman hinzugefügt werden, bevor wir es verwenden können.

Bewegen Sie den Mauszeiger in der Foreman-Weboberfläche über Configure und klicken Sie dann auf Puppet classes:

Klicken Sie auf die Schaltfläche Import from foreman.nyc2.example.com. Dann sehen Sie einen Bildschirm, der so aussieht:

Aktivieren Sie das Kontrollkästchen neben dem Element und klicken Sie auf die Schaltfläche "Aktualisieren". Das ntp-Modul wird jetzt in Foreman importiert und kann mit einem Host verwendet werden.

Standard-NTP-Pool überschreiben

Jetzt möchten wir die Standardeinstellungen des NTP-Moduls überschreiben und das NTP-Modul so konfigurieren, dass standardmäßig der US-NTP-Pool verwendet wird. Sie können einen NTP-Pool Ihrer Wahl unter NTP Pool Project nachschlagen.

Sie sollten sich im Bildschirm „Puppet Classes“ befinden. Klicken Sie auf die Klasse "ntp", um den Bearbeitungsmodus aufzurufen. Klicken Sie nun auf die Registerkarte „Smart Class Parameter“.

Scrollen Sie nach unten, suchen Sie in der linken Seitenleiste das Element "Server" und wählen Sie es aus:

Suchen Sie das Kontrollkästchen "Override" und aktivieren Sie es. Ändern Sie die Dropdown-Liste Parameter type in "array". Ändern Sie dann den "Standardwert" aus dem Standard-NTP-Pool in einen Ihrer Wahl in Array-Form. Wir werden den US NTP Pool benutzen:

["0.us.pool.ntp.org","1.us.pool.ntp.org","2.us.pool.ntp.org","3.us.pool.ntp.org"]

Scrollen Sie nach unten und klicken Sie auf die grüne Schaltfläche "Senden". Alle Hosts oder Hostgruppen, die dieses Modul verwenden, verwenden jetzt standardmäßig den US-NTP-Pool.

Konfigurieren Sie Foreman Host für die Verwendung des NTP-Moduls

Jetzt können wir das NTP-Modul zum Verwalten von NTP auf dem Foreman-Host verwenden.

Wechseln Sie zum Bildschirm "Hosts" (fahren Sie mit der Maus über "Hosts" und klicken Sie auf "Alle Hosts"). Klicken Sie auf die Schaltfläche "Bearbeiten" ganz rechts auf Ihrem Foreman-Host.

Klicken Sie auf die Registerkarte Puppenklassen. Klicken Sie unter Verfügbare Klassen auf die ntp -Klasse, um sie zu erweitern, und klicken Sie dann auf das Pluszeichen neben "ntp":

Dadurch wird die ntp -Klasse in den Abschnitt Included Classes verschoben. Dies bedeutet, dass beim nächsten Einchecken des Puppet-Agenten des Foreman-Hosts dieses Puppet-Modul darauf angewendet wird.

Klicken Sie auf die Schaltfläche "Senden", um die Änderungen zu übernehmen.

Puppenkonfiguration anzeigen

Nachdem Sie die Konfiguration des Foreman-Hosts bearbeitet haben, werden Sie zur Übersichtsseite des Foreman-Hosts weitergeleitet.

Klicken Sie auf die Schaltfläche YAML, um die Informationen anzuzeigen, die Puppet beim Einchecken eines Agentenknotens angezeigt werden:

Sie sehen eine Seite mit einer Ausgabe ähnlich der folgenden:

---
classes:
 ntp:
   server_list:
   - 0.us.pool.ntp.org
   - 1.us.pool.ntp.org
   - 2.us.pool.ntp.org
   - 3.us.pool.ntp.org
parameters:
 puppetmaster: foreman.nyc2.example.com
 root_pw:
 foreman_env: production
 owner_name: Admin User
 owner_email: [email protected]
environment: production

Führen Sie Puppet Agent aus

Wenden wir diese Änderung jetzt an, damit wir sehen können, was sie bewirkt.

Führen Sie auf dem Foreman-Server den Puppet-Agenten aus:

sudo puppet agent --test

Kehren Sie in der Web-Benutzeroberfläche zu Ihrem Foreman-Host zurück und klicken Sie auf die Schaltfläche Reports (neben der Schaltfläche YAML). Es sollte ein neuer Berichtseintrag angezeigt werden, der angibt, dass einige Änderungen angewendet wurden und ein Dienst neu gestartet wurde. Klicken Sie auf den Bericht. Hier sehen Sie mehrere Hinweise, die darauf hinweisen, dass das NTP-Paket installiert, konfiguriert und neu gestartet wurde.

Beachten Sie, dass Sie Foreman gerade zum Konfigurieren des Foreman-Servers verwendet haben. Das Verwalten eines anderen Hosts funktioniert genauso.

Wenn Sie möchten, klicken Sie auf den Link "View Diff" neben dem Eintrag "+ ntp.conf / content". Dies ist nützlich, wenn Sie sehen möchten, wie Puppet die von ihm verwalteten Konfigurationsdateien ändert.

Hinzufügen neuer Hosts zu Foreman

Nachdem Sie Ihren Foreman-Server eingerichtet haben, möchten Sie wahrscheinlich weitere Hosts hinzufügen, die von ihm verwaltet werden sollen. Das Hinzufügen weiterer Hosts entspricht dem Hinzufügen weiterer Puppet-Agentenknoten zu einem Master. Ausführliche Anweisungen hierzu finden Sie im https://www.digitalocean.com/community/tutorials/anleitungshandbuch zum Verwalten Ihrer Serverinfrastruktur#install-puppet-agent[ersten Lernprogramm in dieser Serie]. Stellen Sie sicher, dass der Agent so konfiguriert ist, dass er auf Ihren Puppet Master-Server (Foreman) verweist.

Nachdem Sie den Agenten installiert und ausgeführt haben, müssen Sie sein Zertifikat auf dem Foreman-Server signieren. Sie können die Zertifikate über die Befehlszeile signieren. Wie bei einem normalen Puppet-Setup können Sie auch die Foreman-Weboberfläche verwenden.

Um die Webschnittstelle zum Signieren der Zertifikate zu verwenden, wechseln Sie zu Infrastruktur, klicken Sie auf Smart Proxies und dann auf die Schaltfläche Zertifikate:

Hier sehen Sie alle Zertifikate im PuppetCA. Klicken Sie auf die Schaltfläche Signieren (ganz rechts) neben den neuen Hosts, die Sie für die Verwendung dieses Puppet-Masters eingerichtet haben.

Ihre neuen Hosts können jetzt von Foreman verwaltet werden!

Fazit

Nachdem Sie eine funktionierende Foreman-Instanz haben, können Sie Puppet-Module auf einfache Weise zum Verwalten Ihrer Serverinfrastruktur verwenden. Sie können auch die öffentlich verfügbaren Puppet-Module durchsuchen oder Ihre eigene (siehe vorheriges Tutorial in dieser Reihe) erstellen, um Ihre Umgebung zu verwalten.

Viel Glück!