Windows
Schritt 1.
Win + Rdrücken,notepad C:\Windows\System32\drivers\etc\hostseingeben und Enter drücken (Notepad besser als Administrator ausführen).- Ganz unten folgende Zeile hinzufügen:
192.168.0.14 puppet(Wenn Windows fragt “Wo ist puppet?”, geht es intern über 192.168.0.14). 3. Datei speichern. 4. Verbindung prüfen. PowerShell (auf Windows Server) öffnen und eingeben:
ping puppetAntwort von 192.168.0.14 sollte kommen. Wenn der Ping erfolgreich ist — wir sind bereit für die Agent-Installation.
Schritt 2. Windows in einen verwalteten Computer verwandeln (Agent) 🖥️
Da du einen leistungsstarken Windows Server hast, lass uns ihn zum ersten “Client” von Puppet machen! Du kannst seine Einstellungen direkt vom Linux-Server aus verwalten. Dafür muss Windows wissen, wo es den “puppet”-Server suchen soll. Auf Windows:
Win + Rdrücken,notepad C:\Windows\System32\drivers\etc\hostseingeben und Enter drücken (Notepad besser als Administrator ausführen).- Ganz unten folgende Zeile hinzufügen:
192.168.0.14 puppet(Wenn Windows fragt “Wo ist puppet?”, geht es intern über 192.168.0.14). 3. Datei speichern. 4. Verbindung prüfen. PowerShell (auf Windows Server) öffnen und eingeben:
ping puppetAntwort von 192.168.0.14 sollte kommen. Wenn der Ping erfolgreich ist — wir sind bereit für die Agent-Installation.
Schritt 3. Agent auf Windows installieren 📦
Jetzt das Interessanteste. Den Agent auf Windows Server installieren.
- Den offiziellen Installer (MSI) für Windows x64 herunterladen: Puppet Agent Download (Direkt auf Windows Server herunterladen).
- Installation starten.
- Im Installationsassistenten bis zum Feld Puppet Server durchklicken.
- Dort einfach das Wort:
puppeteingeben. (Den Rest wie er ist lassen). - Install klicken.
Schritt 4. “Hochzeit” (Zertifikat signieren) 💍
Der Agent auf Windows klopft beim Linux-Server an. Der Server sieht ihn, lässt ihn aber nicht rein, bis du (der Administrator) es erlaubst.
- Auf Linux (Puppet Server): Prüfen, ob die Anfrage angekommen ist:
sudo /opt/puppetlabs/bin/puppetserver ca list`Du solltest so etwas sehen: "win-server-2022.local" (SHA256: ...) — das ist dein Windows, das um Verwaltung bittet.
2. Zugriff erlauben (Zertifikat signieren):
sudo /opt/puppetlabs/bin/puppetserver ca sign --all(Gibt aus: Successfully signed certificate...).
sudo ln -s /opt/puppetlabs/bin/puppetserver /usr/local/bin/puppetserversudo rm -rf /etc/puppetlabs/puppet/sslFinale: Verbindung prüfen 🚀
Zurück zu Windows Server, PowerShell als Administrator öffnen und den manuellen Sync-Befehl eingeben:
puppet agent -tAgent-Intervall ändern
Methode 1. Schnell (Über Kommandozeile) ⚡
Der sicherste Weg, da Puppet selbst die Einstellung in die richtige Datei schreibt und keine Syntaxfehler macht.
- Auf Windows Server PowerShell (Admin) öffnen.
- Um das Intervall z.B. auf 10 Minuten zu setzen, eingeben:
puppet config set runinterval 10m --section agent
(Man kann s - Sekunden, m - Minuten, h - Stunden verwenden).
3. Wichtig: Damit die Änderung wirksam wird, den Dienst neu starten (sonst läuft er die aktuellen 30 Minuten nach den alten Einstellungen):
Restart-Service puppet
Fertig! Jetzt meldet er sich alle 10 Minuten.
Methode 2. “Chirurgisch” (Über Konfigurationsdatei) 📝
Um zu sehen, wo diese Einstellung physisch liegt:
- Notepad als Administrator öffnen.
- Datei öffnen:
C:\ProgramData\PuppetLabs\puppet\etc\puppet.conf(Der Ordner ProgramData ist normalerweise ausgeblendet, einfach den Pfad in die Öffnungszeile einfügen). - Abschnitt
[agent]finden. - Diese Zeile hinzufügen oder ändern:
[agent]
server = puppet
runinterval = 10m
- Speichern und Dienst neu starten (
Restart-Service puppet).
⚠️ Profi-Tipp
In der echten Produktion kein Intervall unter 5-10 Minuten setzen. Jetzt hast du 1 Server und Puppet schafft es auch mit 1 Minute. Aber wenn es 100 Server werden und sie alle jede Minute beim Master anklopfen — er bricht unter der Last zusammen (DDoS mit eigener Hand).
Empfehlung:
- Für Tests/Entwicklung: 5m oder 10m.
- Für Produktion (Live-Server): 30m oder 1h.
Methode 3.
Wir brauchen das Modul puppetlabs-inifile. Es kann eine einzelne Zeile in Textdateien chirurgisch präzise ändern.
Auf dem Server eingeben:
sudo /opt/puppetlabs/bin/puppet module install puppetlabs-inifileJetzt sagen wir dem Puppet:
- Finde deine Konfigurationsdatei.
- Finde darin den Parameter
runinterval. - Stelle ihn auf
5m(5 Minuten). - Wichtig: Wenn du etwas geändert hast, starte dich selbst neu, damit die Änderungen wirksam werden.
site.ppöffnen:
sudo nano /etc/puppetlabs/code/environments/production/manifests/site.ppDiesen Code innerhalb des Blocks node 'srv-dc01.vbo.local' hinzufügen:
# --- Block 5: Agent selbst konfigurieren (Puppet konfiguriert Puppet) ---
# 1. Puppet-Dienst deklarieren, damit wir ihn neu laden können
service { 'puppet':
ensure => running,
enable => true,
}
# 2. Startfrequenz in der Konfigurationsdatei ändern
ini_setting { 'change_interval':
ensure => present,
path => 'C:/ProgramData/PuppetLabs/puppet/etc/puppet.conf',
section => 'agent',
setting => 'runinterval',
value => '5m', # Auf 5 Minuten setzen
notify => Service['puppet'], # MAGIE: Wenn Datei geändert -> Dienst neu starten!
}Beachte die Zeile notify. Das ist ein Ereignismechanismus. Der Dienst wird NUR neu gestartet, wenn sich die Datei ändert. Wenn die Datei bereits korrekt ist — kein überflüssiger Neustart.
Zurück zu Windows gehen und den Agent starten (ein letztes Mal manuell, um diese Einstellung anzuwenden):
puppet agent -t