Existe-t-il un équivalent etckeeper pour Windows? AKA Windows config révision-contrôle

13

Je souhaite créer un référentiel de fichiers de configuration central afin de pouvoir apporter les modifications à toute configuration sous contrôle de révision (Mercurial). Cela comprendra certaines boîtes GNU / Linux (qui utiliseront etckeeper), les fichiers de configuration de l'équipement réseau, les fichiers de configuration de l'imprimante et enfin et surtout, les configurations de Windows.

Je sais que vous pouvez importer certaines configurations comme ISA et DHCP en tant que fichiers texte / xml et même des dossiers partagés en tant que clé de registre, mais pour des choses comme les GPO et AD, IIS, MSSql et autres, existe-t-il des moyens d'obtenir les configurations sous forme de fichiers plats? Fondamentalement, pouvez-vous avoir quelque chose d'équivalent à etckeeper sous Windows? Quelque chose comme certaines commandes basées sur PowerShell ou similaires?

De même, les ACL et autres autorisations de fichiers peuvent-elles être conservées sous contrôle de version (hg)?

BTW, j'ai déjà lu

en vain.

Communauté
la source

Réponses:

4

Tenez-les paquets!

Il s'agit d'un script fourni par Michael J Ginter qui crée une sauvegarde de toutes les étendues DHCP sur un serveur. (Notez qu'il arrêtera et redémarrera le service de serveur DHCP.):

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

Vous pouvez utiliser LDIFDE pour importer et exporter des données depuis AD: http://support.microsoft.com/kb/237677

Les objets de stratégie de groupe peuvent être exportés avec ADMX.exe (fourni par Microsoft à l' adresse http://www.microsoft.com/resources/documentation/WindowsServ/2003/all/techref/en-us/Default.asp?url=/resources/documentation/ windowsServ / 2003 / all / techref / en-us / w2k3tr_gp_tools.asp

IIS Config peut être exporté via iiscnfg.vbs dans% systemroot% \ system32 http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/81f04967-f02f-4845-9795-bad2fe1a1687.mspx?mfr=true

gWaldo
la source
De rien! Malheureusement, il n'y a pas de solution tout-en-un gratuite pour ce que vous voulez, mais combinée avec un CMS, un stockage redondant en toute sécurité et / ou une version de logiciel (comme Mercurial, Git ou Subversion), vous pouvez rouler la vôtre. Et tout cela devrait être scriptable!
gWaldo
L'idée initiale était Redmine / trac avec hg (enfin, si j'utilisais redmine, j'irais probablement avec Git, une meilleure intégration), etckeeper sur les machines linux, le script ssh pour obtenir running_config des commutateurs et des routeurs, et vaudou avec les scripts win pour dump configs (peut-être avec la modification de fichier OSSEC "hooks") sur les machines Win, tout va au repo HG ... le problème est que Windows n'a rien de proche, etc., d'où cela. En outre, tous les fichiers sont transférés vers un SAN / NAS. Avez-vous déjà configuré quelque chose comme ce que vous avez décrit? Pouvez-vous me donner quelques conseils?
C'est une sacrée bonne idée, mais je n'ai rien fait de tel. Si vous pouvez le regrouper suffisamment, je recommanderais de le produire et / ou de rouler un projet F / OSS. Je recommanderais normalement d'incorporer la date / l'horodatage dans le nom de fichier, mais cela n'a pas autant d'importance si vous retrouvez tout dans le contrôle de version.
gWaldo
1
Je pense que je vais devoir abandonner la partie Redmine, mais je peux l'intégrer par la suite. Dans tous les cas, le reste n'est qu'un tas de configurations etckeeper, de scripts scp et autres. Je vais essayer de le documenter et de publier certains scripts, mais je ne pense pas que ce puisse être un produit, malheureusement. Cela pourrait être une excellente idée de produit FOSS.
1

Pour les ACL et les autorisations de fichier, vous pouvez essayer PowerShell:

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

Nous avons acheté Tripwire pour faire une fonction similaire, mais il souffre de fonctionnalités et d'une interface utilisateur idiosyncratique au point qu'il rouille de négligence.

AndyN
la source
... Je devrais vraiment passer du temps à apprendre le PowerShell. Merci.
1

Sous Windows, il n'existe aucun moyen standard pour les logiciels de stocker une configuration, il ne peut donc pas y avoir de méthode unique pour gérer ces configurations. Avant que quiconque ne se moque de la façon dont il existe une sorte de "standard", regardons les recommandations de Microsoft jusqu'à présent.

  • Tout d'abord, on nous a dit de créer toutes les configurations dans win.ini.
  • Ensuite, on m'a dit que win.ini devenait trop volumineux, alors placez les configurations dans un fichier .ini dans le répertoire Windows.
  • Non, le répertoire Windows devient encombré. Utilisez le répertoire d'application.
  • Regardez, nous avons ce nouveau référentiel de configuration central que nous allons appeler "The Registry". Mettez tous vos trucs dedans.
  • Oups, le registre devient trop volumineux. Placez les configurations dans le profil utilisateur.
  • Devinez quoi, le truc de profil ne fonctionne pas très bien ....
  • etc.

Les applications, y compris celles de Microsoft, n'ont aucun moyen ni emplacement standard pour stocker les configurations et utilisent une ou toutes les méthodes ci-dessus, ainsi que quelques-unes "non standard". Bienvenue dans le monde incohérent et en constante évolution de Windows.

John Gardeniers
la source
Oui. Je sais à quel point les Unix peuvent être lents avec leur / etc encombré. Oh, attendez ...
0

Il n'y en a vraiment pas, pas gratuitement de toute façon. Il y a des produits commerciaux qui peuvent faire ça, je comprends qu'ils sont gros et chers. Opsware (ou HP Server Automation maintenant) peut le faire.

Le gars qui a développé MRTG a essayé et échoué sur quelque chose de similaire il y a environ 10 ans. L'environnement a beaucoup changé, vous pourrez donc peut-être vous appuyer sur leur travail et trouver quelque chose de bien. Par exemple, vous pouvez vider les objets de stratégie de groupe maintenant, ce qui était l'un de leurs problèmes.

/ edit - et vous avez toujours été en mesure de vider AD vers LDIF ou CSV. Faites une exportation nocturne dans l'un de ceux-ci et insérez-le dans CSV. IIS est tout dans le système de fichiers et la métabase, qui est également dans le système de fichiers. Des sauvegardes et / ou des copies normales de celles-ci dans CSV seraient bonnes. Config SQL, je ne suis pas si sûr; Je pense que tout est dans le registre et PS a probablement des crochets pour les afficher.

Une remarque - vous demandez de sauvegarder les ACL sur les fichiers? Jeebus - dites-moi que vous sauvegardez les fichiers et que votre logiciel de sauvegarde préserve les ACL. Si vous ne sauvegardez pas du tout les fichiers, quels sont les avantages des ACL pour vous? Si vous ne sauvegardez pas les fichiers avec des ACL, quel est le problème avec votre logiciel de sauvegarde? Vous pouvez activer l'audit des modifications ACL en mode natif, peut-être voulez-vous le faire?

mfinni
la source
Je ne parle pas des sauvegardes en soi. Presque tous les sw de sauvegarde conservent les ACL. Le contrôle des révisions, cependant, la plupart du temps ne conserve même pas les autorisations. Mercurial, par exemple, enregistre uniquement l'autorisation eXecutable sur unix. Vous avez besoin d'un hook pour cela, d'un addon ou d'un "truc" comme les ACL / autorisations savinf dans un métafichier séparé. De plus, je vais vérifier, mais ... pouvez-vous me dire comment exporter AD vers LDIF, par exemple?
EDIT: Apparemment, avec le ldifde - technet.microsoft.com/en-us/library/bb727091.aspx
0

Je n'en ai pas entendu parler. Alors que le Registre peut être le siège de (la plupart) des configurations sous Windows et qu'il peut (en quelque sorte) être représenté sous forme de texte, le mieux que vous puissiez espérer est la documentation de configuration plutôt que la gestion de la configuration . Il existe des API pour surveiller les modifications du registre, comme en témoignent plusieurs outils System Internals, qui permettraient en théorie des actions basées sur les événements (revenir à l'ancienne configuration par exemple). Malheureusement, certaines choses (la stratégie de groupe étant la plus importante) sont conçues pour contourner toutes les restrictions basées sur la machine locale sur le changement de configuration.

Cependant, cela ne fait que gérer le système d'exploitation de base. Une fois que vous avez commencé à ajouter d'autres produits Microsoft, la situation devient beaucoup plus complexe. IIS possède sa propre base de données, la métabase, qui n'est pas dans le Registre. MS-SQL a un tas de configurations stockées dans la base de données elle-même entre autres. AD peut certainement être représenté comme un fichier plat, c'est une exportation LDIF de LDAP, mais encore une fois, ce n'est pas de la gestion. Les stratégies de groupe elles-mêmes sont des arborescences de répertoires remplies de fichiers sur les contrôleurs de domaine.

Ce n'est pas un travail facile par n'importe quel tronçon. C'est pourquoi des systèmes comme System Center Configuration Manager de Microsoft ou Zenworks Configuration Management de Novell sont aussi complexes qu'ils le sont. En fait, pour autant que je sache, ces produits sont les plus proches de Windows pour quelque chose comme etckeeper.

sysadmin1138
la source
La "métabase" est juste un fichier XML sur le système de fichiers - assez simple à saisir tous les soirs et à versionner. Maintenant accordé, ce n'est pas la même chose que de déclencher un diff chaque fois que quelqu'un modifie manuellement les configurations, ce serait une toute autre marmite de poisson. Cela dépend de la granularité dont l'Ascendant a besoin.
mfinni
1
J'ai passé du temps sur la page Web de Microsoft System Center Configuration Manager. C'est quelque chose comme "joli diagramme, mot à la mode, mot à la mode, synergie, auto-félicitations, promesses vagues, mots à la mode". Je ne sais toujours pas exactement ce qu'il fait, mais avec des phrases telles que «connecter les personnes, les processus et les outils - en évaluant les dépendances et en optimisant les performances des processus métier du plus profond du système d'exploitation, des applications, des services composites et des workflows à la fois physiques et environnements virtuels. " cela semble être de l'esprit d'entreprise. Est-il bon?
Si vous avez un budget en tête pour cela, il est utile de le mentionner lorsque vous demandez des recommandations de produits.
mfinni