Gibt es ein Etckeeper-Äquivalent für Windows? AKA Windows Config Revision-Control

13

Ich möchte ein zentrales Konfigurationsdatei-Repository erstellen, damit ich die Änderungen an jeder Konfiguration unter Versionskontrolle (Mercurial) vornehmen kann. Dazu gehören einige GNU / Linux-Boxen (die etckeeper verwenden), die Konfigurationsdateien des Netzwerkgeräts, die Konfigurationsdateien des Druckers und nicht zuletzt Windows-Konfigurationen.

Ich weiß, dass Sie einige Konfigurationen wie ISAs und DHCPs als Text- / XML-Dateien und sogar freigegebene Ordner als Registrierungsschlüssel importieren können. Aber gibt es für Dinge wie Gruppenrichtlinienobjekte und AD, IIS, MSSql und andere Möglichkeiten, die Konfigurationen als flache Dateien abzurufen? Kannst du im Grunde etwas haben, das mit etckeeper unter Windows vergleichbar ist? So etwas wie PowerShell-basierte Befehle oder ähnliches?

Können ACLs und andere Dateiberechtigungen auch unter Versionskontrolle (hg) aufbewahrt werden?

Übrigens habe ich schon gelesen

umsonst.

Gemeinschaft
quelle

Antworten:

4

Halten Sie sie Pakete!

Dies ist ein Skript von Michael J Ginter, das eine Sicherung aller DHCP-Bereiche auf einem Server erstellt. (Beachten Sie, dass der DHCP-Serverdienst gestoppt und neu gestartet wird.):

http://gallery.technet.microsoft.com/ScriptCenter/en-us/ff25d864-6ff0-411b-b242-97fbe34f011b

Mit LDIFDE können Sie Daten aus AD importieren und exportieren: http://support.microsoft.com/kb/237677

Gruppenrichtlinienobjekte können mit ADMX.exe exportiert werden (bereitgestellt von Microsoft unter http://www.microsoft.com/resources/documentation/WindowsServ/2003/all/techref/en-us/Default.asp?url=/resources/documentation/). windowsServ / 2003 / all / techref / de-de / w2k3tr_gp_tools.asp

Die IIS-Konfiguration kann über iiscnfg.vbs in% systemroot% \ system32 http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/81f04967-f02f-4845-9795-bad2fe1a1687.mspx?mfr=true exportiert werden

gWaldo
quelle
Du bist immer willkommen! Leider gibt es keine kostenlose All-in-One-Lösung für Ihre Anforderungen. In Kombination mit einem CMS, einem sicher redundanten Speicher und / oder einer Softwareversion (wie Mercurial, Git oder Subversion) können Sie jedoch eine eigene Lösung erstellen. Und das alles sollte skriptfähig sein!
gWaldo
Ursprüngliche Idee war Redmine / trac mit hg (naja, wenn ich Redmine verwenden würde, würde ich wahrscheinlich mit Git arbeiten, bessere Integration), etckeeper auf Linux-Rechnern, ssh-Skript, um running_config von Switches und Routern zu bekommen, und Voodoo zusammen mit win-Skripten, um dump configs (vielleicht mit OSSEC-Dateimodifikation "hooks") auf den win-Rechnern, die alle zum HG-Repository gehen, sind, Windows hat nichts in der Nähe von etc, daher dieses. Außerdem werden alle auf einem SAN / NAS gespeichert. Haben Sie jemals so etwas wie das, was Sie beschrieben haben, eingerichtet? Kannst du mir ein paar Hinweise geben?
Das ist eine verdammt gute Idee, aber ich habe so etwas noch nicht gemacht. Wenn Sie es ausreichend bündeln können, würde ich empfehlen, es zu produzieren und / oder ein F / OSS-Projekt zu erstellen. Normalerweise würde ich empfehlen, das Datum / den Zeitstempel in den Dateinamen aufzunehmen, aber das ist nicht so wichtig, wenn Sie alles in die Versionskontrolle hochrollen.
gWaldo
1
Ich denke, ich muss den Redmine-Teil fallen lassen, aber ich kann ihn nachträglich integrieren. In jedem Fall besteht der Rest nur aus etckeeper-Konfigurationen, scp-Skripten und dergleichen. Ich werde versuchen, es zu dokumentieren und einige Skripte zu veröffentlichen, aber ich denke nicht, dass es leider ein Produkt sein kann. Es könnte jedoch eine großartige FOSS-Produktidee sein.
1

Für ACLs und Dateiberechtigungen können Sie PowerShell verwenden:

get-acl c:\temp | format-list
get-acl -path hklm:\ | format-list

Wir haben Tripwire gekauft, um eine ähnliche Funktion auszuführen, aber es leidet an einer aufgedunsenen und eigenwilligen Benutzeroberfläche, bis zu dem Punkt, dass es durch Vernachlässigung verrostet.

AndyN
quelle
... Ich sollte wirklich etwas Zeit damit verbringen, Powershell zu lernen. Vielen Dank.
1

Unter Windows gibt es keine Standardmethode zum Speichern einer Konfiguration durch die Software. Daher gibt es keine einzige Methode, mit diesen Konfigurationen umzugehen. Bevor jemand anfängt zu jammern, wie es eine Art "Standard" gibt, schauen wir uns die bisherigen Microsoft-Empfehlungen an.

  • Zuerst wurde uns gesagt, dass wir alle Configs in der win.ini erstellen sollen.
  • Als nächstes wurde gesagt, dass win.ini zu groß wird. Platzieren Sie die Konfigurationsdateien in einer INI-Datei im Windows-Verzeichnis.
  • Nein, das Windows-Verzeichnis wird unübersichtlich. Verwenden Sie das Anwendungsverzeichnis.
  • Schauen Sie, wir haben dieses neue zentrale Konfigurations-Repository, das wir "The Registry" nennen werden. Legen Sie alles, was Sie Zeug drin.
  • Hoppla, die Registrierung wird zu groß. Fügen Sie die Configs in das Benutzerprofil ein.
  • Ratet mal, das Profil-Ding funktioniert nicht besonders gut ...
  • usw. usw.

Anwendungen, einschließlich der von Microsoft, haben keine Standardmethode oder keinen Standardspeicherort für Konfigurationen und verwenden eine oder alle der oben genannten Methoden sowie einige "Nicht-Standardmethoden". Willkommen in der inkonsistenten und sich ständig verändernden Welt von Windows.

John Gardeniers
quelle
Ja. Ich weiß, wie langsam Unixe mit ihrer überfüllten / etc. Oh, warte ...
0

Es gibt wirklich keine, nicht umsonst. Es gibt kommerzielle Produkte, die dies tun können. Ich verstehe, dass sie groß und teuer sind. Opsware (oder jetzt HP Server Automation) können dies tun.

Der Typ, der MRTG entwickelt hat, hat vor ungefähr 10 Jahren etwas Ähnliches versucht und ist gescheitert . Das Umfeld hat sich stark verändert, sodass Sie möglicherweise auf ihre Arbeit aufbauen und sich etwas Gutes einfallen lassen können. Beispielsweise können Sie jetzt Gruppenrichtlinienobjekte sichern, was eines ihrer Probleme war.

/ edit - und Sie konnten AD immer in LDIF oder CSV sichern. Führen Sie einen nächtlichen Export in einen dieser Ordner durch und schlürfen Sie ihn in CSV. IIS befindet sich alle im Dateisystem und in der Metabasis, die sich auch im Dateisystem befindet. Normale Backups und / oder Kopien davon in CSV wären gut. SQL-Konfiguration, da bin ich mir nicht so sicher; Ich denke, es ist alles Registrierung und PS hat wahrscheinlich Haken, um diese anzuzeigen.

Eine Anmerkung - Sie fragen nach dem Sichern von ACLs für Dateien? Jeebus - Bitte sagen Sie mir, dass Sie die Dateien sichern und Ihre Sicherungssoftware ACLs beibehält. Welchen Nutzen haben die ACLs für Sie, wenn Sie die Dateien überhaupt nicht sichern? Wenn Sie die Dateien nicht mit ACLs sichern, was stimmt mit Ihrer Sicherungssoftware nicht? Sie können die Überwachung für ACL-Änderungen von Haus aus aktivieren. Vielleicht möchten Sie das tun?

mfinni
quelle
Ich erwähne keine Backups per se. Fast alle Sicherungs-SWs behalten ACLs bei. Die Versionskontrolle behält jedoch meistens nicht einmal die Berechtigungen bei. Mercurial speichert zum Beispiel nur die eXecutable-Berechtigung unter Unix. Sie benötigen dafür einen Hook, ein Addon oder einen "Trick" wie savinf ACLs / permissions in einer separaten Metadatei. Ich werde es auch nachschlagen, aber ... können Sie mir sagen, wie ich zum Beispiel AD nach LDIF exportieren soll?
BEARBEITEN: Offenbar mit dem ldifde - technet.microsoft.com/en-us/library/bb727091.aspx
0

Ich habe noch nie von einem gehört. Während die Registry die Heimat ( die meisten) Config unter Windows sein kann, und es (Art) können in Textform dargestellt werden, das Beste , was Sie für hoffen kann , ist Konfiguration Dokumentation statt Configuration - Management . Es gibt APIs zum Überwachen von Änderungen an der Registrierung, wie mehrere System Internals-Tools belegen, die theoretisch ereignisbasierte Aktionen ermöglichen (z. B. das Zurücksetzen auf die alte Konfiguration). Leider gibt es einige Dinge (die Gruppenrichtlinie ist die größte), die entwickelt wurden, um lokale maschinenbasierte Einschränkungen für Konfigurationsänderungen zu umgehen.

Damit wird jedoch nur das Basisbetriebssystem verwaltet. Sobald Sie andere Microsoft-Produkte hinzufügen, wird die Situation erheblich komplexer. IIS verfügt über eine eigene Datenbank, die Metabasis, die sich nicht in der Registrierung befindet. MS-SQL hat unter anderem eine ganze Reihe von Konfigurationsdateien in der Datenbank selbst gespeichert. AD kann sicherlich als Flatfile dargestellt werden, es ist ein LDIF-Export aus LDAP, aber auch das ist Dokumentation, nicht Verwaltung. Gruppenrichtlinien selbst sind Verzeichnisstrukturen, die mit Dateien auf den Domänencontrollern gefüllt sind.

Es ist keine leichte Aufgabe. Aus diesem Grund sind Systeme wie der System Center Configuration Manager von Microsoft oder das Zenworks Configuration Management von Novell so komplex wie sie. Soweit ich weiß, sind diese Produkte in der Tat die Produkte, die Windows am nächsten kommt.

sysadmin1138
quelle
Die "Metabasis" ist nur eine XML-Datei im Dateisystem - ziemlich einfach, diese nächtliche Datei zu erfassen und zu versionieren. Nun ja, das ist nicht dasselbe wie jedes Mal ein Diff auszulösen, wenn jemand die Konfiguration manuell ändert, das wäre ein ganz anderer Fischkessel. Es kommt darauf an, wie viel Granularität Ascendant benötigt.
mfinni
1
Verbringen Sie einige Zeit auf der Website von Microsoft System Center Configuration Manager. Es ist so etwas wie "hübsches Diagramm, Modewort, Modewort, Synergie, Selbstglückwünsche, vage Versprechen, Modewörter". Ich weiß immer noch nicht genau, was es tut, aber mit Sätzen wie "Menschen, Prozesse und Tools verbinden", indem Abhängigkeiten ausgewertet und die Leistung von Geschäftsprozessen tief im Betriebssystem, in Anwendungen und zusammengesetzten Diensten und Workflows sowohl physisch als auch physisch optimiert werden virtuelle Umgebungen. " es scheint unternehmungslustig zu sein. Taugt es etwas?
Wenn Sie ein Budget dafür haben, ist es hilfreich, dies zu erwähnen, wenn Sie nach Produktempfehlungen fragen.
Mfinni