[LINUX] Installieren Sie Puppet Master und Client unter Ubuntu 16.04

** Puppet ** ist ein Open Source-Konfigurationsmanagementsystem für eine Vielzahl von Anwendungen, von der Automatisierung bis zur Update-Installation.

Vorwort

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.

Charakteristisch

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

Voraussetzungen

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

Einstellung des Hostnamens

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.

Installieren Sie Puppet

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/

Puppet Agent installieren

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

Unterschreiben Sie das Puppet Agent-Zertifikat auf dem Puppet Server

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

Konfigurieren Sie den Puppet-Server so, dass Apache auf dem Agentenknoten installiert wird

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

Installieren Sie Puppet Master und Client unter Ubuntu 16.04
Installieren Sie Mecab und mecab-python3 unter Ubuntu 14.04
Installieren Sie Dropbox und führen Sie es unter Ubuntu 20.04 aus
Installieren Sie OpenCV und Chainer unter Ubuntu
Installieren Sie CUDA 8.0 und Chainer unter Ubuntu 16.04
Installieren Sie Fabric unter Ubuntu und versuchen Sie es
Installieren Sie wsl2 und Master Linux unter Windows
Installieren Sie pyenv und Python 3.6.8 unter Ubuntu 18.04 LTS
Installieren Sie TensorFlow unter Ubuntu
Installieren Sie PySide2 unter Ubuntu
Installieren Sie JModelica unter Ubuntu
Installieren Sie Python 3.3 unter Ubuntu 12.04
Installieren Sie Theano unter Ubuntu 12.04
Installiere angr unter Ubuntu 18.04
Installiere pip / pip3 unter Ubuntu
Installieren Sie MongoDB unter Ubuntu 16.04 und arbeiten Sie über Python
Installieren Sie Apache 2.4 unter Ubuntu 19.10 Eoan Ermine und führen Sie CGI aus
wsl Installiere PostgreSQL unter Ubuntu 18.04
[ROS] Installiere ROS (melodisch) unter Ubuntu (18.04)
Installieren Sie Caffe unter Ubuntu 14.04 (GPU)
Installieren Sie Docker unter WSL Ubuntu 18.04
Installieren Sie Python3 und die wissenschaftliche Berechnungsbibliothek unter Ubuntu (virtualenv + pip)
Installieren Sie CUDA10.1 + cuDNN7.6.5 + tensorflow-2.3.0 unter Ubuntu 18.04
Installieren Sie Python 3.8 unter Ubuntu 18.04 (Betriebssystemstandard)
Installieren Sie Caffe unter Ubuntu 14.04 (CPU-Modus)
Installieren Sie Python 3.8 unter Ubuntu 20.04 (Betriebssystemstandard)
Installieren Sie Python 3.9 unter Ubuntu 20.04 (Betriebssystemstandard?)
Installieren Sie Confluent-Kafka für Python unter Ubuntu
Installieren Sie Python 2.7 unter Ubuntu 20.04 (Betriebssystemstandard?)
ROS-Studie Nr. 1 Installation von ros-noetic unter Ubuntu 20.04
Installieren Sie easy_install und pip unter Windows
Installieren Sie Ubuntu 18.04 auf dem MacBook Pro Touchbar-Modell und stellen Sie eine Verbindung zu WIFI her
Erstellen Sie Python 3 und OpenCV unter Ubuntu 18.04
Virtuelle Python-Umgebung und Pakete unter Ubuntu
Installieren und starten Sie k3s unter Manjaro Linux
Installieren und konfigurieren Sie den TigerVNC-Server unter Linux
Installieren Sie Ubuntu auf einem 32-Bit-UEFI-Ultra-Notebook
Installieren Sie Caffe mit 3D-CNN auf einem sauberen Ubuntu 14.04
Wie installiere ich php7.4 unter Linux (Ubuntu)
Installieren Sie pyenv und rbenv systemweit unter CentOS
Installieren Sie matplotlib und zeigen Sie das Diagramm in Jupyter Notebook an
Dask kann unter Ub nicht mit pip auf Ubuntu installiert werden
Installieren Sie Python3.5 + NumPy + SciPy und führen Sie es unter Windows 10 aus
Installieren Sie das Python-Paket in einer persönlichen Umgebung unter Ubuntu
[Prozedur-Memo] Installieren Sie Python3 + OpenSSL lokal unter Ubuntu
Shebang auf Ubuntu 20.04
Installieren Sie OpenCV 4.0 und Python 3.7 unter Windows 10 mit Anaconda
Installieren Sie Pip und Pandas mit Ubuntu oder VScode
Bis Sie ein Ubuntu-Boot-USB auf Ihrem Macbook erstellen und Ubuntu auf Ihrem Thinkpad installieren
Installieren Sie das neueste Cuda + CuDNN unter Ubuntu 18.04 @ Spring 2020
[Ubuntu] Installieren Sie Android Studio und erstellen Sie eine Verknüpfung
Installieren Sie die 64-Bit-Version von Ubuntu 20.04 LTS (Server) auf RaspberryPi3B +
Installieren Sie Python und Bibliotheken für Python unter MacOS Catalina
Installieren und Konfigurieren des PyFilter-Clients zur Überwachung von SSH-Verbindungen zum Alibaba Cloud Ubuntu-Server
Installieren Sie die ZIP-Version Python und Pip unter Windows 10
[AWS EC2] So installieren Sie nur den MySQL-Client unter Amazon Linux 2 und stellen eine Verbindung zu RDS her
Installieren Sie die neueste Version von CMake unter Ubuntu 18.04.4 LTS
Installieren Sie Python3 auf einem Mac und erstellen Sie eine Umgebung [Definitive Edition]