Puppet ist ein Open-Source-Tool zur Konfigurationsverwaltung und ein Framework zur Serverautomatisierung. Puppet kann sowohl auf Unix-ähnlichen Betriebssystemen als auch auf Microsoft Windows-Systemen ausgeführt werden. Es ermöglicht Ihnen, Verwaltungsaufgaben und die Konfiguration von Hunderten von Systemen von einem Master-Server aus zu verwalten und durchzuführen.
In diesem Tutorial werde ich Ihnen zeigen, wie Sie Puppet unter CentOS 7 installieren. Ich werde einen CentOS 7-Server als Puppet-„Master“ und den anderen als „Agent“ installieren und konfigurieren.
Voraussetzungen
- 2 CentOS 7-Server
- 10.0.15.10 master.hakase.io 2 GB Arbeitsspeicher
- 10.0.15.11 agent.hakase.io
- Root-Rechte
Was wir tun werden:
- Puppet-Vorinstallation
- Installieren und konfigurieren Sie den Puppet-Server
- Installieren und konfigurieren Sie Puppet Agent
- Puppet-Agent-Konfiguration überprüfen
- Erstes Puppet-Manifest erstellen
Schritt 1 - Puppet-Vorinstallation
In diesem Schritt werden wir einige Aufgaben ausführen, einschließlich Installation und Konfiguration auf beiden Servern Puppet Master und Puppet Agent. Wir werden die Datei des Hosts konfigurieren, die Zeit mit dem NTP-Server synchronisieren, SELinux deaktivieren und das Puppet-Repository zum System hinzufügen.
- Hosts konfigurieren
Stellen Sie mit Ihrem Root-Benutzer eine Verbindung zum Puppet Master und Agent her.
ssh [email protected]
ssh [email protected]
Bearbeiten Sie jetzt die Hosts mit dem vim-Editor.
vim /etc/hosts
Fügen Sie die folgende Konfiguration am Ende der Zeile hinzu.
10.0.15.10 master.hakase.io
10.0.15.11 agent.hakase.io
Speichern und beenden.
Testen Sie jetzt mit dem Ping-Befehl.
ping master.hakase.io
ping agent.hakase.io
Und stellen Sie sicher, dass Sie die Server-IP-Adresse 10.0.15.10 und 10.0.15.11 erhalten.
- NTP-Server konfigurieren
Es ist sehr wichtig, die Zeit zwischen Master- und Agent-Server synchron zu halten.
Installieren Sie die NTP-Pakete auf beiden Servern mit dem Befehl yum.
yum -y install ntp ntpdate
Wählen Sie nach Abschluss der Installation den gewünschten NTP-Pool aus, indem Sie den folgenden Befehl ausführen.
sudo ntpdate 0.centos.pool.ntp.org
Starten Sie nun den NTP-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.
sudo systemctl start ntpd
sudo systemctl enable ntpd
Die NTP-Installation und -Konfiguration ist abgeschlossen.
- SELinux deaktivieren
Bearbeiten Sie die SELinux-Konfiguration mit vim.
vim /etc/sysconfig/selinux
Ändern Sie den SELINUX-Wert auf „deaktiviert“.
SELINUX=disabled
Speichern und beenden.
- Puppet-Repository hinzufügen
Fügen Sie nun das Puppet-Repository mit dem folgenden rpm-Befehl zum System hinzu.
rpm -Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm
Wenn der Vorgang abgeschlossen ist, starten Sie beide Server neu.
reboot
Jetzt sind wir bereit für die Installation und Konfiguration von Puppet.
Schritt 2 – Puppetserver installieren und konfigurieren
In diesem Schritt installieren wir den Puppetserver auf dem Server master.hakase.io. Installieren Sie Puppetserver mit dem untenstehenden yum-Befehl.
sudo yum -y install puppetserver
Nachdem die Installation abgeschlossen ist, müssen wir die Speicherzuweisung für Puppetserver konfigurieren. Wir werden die maximale Speicherzuweisung für Puppetserver auf 1 GB festlegen.
Bearbeiten Sie die 'puppetserver'-Konfiguration mit vim.
vim /etc/sysconfig/puppetserver
Ändern Sie nun die Zeile wie folgt.
JAVA_ARGS="-Xms1g -Xmx1g ...."
Speichern und beenden.
Gehen Sie als Nächstes in das Puppet-Konfigurationsverzeichnis und bearbeiten Sie die Datei „puppet.conf“.
cd /etc/puppetlabs/puppet
vim puppet.conf
Fügen Sie die folgende Konfiguration hinzu.
[master]
dns_alt_names=master.hakase.io,puppet
[main]
certname = master.hakase.io
server = master.hakase.io
environment = production
runinterval = 1h
Speichern und beenden.
Starten Sie nun den Puppetserver und aktivieren Sie ihn so, dass er jedes Mal beim Start gestartet wird.
systemctl start puppetserver
systemctl enable puppetserver
Die Puppetserver Installation und Konfiguration wurde erfolgreich abgeschlossen.
Wenn Sie Firewalld auf Ihrem System verwenden, fügen Sie den Puppetserver-Port mit dem Befehl firewall-cmd unten zur Liste hinzu.
firewall-cmd --add-port=8140/tcp --permanent
firewall-cmd --reload
Schritt 3 – Puppet Agent installieren und konfigurieren
Wir werden den Puppet-Agenten auf dem Server „agent.hakase.io“ installieren.
Installieren Sie Puppet Agent mit dem untenstehenden yum-Befehl.
yum install -y puppet-agent
Wechseln Sie nach Abschluss der Installation in das Puppet-Konfigurationsverzeichnis und bearbeiten Sie die Datei puppet.conf.
cd /etc/puppetlabs/puppet
vim puppet.conf
Fügen Sie die folgende Konfiguration ein.
[main]
certname = agent.hakase.io
server = master.hakase.io
environment = production
runinterval = 1h
Speichern und beenden.
Als Nächstes registrieren wir den Puppet-Agenten beim Puppet-Master.
Führen Sie den folgenden Befehl in der Shell des Puppet-Agenten aus.
/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
Der Puppet-Agent läuft jetzt auf dem Server und versucht, sich beim Puppet-Master zu registrieren.
Nun zurück zur Puppet-Master-Shell und den folgenden Befehl ausführen.
/opt/puppetlabs/bin/puppet cert list
Und Sie erhalten die ausstehende Certificate Signing Request (CSR) vom Puppet-Agent-Server „agent.hakase.io“.
Signieren Sie das Zertifikat mit dem folgenden Befehl.
/opt/puppetlabs/bin/puppet cert sign agent.hakase.io
Und das Ergebnis sollte etwa so aussehen:
Der Puppet-Agent wird jetzt auf dem System ausgeführt und das Zertifikat für den Agenten wurde vom Puppet-Master signiert.
Schritt 4 – Überprüfen Sie die Konfiguration des Puppet-Agenten
Nachdem der Puppet-Master die Zertifikatsdatei für den Agenten signiert hat, führen Sie den folgenden Befehl auf dem Puppet-Agenten aus, um die Konfiguration zu überprüfen.
/opt/puppetlabs/bin/puppet agent --test
Und Sie erhalten das unten gezeigte Ergebnis.
Der Puppet-Agent hat die Konfiguration vom Puppet-Master abgerufen und ohne Fehler auf den Server angewendet.
Schritt 5 – Erstes Manifest erstellen
Die Installation und Konfiguration des Puppet-Masters und des Agenten ist abgeschlossen. Und für diesen Schritt erstellen wir ein einfaches Manifest zum Testen.
Wir erstellen das Manifest für die Installation des Apache httpd-Webservers.
Wechseln Sie auf dem Puppet-Master-Server in das Verzeichnis „/etc/puppetlabs/code/“ und erstellen Sie die neue Manifestdatei „site.pp“ mit vim.
cd /etc/puppetlabs/code/
cd environments/production/manifests
Neue Manifestdatei erstellen.
vim site.pp
Fügen Sie die folgende Konfiguration ein.
node 'agent.hakase.io' {
package { 'httpd':
ensure => "installed",
}
service { 'httpd':
ensure => running,
enable => true
}
}
Speichern und beenden.
Öffnen Sie nun die Puppet-Agent-Server-Shell und führen Sie den folgenden Befehl aus.
/opt/puppetlabs/bin/puppet agent --test
Der Befehl ruft eine neue Manifest-Konfigurationsdatei vom Puppet-Master ab und wendet sie dann auf den Agentenserver an.
Nachfolgend das Ergebnis.
Öffnen Sie Ihren Webbrowser und geben Sie die IP-Adresse des Puppet-Agenten ein.
http://10.0.15.11/
Und Sie erhalten die Standard-HTTP-Seite wie unten.
Der httpd-Webserver wurde mithilfe des Puppet-Manifests installiert.
Die Installation und Konfiguration des Puppet Master und des Puppet Agent auf CentOS 7 wurde erfolgreich abgeschlossen.