Ich habe ein Kochbuch erstellt und verwende es, manage.chef.io
um es zu hosten und bereitzustellen. Ich habe das Kochbuch im privaten GitHub-Repo gehostet.
Stellen Sie sich ein Szenario vor:
Wenn ich einige Änderungen am Kochbuch vornehme und knife cookbook upload
es, aber ichvergessen zu drückenes zu Github.
Wie stelle ich sicher, dass das nicht passiert? Nicht einmal aus Versehen. Wie stelle ich sicher, dass jeder jederzeit das neueste Repo hat, und kann knife upload
es sonst nicht. Genauso wenig, wie Sie es können, git push
wenn Sie git pull
die Änderungen nicht bearbeitet haben.
Mein Kollege zieht von GitHub, sieht aber keine Änderung. Also nimmt er seine eigenen Änderungen vor und knife cookbook upload
es. Aber er wird meine Änderungen ersetzen, da er eine alte Version hat.
Was ist also die beste Vorgehensweise zum Verwalten eines Cookbook zwischen mehreren DevOps?
Antwort1
Der einfachste Ansatz besteht im Allgemeinen darin, den Push zum Chef-Server unter die Kontrolle Ihres CI-Dienstes wie Jenkins zu stellen. Dies erzwingt die Serialisierung rund um die Quellcodeverwaltung, da kein Mensch die Berechtigung hat, Cookbook-Uploads auszuführen. Sie könnten auch einfach sicherstellen, dass Sie ausreichend kommunizieren, um dies zu vermeiden, aber das ist viel fehleranfälliger. Einige Chef-Workflows rund um Richtliniendateien haben dieses Problem nicht, indem sie überhaupt keine normalen Cookbook-Uploads verwenden.