[sage] Konfigurations-Datei-Management

Simon Hönscheid mailinglisten at simonhoenscheid.de
Tue Dec 31 02:10:09 CET 2013


> Hallo zusammen,
Hallo Manuel
>
> Sicherlich gib es das Gesuchte schon, aber die Lösungen, die ich mir
> angesehen habe (Puppet, Git) scheinen das nicht so zu liefern - oder
ich kenne mich schlichtweg zu wenig aus. Darum frage ich nun Euch.

Puppet und git ist schonmal nicht verkehrt.
>
> Diese Vorgehensweise stelle ich mir vor:
>
> * zuerst hinterlegt man gewisse Konfig-Files als Standard. Evtl. kann
> man diese auch noch Rollen zuordnen, so dass das System weiss "diese
> Konfig-File braucht nur eine Maschine, die in der Rolle Webserver ist".
>
Das kann Puppet zum Beispiel. Sehr fein modeliert ist das hier beschrieben:
http://www.craigdunn.org/2012/05/239/

> * anschliessend definiert man pro Maschine Abweichungen vom Standard.
> Bspw. andere Kernel-Module in der /usr/src/linux/.config. Diese
> Abweichungen werden als Diffs oä. gespeichert.
> Idealerweise werden diese Diffs auch Rollen zugordnet, so dass man
bspw. eine Rolle "alle Server mit NVIDIA-SATA-Controller" hat, die alle
die selbe Abweichung haben.

Das geht mit Puppet ohne weiteres. Entweder auf Basis von Rollen,
Facts(Betriebssystem, CPU, RAM, IP...) oder beliebigen anderen Bedingungen

> * jederzeit kann ich mir für eine bestimmte Maschine die aktuelle
Konfig bauen lassen - idealerweise wird diese per SSH auf Knopfdruck
deployed.

Ginge auch, entweder als Push oder Pull oder Dezentral
>
> * genial wäre ein Feature, bei der ich eine geänderte Datei (bspw.
wegen Update) wieder einlesen könnte und dann die Änderungen zum
Standard bzw. zur Maschinen-Konfig sehe. Dann kann ich entscheiden
welche Änderung ich in den Standard übernehmen will oder in die
Abweichung der jeweiligen Maschine, oder was ich verwerfen will.

Puppet zeigt dir beim Run an was er ändern würde. Du kannst einen noop
Run machen, der zeigt dir die änderungen ohne diese auszurollen.

> Anschliessend baue ich die neuen Konfigs aus dem geänderten Standard
und rolle diese wieder aus.

Du hast git, änderungen sind damit nachvollziehbar.

> So ein System wäre, da es auf Textdateien basiert, quasi völlig
> Distributionsunabhängig. Damit könnte ich meine httpd.conf, meine
> Kernel-Konfig, mein LILO oder meine RAID-Konfiguration verwalten.


Puppet kann eine Menge Distributionen und Systeme bediehnen, man muss
ihm nur manchmal ein wenig bei der Auswahl helfen ;)

> Was könnt ihr mir empfehlen / raten?

Ich kann dir empfehlen generell etwas zum konfigurieren zu nutzen was:

* Nicht gegen das Paketsystem arbeitet
* eine gute Community hat
* sich versionieren lässt
* Skaliert

Puppet mag erstmal abschrecken, da man eine eigene Spache lernen muss
und sich ein wenig einarbeiten muss. Danach ist es aber grade in
Kombination mit Hiera sehr sauber und übersichtlich,

Ich hoffe das hilft dir ein wenig
Simon





More information about the SAGE mailing list