Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Wie installiere ich Puppet 6 unter Ubuntu 18?

Marionette Ubuntu
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Erfahren Sie, wie Sie einen Puppet-Server und -Agenten installieren und einrichten, damit sie miteinander kommunizieren.

Puppet ist eines der am häufigsten von Unternehmen verwendeten Konfigurationsmanagement-Tools in der DevOps-Welt. Als ein DevOps-Ingenieurmüssen Sie wissen, wie Sie eine Puppe 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 erwähnten Ablauf der Schritte ä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 nehmen Online-Videokurs.

Environment Details

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

Installing Puppet Server

Bevor ich mit der Installation beginne, muss ich das bearbeiten /etc/hosts Datei auf Master und Agent, damit sie sich gegenseitig auflösen können.

Auf dem Master-Knoten

geekflare@puppet-master:~$ sudo gedit /etc/hosts

[sudo] password for geekflare:

127.0.0.1 localhost
127.0.1.1 geekflare
192.168.0.108 puppet puppet.geekflare.com

Auf dem Agentenknoten

geekflare@puppet-agent:~$ sudo gedit /etc/hosts

127.0.0.1 localhost
127.0.1.1 geekflare
192.168.0.107 puppetagent
192.168.0.108 puppet puppet.geekflare.com

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

Laden Sie das Puppen-Repository herunter.

geekflare@puppet-master:~$ wget https://apt.puppetlabs.com/puppet6-release-bionic.deb

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

Resolving apt.puppetlabs.com (apt.puppetlabs.com)... 99.86.19.107, 99.86.19.59, 99.86.19.2, ...

Connecting to apt.puppetlabs.com (apt.puppetlabs.com)|99.86.19.107|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 11736 (11K) [application/x-debian-package]

Saving to: ‘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’ saved [11736/11736]

Puppet 6 Repo hinzufügen und konfigurieren.

geekflare@puppet-master:~$ sudo dpkg -i puppet6-release-bionic.deb

Selecting previously unselected package puppet6-release.

(Reading database ... 187041 files and directories currently installed.)

Preparing to unpack puppet6-release-bionic.deb ...

Unpacking puppet6-release (6.0.0-5bionic) ...

Setting up puppet6-release (6.0.0-5bionic) ...

Aktualisieren Sie die Repository-Liste.

geekflare@puppet-master:~$ sudo apt update

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

Hit:2 http://security.ubuntu.com/ubuntu cosmic-security InRelease             

Hit: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]                    

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

Hit:7 http://us.archive.ubuntu.com/ubuntu cosmic-updates InRelease            

Get:8 http://download.virtualbox.org/virtualbox/debian cosmic/contrib amd64 Packages [1,466 B]

Get:9 http://apt.puppetlabs.com bionic/puppet6 all Packages [13.5 kB]

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

Get:11 http://apt.puppetlabs.com bionic/puppet6 i386 Packages [13.5 kB]

Get:12 http://apt.puppetlabs.com bionic/puppet6 amd64 Packages [32.3 kB]

Fetched 151 kB in 2s (61.9 kB/s) 

Reading package lists... Done

Building dependency tree      

Reading state information... Done

234 packages can be upgraded. Run 'apt list --upgradable' to see them.

Installing Puppet Server

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

geekflare@puppet-master:~$ sudo apt install -y puppetserver

Reading package lists... Done

Building dependency tree      

Reading state information... Done

The following additional packages will be installed:

 ca-certificates-java java-common openjdk-8-jre-headless puppet-agent

Suggested packages:

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

 fonts-wqy-microhei fonts-wqy-zenhei

The following NEW packages will be installed:

 ca-certificates-java java-common openjdk-8-jre-headless puppet-agent

 puppetserver

0 upgraded, 5 newly installed, 0 to remove and 234 not upgraded.

Need to get 109 MB of archives.

After this operation, 287 MB of additional disk space will be used.

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

Get: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/universe amd64 openjdk-8-jre-headless amd64 8u212-b03-0ubuntu1.18.10.1 [27.2 MB]

Get:4 http://apt.puppetlabs.com bionic/puppet6 amd64 puppetserver all 6.7.1-1bionic [61.5 MB]

Get:5 http://us.archive.ubuntu.com/ubuntu cosmic/main amd64 ca-certificates-java all 20180516ubuntu1 [12.3 kB]

Fetched 109 MB in 1min 41s (1,072 kB/s)                                       

Unpacking puppetserver (6.7.1-1bionic) ...

Setting up puppet-agent (6.10.1-1bionic) ...

Created symlink /etc/systemd/system/multi-user.target.wants/puppet.service → /lib/systemd/system/puppet.service.

Created symlink /etc/systemd/system/multi-user.target.wants/pxp-agent.service → /lib/systemd/system/pxp-agent.service.

Removed /etc/systemd/system/multi-user.target.wants/pxp-agent.service.

Setting up java-common (0.68ubuntu1) ...

Processing triggers for libc-bin (2.28-0ubuntu1) ...

Processing triggers for systemd (239-7ubuntu10.12) ...

Processing triggers for man-db (2.8.4-2) ...

Processing triggers for ca-certificates (20180409) ...

Updating certificates in /etc/ssl/certs...

0 added, 0 removed; done.

Running hooks in /etc/ca-certificates/update.d...

done.

Setting up ca-certificates-java (20180516ubuntu1) ...

head: cannot open '/etc/ssl/certs/java/cacerts' for reading: No such file or directory

Adding debian:SSL.com_EV_Root_Certification_Authority_ECC.pem

Adding debian:ssl-cert-snakeoil.pem

Adding debian:SwissSign_Gold_CA_-_G2.pem

Adding debian:SZAFIR_ROOT_CA2.pem

Adding debian:OpenTrust_Root_CA_G3.pem

Adding debian:TWCA_Root_Certification_Authority.pem

Adding debian:QuoVadis_Root_CA_2_G3.pem

Adding debian:DST_Root_CA_X3.pem

Adding debian:SecureSign_RootCA11.pem

Adding debian:QuoVadis_Root_CA_1_G3.pem

Adding debian:T-TeleSec_GlobalRoot_Class_3.pem

Adding debian:Go_Daddy_Root_Certificate_Authority_-_G2.pem

Adding debian:Actalis_Authentication_Root_CA.pem

Adding debian:Chambers_of_Commerce_Root_-_2008.pem

done.

Processing triggers for ca-certificates (20180409) ...

Updating certificates in /etc/ssl/certs...

0 added, 0 removed; done.

Running hooks in /etc/ca-certificates/update.d...

done.

done.

Setting up openjdk-8-jre-headless:amd64 (8u212-b03-0ubuntu1.18.10.1) ...

Setting up puppetserver (6.7.1-1bionic) ...

usermod: no changes

Processing triggers for systemd (239-7ubuntu10.12) ...

Configuring Puppet Server

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

geekflare@puppet-master:~$ sudo gedit /etc/default/puppetserver

 
# Modify this if you'd like to change the memory allocation, enable JMX, etc

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

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

geekflare@puppet-master:~$ sudo gedit /etc/puppetlabs/puppet/puppet.conf


# This file can be used to override the default puppet settings.

# See the following links for more details on what settings are available:

# - 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

[master]

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 = puppet,puppet.geekflare.com

[main]

certname = puppet.geekflare.com

server = puppet.geekflare.com

environment = production

runinterval = 15m

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

geekflare@puppet-master:~$ sudo /opt/puppetlabs/bin/puppetserver ca setup

Generation succeeded. Find your files in /etc/puppetlabs/puppet/ssl/ca

 Starten und aktivieren Sie den Puppet Server-Dienst.

geekflare@puppet-master:~$ sudo systemctl start puppetserver

geekflare@puppet-master:~$ sudo systemctl enable puppetserver

Synchronizing state of puppetserver.service with SysV service script with /lib/systemd/systemd-sysv-install.

Executing: /lib/systemd/systemd-sysv-install enable puppetserver

Installing Puppet Agent

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

geekflare@puppet-agent:~$ wget https://apt.puppetlabs.com/puppet6-release-bionic.deb

geekflare@puppet-agent:~$ sudo dpkg -i puppet6-release-bionic.deb

geekflare@puppet-agent:~$ sudo apt update

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

geekflare@puppet-agent:~$ sudo apt install -y puppet-agent

Reading package lists... Done

Building dependency tree      

Reading state information... Done

The following NEW packages will be installed:

 puppet-agent

0 upgraded, 1 newly installed, 0 to remove and 233 not upgraded.

Need to get 19.9 MB of archives.

After this operation, 115 MB of additional disk space will be used.

Get:1 http://apt.puppetlabs.com bionic/puppet6 amd64 puppet-agent amd64 6.10.1-1bionic [19.9 MB]

Fetched 19.9 MB in 2s (8,488 kB/s)      

Selecting previously unselected package puppet-agent.

(Reading database ... 185786 files and directories currently installed.)

Preparing to unpack .../puppet-agent_6.10.1-1bionic_amd64.deb ...

Unpacking puppet-agent (6.10.1-1bionic) ...

Setting up puppet-agent (6.10.1-1bionic) ...

Created symlink /etc/systemd/system/multi-user.target.wants/puppet.service → /lib/systemd/system/puppet.service.

Created symlink /etc/systemd/system/multi-user.target.wants/pxp-agent.service → /lib/systemd/system/pxp-agent.service.

Removed /etc/systemd/system/multi-user.target.wants/pxp-agent.service.

Processing triggers for libc-bin (2.28-0ubuntu1) ...

Configuring Puppet Agent

 Bearbeiten Sie die Puppet-Konfigurationsdatei auf dem Agentenknoten.

geekflare@puppet-agent:~$ sudo gedit /etc/puppetlabs/puppet/puppet.conf

[main]

certname = puppetagent

server = puppet.geekflare.com

environment = production

runinterval = 15m

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

geekflare@puppet-agent:~$ sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

service { 'puppet':

 ensure => 'running',

 enable => 'true',

} 

Generate and Sign Certificates

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

geekflare@puppet-master:~$ sudo /opt/puppetlabs/bin/puppetserver ca list

[sudo] password for geekflare:

Requested Certificates:

   puppetagent (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.

geekflare@puppet-master:~$ sudo /opt/puppetlabs/bin/puppetserver ca list

[sudo] password for geekflare:

Requested Certificates:

   puppetagent (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.

geekflare@puppet-master:~$ sudo /opt/puppetlabs/bin/puppetserver ca list --all

Signed Certificates:

   puppetagent (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 alt names: ["DNS:puppet.geekflare.com", "DNS:puppet", "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.

geekflare@puppet-agent:~$ sudo /opt/puppetlabs/bin/puppet agent --test

Info: Using configured environment 'production'

Info: Retrieving pluginfacts

Info: Retrieving plugin

Info: Retrieving locales

Info: Caching catalog for puppet-agent

Info: Applying configuration version '1571171191'

Notice: Applied catalog in 0.02 seconds

Sample Puppet Example

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:

geekflare@puppet-master:~$ sudo gedit /etc/puppetlabs/code/environments/production/manifests/site.pp

 Fügen Sie den folgenden Inhalt ein.

node 'puppetagent' { # Applies only to mentioned node. If nothing mentioned, applies to all.

    file { '/home/test': # Resource type file

            ensure => 'directory', # Create a directory

            owner => 'root', # Ownership

            group => 'root', # Group Name

            mode => '0755', # Directory permissions

         }

}

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

geekflare@puppet-agent:~$ sudo /opt/puppetlabs/bin/puppet agent --test

[sudo] password for geekflare:

Info: Using configured environment 'production'

Info: Retrieving pluginfacts

Info: Retrieving plugin

Info: Retrieving locales

Info: Caching catalog for puppetagent

Info: Applying configuration version '1571333010'

Notice: /Stage[main]/Main/Node[puppetagent]/File[/home/test]/ensure: created

Notice: Applied catalog in 0.05 seconds

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

geekflare@puppet-agent:~$ ls -l /home/

total 32

drwxr-xr-x 13 geekflare geekflare 4096 Jul 19 08:06 geekflare

drwx------ 2 root root 16384 Oct 23 2018 lost+found

drwxr-xr-x 23 geekflare geekflare 4096 Oct 17 11:02 geekflare

drwxr-xr-x 2 root root 4096 Oct 17 13:23 test

drwxr-xr-x 2 username username 4096 Jun 29 09:38 username

Dort gehen Sie!

Conclusion

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, die über Ansible, Puppet und Salt spricht.

Danke an unsere Sponsoren
Weitere großartige Lektüre zu DevOps
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder