Wie installiere ich Puppet 6 unter Ubuntu 18?

Erfahren Sie, wie Sie einen Puppet-Server installieren & Agent und einrichten, so dass sie miteinander reden.


Puppet ist eines der am häufigsten von Unternehmen verwendeten Konfigurationsmanagement-Tools in der DevOps-Welt. Als DevOps-Ingenieur müssen Sie wissen, wie Sie eine Marionette auf Ihrem System einrichten.

Aber bevor wir beginnen, möchte ich Ihnen sagen, dass die Installation einer Puppe überhaupt keine leichte Aufgabe ist. Wenn Sie einen einzelnen Schritt verpassen oder den in diesem Lernprogramm genannten Ablauf von Schritten ändern, selbst an einer Stelle, kratzen Sie sich möglicherweise den ganzen Tag mit vielen Fehlern am Kopf, aber Ihre Einrichtung wäre unvollständig. Befolgen Sie daher jeden Schritt sehr sorgfältig.

Marionette hat eine Client-Server-Architektur, die aus einem Puppet Master (Server) und Puppet Agents (Client) besteht. Puppet Master verfügt über alle Konfigurationen und kompiliert und liefert die Konfigurationen an Puppet-Agenten. Puppet Agents senden die Fakten in regelmäßigen Abständen an den Puppet Master und fordern Kataloge an. Puppet Master sendet den angeforderten Katalog an den Puppet Agent zurück. Puppet Agent wendet diesen Katalog dann auf den Knoten an und berichtet an den Master zurück.

Nachdem Sie ein grundlegendes Verständnis von Puppet haben, können Sie loslegen und einen Puppet Master und einen Puppet Agent einrichten.

Wenn Sie ein absoluter Anfänger sind, können Sie dies gerne nehmen Online-Videokurs.

Umgebungsdetails

Ich benutze 2 Ubuntu 18.04 Maschinen. Einer wird als Marionettenmeister und der andere als Marionettenagent fungieren. Nachfolgend finden Sie die Details der Maschinen:

Puppet Master (Server)

  • Hostname: Puppet, Puppet.geekflate.com
  • IP-Adresse: 192.168.0.108

Puppet Agent (Client)

  • Hostname: Puppenspieler
  • IP-Adresse: 192.168.0.107

Puppet Server installieren

Bevor ich mit der Installation beginne, muss ich die Datei / etc / hosts sowohl auf dem Master als auch auf dem Agenten bearbeiten, damit sie sich gegenseitig auflösen können.

Auf dem Master-Knoten

[E-Mail geschützt]: ~ $ sudo gedit / etc / hosts

[sudo] Passwort für Geekflare:

127.0.0.1 localhost
127.0.1.1 Geekflare
192.168.0.108 Puppe puppet.geekflare.com

Auf dem Agentenknoten

[E-Mail geschützt]: ~ $ sudo gedit / etc / hosts

127.0.0.1 localhost
127.0.1.1 Geekflare
192.168.0.107 Marionettenagent
192.168.0.108 Puppe puppet.geekflare.com

Jetzt muss ich ein Puppet-Repository auf meinem Masterknoten abrufen und aktualisieren.

Laden Sie das Puppen-Repository herunter.

[E-Mail geschützt]: ~ $ wget https://apt.puppetlabs.com/puppet6-release-bionic.deb

–2019-10-15 15: 41: 34– https://apt.puppetlabs.com/puppet6-release-bionic.deb

Auflösen von apt.puppetlabs.com (apt.puppetlabs.com) … 99.86.19.107, 99.86.19.59, 99.86.19.2, …

Verbindung zu apt.puppetlabs.com (apt.puppetlabs.com) herstellen | 99.86.19.107 |: 443 … verbunden.

HTTP-Anfrage gesendet und wartet auf Antwort … 200 OK

Länge: 11736 (11K) [application / x-debian-package]

Speichern unter: “puppet6-release-bionic.deb”

Puppet6-Release-Bio 100% [===================>] 11.46K –.- KB / s in 0s

2019-10-15 15:41:34 (236 MB / s) – “puppet6-release-bionic.deb” gespeichert [11736/11736]

Puppet 6 Repo hinzufügen und konfigurieren.

[E-Mail geschützt]: ~ $ sudo dpkg -i puppet6-release-bionic.deb

Auswahl des zuvor nicht ausgewählten Pakets Puppet6-Release.

(Datenbank lesen … 187041 Dateien und Verzeichnisse derzeit installiert.)

Vorbereitung zum Auspacken von puppet6-release-bionic.deb …

Puppet6-Release (6.0.0-5bionic) auspacken …

Puppet6-Release einrichten (6.0.0-5bionic) …

Aktualisieren Sie die Repository-Liste.

[E-Mail geschützt]: ~ $ sudo apt update

Treffer: 1 https://download.docker.com/linux/ubuntu bionic InRelease

Treffer: 2 http://security.ubuntu.com/ubuntu Cosmic-Security InRelease

Treffer: 3 http://ppa.launchpad.net/ansible/ansible/ubuntu cosmic InRelease

Get: 4 http://download.virtualbox.org/virtualbox/debian cosmic InRelease [4,429 B]

Get: 5 http://apt.puppetlabs.com bionic InRelease [85,3 kB]

Treffer: 6 http://us.archive.ubuntu.com/ubuntu cosmic InRelease

Treffer: 7 http://us.archive.ubuntu.com/ubuntu kosmische Updates InRelease

Get: 8 http://download.virtualbox.org/virtualbox/debian cosmic / contrib amd64-Pakete [1.466 B]

Holen Sie sich: 9 http://apt.puppetlabs.com bionic / puppet6 alle Pakete [13,5 kB]

Treffer: 10 http://us.archive.ubuntu.com/ubuntu cosmic-backports InRelease

Holen Sie sich: 11 http://apt.puppetlabs.com bionic / puppet6 i386-Pakete [13,5 kB]

Holen Sie sich: 12 http://apt.puppetlabs.com bionic / puppet6 amd64 Pakete [32,3 kB]

Abgerufen 151 kB in 2 s (61,9 kB / s)

Paketlisten lesen … Fertig

Abhängigkeitsbaum erstellen

Statusinformationen lesen … Fertig

234 Pakete können aktualisiert werden. Führen Sie ‘apt list –upgradable’ aus, um sie anzuzeigen.

Puppet Server installieren

Führen Sie den folgenden Befehl auf dem Masterknoten aus, um den Puppet-Server darauf zu installieren.

[E-Mail geschützt]: ~ $ sudo apt install -y Puppetserver

Paketlisten lesen … Fertig

Abhängigkeitsbaum erstellen

Statusinformationen lesen … Fertig

Die folgenden zusätzlichen Pakete werden installiert:

ca-certificates-java java-common openjdk-8-jre-kopfloser Marionettenagent

Empfohlene Pakete:

default-jre fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho

Schriftarten-wqy-microhei Schriftarten-wqy-zenhei

Die folgenden NEUEN Pakete werden installiert:

ca-certificates-java java-common openjdk-8-jre-kopfloser Marionettenagent

Puppenserver

0 aktualisiert, 5 neu installiert, 0 entfernt und 234 nicht aktualisiert.

Benötigt 109 MB Archive.

Nach diesem Vorgang werden 287 MB zusätzlicher Speicherplatz verwendet.

Get: 1 http://us.archive.ubuntu.com/ubuntu cosmic / main amd64 java-common all 0.68ubuntu1 [6.988 B]

Holen Sie sich: 2 http://apt.puppetlabs.com bionic / puppet6 amd64 Puppet-Agent amd64 6.10.1-1bionic [19,9 MB]

Get: 3 http://us.archive.ubuntu.com/ubuntu cosmic-updates / Universum amd64 openjdk-8-jre-headless amd64 8u212-b03-0ubuntu1.18.10.1 [27,2 MB]

Holen Sie sich: 4 http://apt.puppetlabs.com bionic / puppet6 amd64 puppetserver alle 6.7.1-1bionic [61.5 MB]

Holen Sie sich: 5 http://us.archive.ubuntu.com/ubuntu cosmic / main amd64 ca-certificates-java all 20180516ubuntu1 [12,3 kB]

109 MB in 1 Minute 41 Sekunden (1.072 kB / s) abgerufen

Puppetserver auspacken (6.7.1-1bionic) …

Puppet-Agent einrichten (6.10.1-1bionic) …

Symlink /etc/systemd/system/multi-user.target.wants/puppet.service → /lib/systemd/system/puppet.service erstellt.

Symlink /etc/systemd/system/multi-user.target.wants/pxp-agent.service → /lib/systemd/system/pxp-agent.service erstellt.

/Etc/systemd/system/multi-user.target.wants/pxp-agent.service wurde entfernt.

Java-Common einrichten (0.68ubuntu1) …

Verarbeitungsauslöser für libc-bin (2.28-0ubuntu1) …

Verarbeitungsauslöser für systemd (239-7ubuntu10.12) …

Verarbeitungsauslöser für man-db (2.8.4-2) …

Verarbeitungsauslöser für Ca-Zertifikate (20180409) …

Aktualisieren von Zertifikaten in / etc / ssl / certs…

0 hinzugefügt, 0 entfernt; erledigt.

Ausführen von Hooks in /etc/ca-certificates/update.d…

erledigt.

Ca-certificates-java einrichten (20180516ubuntu1) …

head: ‘/ etc / ssl / certs / java / cacerts’ kann nicht zum Lesen geöffnet werden: Keine solche Datei oder kein solches Verzeichnis

Debian hinzufügen: SSL.com_EV_Root_Certification_Authority_ECC.pem

Debian hinzufügen: ssl-cert-snakeoil.pem

Debian hinzufügen: SwissSign_Gold_CA _-_ G2.pem

Debian hinzufügen: SZAFIR_ROOT_CA2.pem

Debian hinzufügen: OpenTrust_Root_CA_G3.pem

Debian hinzufügen: TWCA_Root_Certification_Authority.pem

Debian hinzufügen: QuoVadis_Root_CA_2_G3.pem

Debian hinzufügen: DST_Root_CA_X3.pem

Debian hinzufügen: SecureSign_RootCA11.pem

Debian hinzufügen: QuoVadis_Root_CA_1_G3.pem

Debian hinzufügen: T-TeleSec_GlobalRoot_Class_3.pem

Debian hinzufügen: Go_Daddy_Root_Certificate_Authority _-_ G2.pem

Debian hinzufügen: Actalis_Authentication_Root_CA.pem

Debian hinzufügen: Chambers_of_Commerce_Root _-_ 2008.pem

erledigt.

Verarbeitungsauslöser für Ca-Zertifikate (20180409) …

Aktualisieren von Zertifikaten in / etc / ssl / certs…

0 hinzugefügt, 0 entfernt; erledigt.

Ausführen von Hooks in /etc/ca-certificates/update.d…

erledigt.

erledigt.

Openjdk-8-jre-headless einrichten: amd64 (8u212-b03-0ubuntu1.18.10.1) …

Puppetserver einrichten (6.7.1-1bionic) …

usermod: keine änderungen

Verarbeitungsauslöser für systemd (239-7ubuntu10.12) …

Puppet Server konfigurieren

 Bearbeiten Sie die Puppetserver-Datei wie unten gezeigt. Dies, um die JVM des Puppet-Servers zu konfigurieren.

[E-Mail geschützt]: ~ $ sudo gedit / etc / default / puppetserver

# Ändern Sie dies, wenn Sie die Speicherzuordnung ändern, JMX aktivieren usw.

JAVA_ARGS ="-Xms512m -Xmx512m -Djruby.logger.class = com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

 Bearbeiten Sie die Puppet-Konfigurationsdatei, um die Puppet-Servereinstellungen zu ändern.

[E-Mail geschützt]: ~ $ sudo gedit /etc/puppetlabs/puppet/puppet.conf

# Mit dieser Datei können die Standardeinstellungen für Puppen überschrieben werden.

# Weitere Informationen zu den verfügbaren Einstellungen finden Sie unter den folgenden Links:

# – https://puppet.com/docs/puppet/latest/config_important_settings.html

# – https://puppet.com/docs/puppet/latest/config_about_settings.html

# – https://puppet.com/docs/puppet/latest/config_file_main.html

# – https://puppet.com/docs/puppet/latest/configuration.html

[Meister]

vardir = / opt / puppetlabs / server / data / puppetserver

logdir = / var / log / puppetlabs / puppetserver

rundir = / var / run / puppetlabs / puppetserver

pidfile = /var/run/puppetlabs/puppetserver/puppetserver.pid

codedir = / etc / puppetlabs / code

dns_alt_names = Marionette, Puppe.geekflare.com

[Main]

certname = puppet.geekflare.com

server = puppet.geekflare.com

Umwelt = Produktion

Laufintervall = 15 m

Puppet Server muss eine Stamm- und Zwischensignatur (CA) generieren.

[E-Mail geschützt]: ~ $ sudo / opt / puppetlabs / bin / puppetserver ca einrichten

Generation erfolgreich. Finden Sie Ihre Dateien in / etc / puppetlabs / puppet / ssl / ca.

 Starten und aktivieren Sie den Puppet Server-Dienst.

[E-Mail geschützt]: ~ $ sudo systemctl Puppetserver starten

[E-Mail geschützt]: ~ $ sudo systemctl Puppetserver aktivieren

Synchronisieren des Status von puppetserver.service mit dem SysV-Dienstskript mit / lib / systemd / systemd-sysv-install.

Ausführen: / lib / systemd / systemd-sysv-install enable Puppetserver

Puppet Agent installieren

Befolgen Sie die folgenden Schritte auf dem Agentenknoten wie für das Mastersystem. Das Puppet-Repository muss auf allen Agentenknoten vorhanden sein.

[E-Mail geschützt]: ~ $ wget https://apt.puppetlabs.com/puppet6-release-bionic.deb

[E-Mail geschützt]: ~ $ sudo dpkg -i puppet6-release-bionic.deb

[E-Mail geschützt]: ~ $ sudo apt update

Führen Sie den folgenden Befehl auf dem Agentenknoten aus, um den Puppet-Agenten zu installieren.

[E-Mail geschützt]: ~ $ sudo apt install -y Puppet-Agent

Paketlisten lesen … Fertig

Abhängigkeitsbaum erstellen

Statusinformationen lesen … Fertig

Die folgenden NEUEN Pakete werden installiert:

Marionettenagent

0 aktualisiert, 1 neu installiert, 0 entfernt und 233 nicht aktualisiert.

Benötigt 19,9 MB an Archiven.

Nach diesem Vorgang werden 115 MB zusätzlicher Speicherplatz verwendet.

Holen Sie sich: 1 http://apt.puppetlabs.com bionic / puppet6 amd64 Puppet-Agent amd64 6.10.1-1bionic [19,9 MB]

19,9 MB in 2 Sekunden (8.488 kB / s) abgerufen

Auswahl des zuvor nicht ausgewählten Pakets Puppet-Agent.

(Datenbank lesen … 185786 Dateien und Verzeichnisse derzeit installiert.)

Vorbereitung zum Auspacken … / puppet-agent_6.10.1-1bionic_amd64.deb …

Puppet-Agent auspacken (6.10.1-1bionic) …

Puppet-Agent einrichten (6.10.1-1bionic) …

Symlink /etc/systemd/system/multi-user.target.wants/puppet.service → /lib/systemd/system/puppet.service erstellt.

Symlink /etc/systemd/system/multi-user.target.wants/pxp-agent.service → /lib/systemd/system/pxp-agent.service erstellt.

/Etc/systemd/system/multi-user.target.wants/pxp-agent.service wurde entfernt.

Verarbeitungsauslöser für libc-bin (2.28-0ubuntu1) …

Puppet Agent konfigurieren

 Bearbeiten Sie die Puppet-Konfigurationsdatei auf dem Agentenknoten.

[E-Mail geschützt]: ~ $ sudo gedit /etc/puppetlabs/puppet/puppet.conf

[Main]

certname = Marionettenagent

server = puppet.geekflare.com

Umwelt = Produktion

Laufintervall = 15 m

Führen Sie den folgenden Befehl aus, um den Puppendienst zu starten. Dieser Befehl wird auch nach dem Start automatisch gestartet.

[E-Mail geschützt]: ~ $ sudo / opt / puppetlabs / bin / Marionettenressourcendienst Puppe sicherstellen = Ausführen aktivieren = wahr

Service {‘Marionette’:

sicherstellen => ‘Laufen’,

enable => ‘wahr’,

}} 

Zertifikate generieren und signieren

Wenn der Agent zum ersten Mal startet, sendet er eine Zertifikatsignierungsanforderung an den Puppenmeister. Der Master muss dieses Zertifikat überprüfen und unterschreiben. Danach ruft der Agent Kataloge vom Master ab und wendet sie regelmäßig auf Agentenknoten an.

Nachdem der Puppet-Agent ausgeführt wird, führen Sie den folgenden Befehl auf dem Masterknoten aus, um zu überprüfen, ob er eine Zertifikatsignierungsanforderung erhalten hat.

Auf dem Master-Knoten

[E-Mail geschützt]: ~ $ sudo / opt / puppetlabs / bin / puppetserver ca list

[sudo] Passwort für Geekflare:

Angeforderte Zertifikate:

Marionettenagent (SHA256) EA: 68: 23: B5: C3: 71: 2C: E6: 4A: 6A: 3B: 2F: 24: F5: B8: 5B: 50: F7: 3F: 12: 89: DE: B1: EB: D1: 0A: 74: 3E: 48: C3: D7: 35

Unterschreiben Sie das vom Agenten gesendete Zertifikat.

[E-Mail geschützt]: ~ $ sudo / opt / puppetlabs / bin / puppetserver ca list

[sudo] Passwort für Geekflare:

Angeforderte Zertifikate:

Marionettenagent (SHA256) EA: 68: 23: B5: C3: 71: 2C: E6: 4A: 6A: 3B: 2F: 24: F5: B8: 5B: 50: F7: 3F: 12: 89: DE: B1: EB: D1: 0A: 74: 3E: 48: C3: D7: 35

Führen Sie den folgenden Befehl aus, um die gesamte Zertifikatliste zu überprüfen. Ein Zertifikat ist bereits vorhanden, standardmäßig der Masterknoten, und das andere stammt vom Agentenknoten.

[E-Mail geschützt]: ~ $ sudo / opt / puppetlabs / bin / puppetserver ca list –all

Signierte Zertifikate:

Marionettenagent (SHA256) EA: 68: 23: B5: C3: 71: 2C: E6: 4A: 6A: 3B: 2F: 24: F5: B8: 5B: 50: F7: 3F: 12: 89: DE: B1: EB: D1: 0A: 74: 3E: 48: C3: D7: 35

Puppet.geekflare.com (SHA256) 71: 30: 5B: C8: C5: CE: 28: A0: 60: 5C: 4F: 39: 26: D0: FC: DA: DF: 0A: 0F: 4D: ED: D4: B1: 9C: 05: 1A: 38: 2F: D6: 5F: 9C: 06 Alternativnamen: ["DNS: puppet.geekflare.com", "DNS: Marionette", "DNS: puppet.geekflare.com"]]

Auf dem Agentenknoten

Führen Sie nun diesen Befehl aus, um zu testen, ob die Verbindung zwischen Master- und Agentenknoten hergestellt wurde und alles ordnungsgemäß funktioniert.

[E-Mail geschützt]: ~ $ sudo / opt / puppetlabs / bin / puppet agent –test

Info: Verwenden der konfigurierten Umgebung ‘Produktion’

Info: Pluginfacts abrufen

Info: Plugin abrufen

Info: Gebietsschemas abrufen

Info: Caching-Katalog für Puppet-Agent

Info: Anwenden der Konfigurationsversion ‘1571171191’

Hinweis: Angewandter Katalog in 0,02 Sekunden

Beispiel Puppenbeispiel

Lassen Sie uns ein einfaches Puppenbeispiel ausführen. Ich werde ein einfaches Puppenmanifest erstellen, das ein Verzeichnis mit einer bestimmten Berechtigung erstellt.

Auf dem Master-Knoten:

[E-Mail geschützt]: ~ $ sudo gedit /etc/puppetlabs/code/environments/production/manifests/site.pp

 Fügen Sie den folgenden Inhalt ein.

Knoten ‘Puppetagent’ {# Gilt nur für den genannten Knoten. Wenn nichts erwähnt, gilt für alle.

Datei {‘/ home / test’: # Ressourcentypdatei

sicherstellen => ‘Verzeichnis’, # Erstellen Sie ein Verzeichnis

Besitzer => ‘root’, # Ownership

Gruppe => ‘root’, # Gruppenname

mode => ‘0755’, # Verzeichnisberechtigungen

}}

}}

Führen Sie nun den folgenden Befehl aus, damit ein Agent die Konfigurationen beherrscht und abruft. Nach dem Ausführen dieses Befehls sollte dieses Verzeichnis auf dem Agentenknoten erstellt werden.

Auf dem Agentenknoten

[E-Mail geschützt]: ~ $ sudo / opt / puppetlabs / bin / puppet agent –test

[sudo] Passwort für Geekflare:

Info: Verwenden der konfigurierten Umgebung ‘Produktion’

Info: Pluginfacts abrufen

Info: Plugin abrufen

Info: Gebietsschemas abrufen

Info: Caching-Katalog für Puppenspieler

Info: Anwenden der Konfigurationsversion ‘1571333010’

Hinweis: / Stage [main] / Main / Node [Puppetagent] / Datei [/ home / test] / sicherstellen: erstellt

Hinweis: Angewandter Katalog in 0,05 Sekunden

Führen Sie den Befehl ls aus, um zu überprüfen, ob der Director erfolgreich erstellt wurde. 

[E-Mail geschützt]: ~ $ ls -l / home /

insgesamt 32

drwxr-xr-x 13 geekflare geekflare 4096 19. Juli 08:06 geekflare

drwx —— 2 root root 16384 23. Oktober 2018 verloren + gefunden

drwxr-xr-x 23 geekflare geekflare 4096 17. Oktober 11:02 geekflare

drwxr-xr-x 2 root root 4096 17. Oktober 13:23 Test

drwxr-xr-x 2 Benutzername Benutzername 4096 29. Juni 09:38 Benutzername

Los geht’s!

Fazit

Dies war ein einfaches Beispiel, um seine Arbeitsweise zu demonstrieren. Stellen Sie sich jedoch ein größeres Szenario vor, in dem Sie eine bestimmte Konfiguration auf Hunderten von Servern installieren oder anwenden müssen. Puppe kann Ihnen helfen, es in Minuten zu erreichen.

Wenn Sie an der Automatisierung beteiligt sind und mehr erfahren möchten, können Sie dies überprüfen Udemy natürlich, das spricht über Ansible, Puppet und Salt.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map