** Puppet ** ist ein Open Source-Konfigurationsmanagementsystem für eine Vielzahl von Anwendungen, von der Automatisierung bis zur Update-Installation.
Puppet ist ein Open Source-Konfigurationsmanagementsystem, das von der Automatisierung bis zur Aktualisierung der Installation weit verbreitet ist. Es wurde in Ruby geschrieben und wurde speziell für die Verwaltung von Betriebssystemeinstellungen wie Unix und Windows entwickelt. Tausende physische und virtuelle Server können für eine einfache Installation und Verwaltung zentral von einem Server aus verwaltet werden.
Puppet kann sowohl in Client-Server- als auch in eigenständigen Architekturen verwendet werden. In der Client-Server-Architektur wird der Server als Master und der Client als Agent bezeichnet. Es gibt zwei Versionen von Puppet, Enterprise und Open Source. Beide unterstützen viele Linux-Distributionen und Windows. Puppet hilft Systemadministratoren, indem es den Zeitaufwand für sich wiederholende Aufgaben reduziert und ihnen ermöglicht, sich auf Projekte zu konzentrieren, die einen höheren Geschäftswert bieten.
--Puppet unterstützt Idempotenz und macht es einfach, dieselben Einstellungen mehrmals auf demselben Computer auszuführen.
Dieses Handbuch enthält Schritte zum Installieren und Konfigurieren von Open Source Puppet auf einem Ubuntu 16.04-Server mit einer ECS-Instanz (Alibaba Cloud Elastic Compute Service) in einer Client / Server-Architektur.
--Alibaba Cloud ECS-Instanz für Puppet Master mit installiertem Ubuntu 16.04. --Alibaba Cloud ECS-Instanz für Puppet Agent mit installiertem Ubuntu 16.04.
Bevor Sie beginnen, müssen Sie die Dateien / etc / hosts und / etc / hostname auf den Server- und Agentenknoten konfigurieren, damit diese Dateien miteinander kommunizieren können.
Öffnen Sie die Dateien / etc / hosts und / etc / hostname auf dem Serverknoten und nehmen Sie die folgenden Änderungen vor:
sudo nano /etc/hosts
Fügen Sie die folgende Zeile am Ende der Datei hinzu.
192.168.0.0.103 puppet-server
sudo nano /etc/hostname
Ändern Sie die Datei wie folgt.
puppet-server
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Öffnen Sie die Dateien / etc / hosts und / etc / hostname auf dem Agent-Knoten und nehmen Sie die folgenden Änderungen vor:
sudo nano /etc/hosts
Fügen Sie die folgende Zeile am Ende der Datei hinzu.
192.168.0.0.103 puppet-server
sudo nano /etc/hostname
Ändern Sie die Datei wie folgt.
puppet-agent
Speichern und schließen, wenn Sie fertig sind.
Der Puppet-Server ist im Standard-Repository für Ubuntu 16.04 nicht verfügbar. Daher müssen Sie das Puppet Lab-Repository sowohl dem Master- als auch dem Agent-Knoten hinzufügen.
wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
sudo dpkg -i puppetlabs-release-pc1-xenial.deb
sudo apt-get update -y
Installieren Sie dann das Puppet-Serverpaket mit dem folgenden Befehl auf dem Masterknoten:
sudo apt-get install puppetserver -y
Nach der Installation des Puppet-Servers müssen Sie die Speicherzuordnung festlegen. Es wird empfohlen, die Speichernutzung entsprechend der Speichermenge auf dem Masterknoten anzupassen. Dies kann durch Bearbeiten der Datei / etc / default / puppetserver erfolgen.
sudo nano /etc/default/puppetserver
Ändern Sie die Leitung entsprechend der Kapazität des Servers.
Ändern Sie die folgende Zeile.
Von JAVA_ARGS =" - Xms2g -Xmx2g -XX: MaxPermSize = 256m "
Gehen Sie zu JAVA_ARGS =" -Xms512m -Xmx512m "
.
Speichern und schließen Sie die Datei und starten Sie den Puppet-Server mit dem folgenden Befehl, damit er beim Start gestartet werden kann.
sudo systemctl start puppetserver
sudo systemctl enable puppetserver
Sie können den Status des Puppet-Servers mit dem folgenden Befehl überprüfen.
sudo systemctl status puppetserver
Wenn alles in Ordnung ist, sollten Sie eine Ausgabe ähnlich der folgenden sehen:
● puppetserver.service - puppetserver Service
Loaded: loaded (/lib/systemd/system/puppetserver.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2017-10-28 18:47:26 IST; 12min ago
Process: 887 ExecStart=/opt/puppetlabs/server/apps/puppetserver/bin/puppetserver start (code=exited, status=0/SUCCESS)
Main PID: 963 (java)
CGroup: /system.slice/puppetserver.service
└─963 /usr/bin/java -Xms256m -Xmx256m -Djava.security.egd=/dev/urandom -XX:OnOutOfMemoryError=kill -9 %p -cp /opt/puppetlabs/server/
Der Puppet-Server ist jetzt betriebsbereit. Es ist endlich Zeit, den Puppet-Agenten auf dem Agentenknoten zu installieren.
Stellen Sie vor der Installation des Puppet-Agenten sicher, dass das Puppet Lab-Repository auf dem Agentenknoten installiert ist. Führen Sie dann einfach den folgenden Befehl aus, um den Puppet-Agenten zu installieren.
sudo apt-get install puppet-agent -y
Nach der Installation des Puppet Agent müssen Sie die Puppet-Konfigurationsdatei bearbeiten, um die Puppet-Master-Informationen festzulegen.
Dies kann mit dem folgenden Befehl erfolgen:
sudo nano /etc/puppetlabs/puppet/puppet.conf
Fügen Sie die folgende Zeile hinzu.
[main]
certname = puppet-agent
server = puppet-server
environment = IT
Speichern und schließen Sie die Datei und starten Sie den Puppet Agent-Dienst mit dem folgenden Befehl, damit er beim Start gestartet werden kann.
sudo systemctl start puppet
sudo systemctl enable puppet
Wenn Puppet zum ersten Mal einen Agentenknoten ausführt, sendet Puppet eine Zertifikatsignierungsanforderung an den Puppet-Server. In einer Client-Server-Architektur muss der Puppet-Master-Server die Zertifikatanforderung für jeden Agentenknoten genehmigen, um die Agentenknoten zu steuern.
Listen Sie auf dem Puppet-Server alle nicht signierten Zertifikatanforderungen mit dem folgenden Befehl auf:
sudo /opt/puppetlabs/bin/puppet cert list
Sie sollten eine Anforderung mit dem Hostnamen des Agentenknotens sehen.
"puppet-agent" (SHA256) 7C:28:E8:AF:09:23:55:19:AF:C1:EE:C3:66:F2:02:73:AD:7F:53:17:28:CE:B0:26:AE:C7:6C:67:16:05:6F:2E
Signieren Sie dann die Zertifikatanforderung mit dem folgenden Befehl:
sudo /opt/puppetlabs/bin/puppet cert sign puppet-agent
Sie sollten eine Ausgabe ähnlich der folgenden sehen.
Signing Certificate Request for:
"puppet-agent" (SHA256) 7C:28:E8:AF:09:23:55:19:AF:C1:EE:C3:66:F2:02:73:AD:7F:53:17:28:CE:B0:26:AE:C7:6C:67:16:05:6F:2E
Notice: Signed certificate request for puppet-agent
Notice: Removing file Puppet::SSL::CertificateRequest puppet-agent at '/etc/puppetlabs/puppet/ssl/ca/requests/puppet-agent.pem'
Der Puppet Master Server kann jetzt den Agentenknoten kommunizieren und steuern. Wenn Sie Zertifikatanforderungen für mehrere Knoten gleichzeitig signieren möchten, führen Sie den folgenden Befehl aus:
sudo /opt/puppetlabs/bin/puppet cert sign —all
Nachdem der Puppet-Master das Puppet-Agent-Zertifikat signiert hat, testen Sie es, indem Sie den folgenden Befehl auf dem Puppet-Agent-Knoten ausführen.
sudo /opt/puppetlabs/bin/puppet agent —test
Wenn alles richtig gemacht wurde, sollte eine Ausgabe ähnlich der folgenden angezeigt werden:
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for puppet-agent
Info: Applying configuration version '1509200872'
Notice: Applied catalog in 0.09 seconds
Damit sind die Einstellungen sowohl für den Puppet-Master als auch für den Agentenknoten abgeschlossen und sie funktionieren jetzt. Lassen Sie uns endlich Puppet überprüfen.
Erstellen Sie dazu eine Manifestdatei, um den Apache-Webserver auf dem Agentenknoten zu installieren. Das Manifest ist eine Datendatei, die die Clienteinstellungen enthält. Standardmäßig befindet sich die Manifestdatei im Verzeichnis / etc / puppetlabs / code / environment / Production / Manifest / Verzeichnis.
Sie müssen das Puppetlabs-Apache-Modul installieren, bevor Sie mit der Erstellung der Manifestdatei fortfahren können.
Führen Sie auf dem Puppet-Masterknoten den folgenden Befehl aus, um das Puppetlabs-Apache-Modul zu installieren.
sudo /opt/puppetlabs/bin/puppet module install puppetlabs-apache
Sie sollten eine Ausgabe ähnlich der folgenden sehen.
Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ...
Notice: Downloading from https://forgeapi.puppet.com ...
Notice: Installing -- do not interrupt ...
/etc/puppetlabs/code/environments/production/modules
└─┬ puppetlabs-apache (v2.3.0)
├── puppetlabs-concat (v4.1.0)
└── puppetlabs-stdlib (v4.20.0)
Erstellen Sie als Nächstes mit dem folgenden Befehl eine Manifestdatei auf dem Puppet Master.
sudo nano /etc/puppetlabs/code/environments/production/manifests/site.pp
Fügen Sie die folgende Zeile hinzu.
node 'puppet-agent' {
class { 'apache': } # use apache module
apache::vhost { 'localhost': # define vhost resource
port => '80',
docroot => '/var/www/html'
}
}
Die obige Konfiguration installiert Apache, konfiguriert einen virtuellen Host namens localhost, überwacht Port 80 und verfügt über ein Dokumentstammverzeichnis / var / www / html auf dem Agentenknoten.
Führen Sie nun den folgenden Befehl auf dem Agentenknoten aus, um alle Einstellungen aus der Manifestdatei abzurufen.
sudo /opt/puppetlabs/bin/puppet agent —test
Wenn alles gut geht, sollten Sie eine Ausgabe ähnlich der folgenden sehen:
`` Notice: /Stage[main]/Apache/Apache::Vhost[default]/File[15-default.conf symlink]/ensure: created Info: /Stage[main]/Apache/Apache::Vhost[default]/File[15-default.conf symlink]: Scheduling refresh of Class[Apache::Service] Notice: /Stage[main]/Main/Node[puppet-agent]/Apache::Vhost[localhost]/Concat[25-localhost.conf]/File[/etc/apache2/sites-available/25-localhost.conf]/ensure: defined content as '{md5}05a8b8c6772009021086814bdf8c985e' Info: Concat[25-localhost.conf]: Scheduling refresh of Class[Apache::Service] Notice: /Stage[main]/Main/Node[puppet-agent]/Apache::Vhost[localhost]/File[25-localhost.conf symlink]/ensure: created Info: /Stage[main]/Main/Node[puppet-agent]/Apache::Vhost[localhost]/File[25-localhost.conf symlink]: Scheduling refresh of Class[Apache::Service] Info: Class[Apache::Service]: Scheduling refresh of Service[httpd] Notice: /Stage[main]/Apache::Service/Service[httpd]: Triggered 'refresh' from 1 events Notice: Applied catalog in 53.11 seconds
####Fazit
Dieses Tutorial erleichtert die Installation eines Puppet-Servers in einer Produktionsumgebung und die Verwaltung Ihrer gesamten IT-Infrastruktur. Weitere Informationen zu Puppet finden Sie auf der offiziellen Dokumentationsseite von Puppet. Für andere Tutorials,[Alibaba Cloud Getting Started](https://www.alibabacloud.com/ja/getting-started)Es wird auch auf dem Kanal veröffentlicht.
*Alibaba Cloud verfügt über zwei Rechenzentren in Japan und mehr als 60 Verfügbarkeitszonen im asiatisch-pazifischen Raum..1(2019 Gartner)Ist ein Cloud-Infrastrukturbetreiber.
Klicken Sie hier, um weitere Informationen zu Alibaba Cloud zu erhalten.
[Alibaba Cloud Japan Offizielle Seite](https://www.alibabacloud.com/ja)*
Recommended Posts