
Was wäre die bevorzugte Methode zum Aktualisieren der Konfiguration eines Knotens beim Bereitstellen neuer Knoten?
Nehmen wir beispielsweise an, es gibt eine clusterähnliche Umgebung
Ich bereite Knoten vor. Nehmen wir an, diese Knoten müssen auf einen Memcached- oder MySQL-Server auf einem anderen Knoten zugreifen (der ebenfalls von Puppet verwaltet wird).
Wie aktualisiere ich jetzt beim Hinzufügen eines neuen Knotens die Iptables-Konfiguration oder führe andere anfängliche Konfigurationsschritte durch, die auf einem anderen Knoten erforderlich sind, damit der neue Knoten seine Arbeit aufnehmen kann?
ich verwende für diese Aufgaben derzeit ein selbst entwickeltes „Bereitstellungssystem“. Gibt es eine praktische Möglichkeit, Puppet für so etwas zu verwenden?
Antwort1
Dies ist zwar nicht ganz einfach, mit den üblichen Puppet-Ressourcen jedoch möglich.
Für Konfigurationen wieFirewall-Regelnund Monitoring können Sie ganz einfach mitexportierte Ressourcenin Verbindung mit einem Storedconfigs-Backend wiePuppetDB.
Die Idee hinter exportierten Ressourcen besteht darin, dass das Puppet-Manifest beim Ausführen auf dem Zielknoten einige Ressourcen „exportiert“ und speichert. Sie können andere Knoten so konfigurieren, dass sie diese Ressourcen sammeln und in ihren eigenen Manifesten anwenden.
Bei anderen Konfigurationen müssen Sie möglicherweise cleverer vorgehen und dieVerkettungModul zusätzlich zu exportierten Ressourcen – Sie können beispielsweise theoretisch eine exportierte concat::fragment-Ressource verwenden und diese Ressourcen dort sammeln, wo Sie die Informationen benötigen – z. B. Datenbankanmeldeinformationen oder IPs des Lastenausgleichs.
Antwort2
Dies wird von Puppet nicht gut unterstützt. Um diese Art von Informationen zu erhalten, können SiePuppetDB abfragen. Puppet hat meines Wissens nicht die Fähigkeit, dies selbst zu tun, aberPuppet-PuppetDB-Abfragefügt das hinzu.Hier ist ein Tutorialbeim Zusammenführen der beiden, um eine Konfigurationsdatei mit Daten aus PuppetDB zu generieren.