Ich habe gerade Foreman zum ersten Mal eingerichtet und bin mir nicht sicher, wie ich alle meine Konfigurationen unter Versionskontrolle stellen soll. Ich weiß, dass ich Git für jedes Modul verwenden kann, das ich auf meinem Puppet-Master installiere, würde aber eine ganzheitlichere Lösung bevorzugen, die nicht nur Module umfasst, sondern auch, welche Klassen jedem Host zugeordnet sind und welche Variablen auf den Hosts festgelegt sind. Anregungen und zugehörige Workflows sind sehr willkommen. Falls es relevant ist, habe ich GitLab als zentralen Git-Server vor Ort eingerichtet und plane, bald einen CI-Server wie Jenkins einzurichten.
8
Antworten:
Es gibt ein Plugin, mit dem Sie Ihre Infrastrukturdefinition in Foreman beibehalten können, eine serialisierte Version Ihrer Daten in Git, und Änderungen hochladen (und Ihre Infrastruktur ändern) können. Vielleicht wäre das nützlich für dich
https://github.com/marianitadn/foregit
quelle
Mit foreman sollten Sie in der Lage sein, alle Klassen zusammen mit allen in den Hostdetails zugewiesenen Konfigurationsvariablen anzuzeigen. Siehe: http://theforeman.org/manuals/1.4/index.html .
quelle
Ich bin nicht sicher, ob ich Ihre Frage verstehe, aber sind Sie auf "Marionettenbibliothekar" https://github.com/rodjek/librarian-puppet gestoßen ? Dort können Sie definieren, welche Versionen / sha1 von Puppenmodulen Sie verwenden möchten.
quelle
Nur für den Fall, dass jemand dies später liest: Mit Puppet können Sie mit der Deklaration "version => XYZ" definieren, welche Version des Pakets / der Software Sie installieren möchten.
Gene, ich habe mein Bestes versucht, aber ich verstehe deine Frage immer noch nicht. Das tut mir leid :(
quelle
Ich denke, was Sie suchen, ist sehr einfach.
Die Puppet-Konfigurationen sind in
/etc/puppet
. Die einfachste Option ist nur auszuführengit init /etc/puppet/
Sie können dann Gitlab als Fernbedienung hinzufügen und darauf pushen.
Alternativ könnten Sie etwas wie das versuchen, was ich hier beschreibe , das nicht Foreman-zentriert ist, aber ich sehe keinen Grund, warum Sie es nicht als Inspiration verwenden könnten.
quelle
Sie könnten auch etckeeper in Betracht ziehen, was dies automatisch tut
Sie könnten sogar einen Wrapper wie schreiben
vi puppet_wrapper.sh
Ich arbeite eine Weile damit und es ist okay für meine Bedürfnisse.
quelle
Ich denke, Sie müssen nur ein Repository in Git einrichten, in dem jeder Zweig des Git-Repos einer Puppenumgebung zugeordnet wird. Wenn Sie etwas in Puppe ändern möchten, klonen Sie einfach das Repo, nehmen Sie Änderungen vor und verschieben Sie es in den entsprechenden Zweig. Sie müssen auch einen Git-Hook einrichten, der ausgelöst wird, wenn Sie Ihre Änderungen an dem Git-Repo vornehmen, damit die zugeordnete Umgebung auf dem Puppet-Server aktualisiert wird. Sie können dies alles entweder manuell oder einfach über dieses Puppenmodul tun.
https://github.com/theforeman/puppet-puppet
quelle