Bis vor kurzem haben wir Marionette auf eine sehr einfache Art und Weise verwendet. Um iptables zu verwalten, haben wir eine iptables-save-Datei erstellt und diese geladen. Ich möchte unser iptables-Management neu gestalten und das puppetlabs/firewall-Modul verwenden.Marionette: Verwendung von YAMLs mit Puppetlabs/Firewall
Best Practices schlagen vor, dass ich .yaml-Dateien verwenden, um damit umzugehen, aber ich habe eine Menge Probleme mit Hiera() und Yamls.
ich common.yaml möchte eine Liste von Bereichen mit einer gewissen Gruppe zugeordnet haben:
firewall_group:
localdomain:
- 10.0.0.3/32
- 10.10.0.0/26
anotherdomain:
- 172.0.1.0/26
Und ich möchte in einem anderen {$ certname} .yaml eine Liste von Ports enthalten, die der Host akzeptieren Zugang aus von einer Liste der Gruppen:
ports:
ssh:
number: 22
groups:
- localdomain
http:
number: 80
groups:
- localdomain
- anotherdomain
Was ist der beste Weg, um diese Firewall-Regeln mit Puppet Labs/Firewall erstellen? (Angenommen, die Hiera.Yaml sucht diese .Yaml-Dateien korrekt) Ich setze die .pp-Datei in die Datei custom_fw/manifests/core.pp, die init.pp enthält.
Ich habe versucht, die $ ports.each-Methode und die create_resources() -Methode zu verwenden Suche nach "verschachtelte Yaml-Loop-Puppe", aber ich bin mir sicher, dass ich einen Fehler gemacht, der die Marionette fehlschlagen.
Vielen Dank im Voraus für jede Einsicht!
Thank you! Ich konnte firewall_multi leider nicht zum arbeiten bringen. Ich schaffte es, herauszufinden, wie ich meine Frage mit .each() lösen konnte, obwohl es etwas Feingefühl erforderte. –
Wenn Sie mich wissen lassen könnten, was schief gelaufen ist, als Sie versucht haben, firewall_multi zu verwenden, wäre ich Ihnen dankbar. Sie sollten keine Schleife über Ports (Ports.each usw.) brauchen, da das Firewall-Modul (das Puppet Labs) bereits ein Array von Ports als Eingabe akzeptiert. Fyi –
Oh Entschuldigung, ich verstehe. Sie haben Ihren Hash in Hiera "Ports" aufgerufen. Ok, ignoriere meinen Kommentar. –