shamaz
Goto Top

Opscodes Chef Software praktische Erfahrungen mit Git, Berkshelf und Vagrant

Während der Arbeit beschäftige ich mich mit der Automatisationssoftware Chef von Opscode. Was mir dabei immer wieder aufgefallen ist, dass es anscheinend nicht DEN einen Weg gibt ein Problem zu lösen, sondern immer mehrere, mit ihren Vor- und Nachteilen. Diskutiert werden verschiedene Ansätze meist über die Mailinglist oder in Blogs einzelnen Personen. Was ich hiermit nun erreichen will, diese Diskussionen auch einmal auf deutsch zuführen.

Eine Frage, die mich bei der Arbeit mit Chef immer wieder beschäftigt: "Wie verwendet man Git, Berkshelf,Vagrant und das chef-repo am besten?"

Hier die Rahmenbedingungen:
- Entwickelt wird auf dem lokalen Arbeitsplatz PC mit VirtualBox Berkshelf und Vagrant. D.h. es läuft eine VM als Chef-Server und jeweils eine oder zwei als Nodes, die mit vagrant verwaltet werden.
- Wird das selbst entwickelte Kochbuch für gut befunden, dann soll es auf das Produktivsystem übertragen und in den Chef-Server hochgeladen werden.


Meine ersten Ideen:
- Man betrachtet jedes Kochbuch als eine eigenständige Software, weshalb jeder Kochbuchordner auch ein eigenständiges git-Repository ist.
- Das gute daran ist, dass man mit git-flow nun diese "Software" schön verwalten kann. Denn auch andere Mitarbeiter arbeiten lokal an ihren PCs an dem Kochbuch.
- Zusammengebracht wird alles auf einem zentralen Server auf dem ein git-bare-Repo liegt, welches das gesamte Chef-Repo beinhaltet.
- von dieser Zentralen Stelle wird auch das Produktivsystem gespeist. Im master-branch befindet sich immer die aktuellste Version des gesamten chef-repos und in den einzelnen Unternordnern der Kochbücher, die anderen Versionen mit ihren verschienen Branches, die mit git-flow angelegt wurden.

Skizze:
+-mysql -> (branches: master, develop, patch, hotfix)| | | (opscodes Kochbuch, aber erweitert um zusätzliches Rezept)| | | +-.git| +-mycookbook -> (branches: master, develop, patch, hotfix)| | | (ein eigenes Kochbuch, welches auf das zusätzliche Rezept in mysql zugreift)| |

Im letzten Punkt meiner Ideen, liegt auch das Problem, weshalb ich hier diese Frage stelle. Ein git im git Repo! Eine Möglichkeit ist es die Kochbücher einzeln mit dem git-subtree Befehl einzubinden, womit ich selber aber noch keine Erfahrungen habe. Der Hintergrund ist, dass ich das Kochbuch als kleinste Einheit betrachte und nicht das gesamte Chef-repo.

Welche Erfahrungen habt ihr also während eurer Arbeit mit Chef, Berkshelf, Vagrant und Git gemacht, und was hat sich dabei als praktikabel erwiesen?

mfg

Shamaz

Content-Key: 201484

Url: https://administrator.de/contentid/201484

Printed on: April 19, 2024 at 16:04 o'clock

Member: flopaconsult
flopaconsult Feb 21, 2013 at 12:34:12 (UTC)
Goto Top
Hallo,

Ich habe sehr gute Erfahrung mit Chef. Berkshel und Vagrant sind nicht eine grosser Thema. Ich bin verfuegbar fuer weitere Details/ Aufgaben.

Viele Gruesse,
Florin
Member: Shamaz
Shamaz Feb 23, 2013 at 11:20:19 (UTC)
Goto Top
Nun, die hab ich auch. Ich wollte jetzt eigentlich wissen, wie ihr mit den Tools arbeitet, um möglichst produktiv und sicher zu sein. Dabei ging es mir auch um die verwendete Repo-Struktur (siehe Skizze). Ich weiß nämlich nicht, ob das so funktioniert wie ich es mir vorstelle.
Ziel ist es möglichst flexibel, nachvollziehbar und sicher zu entwickeln. Dazu bräuchte ich halt eure Erfahrungen mit git und chef. Hinzu kommt, dass in mehreren Stufen neue Kochbücher entwickelt werden. Kleines Beispiel:

Auf einem Arbeits-PC wird mit Berkshelf, Vagrant und einem Chef-Server(als lokale VM) eigene Kochbücher geschrieben, verbessert und getestet. Wenn es dort funktioniert hat, dann wird die Entwicklung vom Entwicklungs-Branch in den Development-Branch gemerged (denglisch) und dann, auf dem produktiv Chef-Server, ausgecheckt (wieder denglisch). Von dort aus wird das Kochbuch dann in den produktiv Chef-Server hoch geladen und ein weiterer Test mit einem realem Test-PC (mit Produktivdaten) wiederholt. Wenn das auch funktioniert hat, ist die Entwicklung fertig und das Kochbuch wird in den master Branch gemerged.

Das Problem dabei liegt daran, dass es eigentlich möglich sein sollte einzelne Kochbücher mit git zu pflegen und nicht das gesamte chef-repo.

Ich hoffe das hat dir weiter geholfen.

mfg Shamaz