¿Existe un equivalente de etckeeper para Windows? AKA Windows config revision-control


13

Quiero hacer un repositorio central de archivos de configuración para poder tener los cambios en cualquier configuración bajo control de revisión (Mercurial). Esto incluirá algunos cuadros de GNU / Linux (que usarán etckeeper), los archivos de configuración del equipo de red, los archivos de configuración de la impresora y, por último, las configuraciones de Windows.

Sé que puede importar algunas configuraciones como ISA y DHCP como archivos de texto / xml e incluso carpetas compartidas como clave de registro, pero para cosas como GPO y AD, IIS, MSSql y otras, ¿hay formas de obtener las configuraciones como archivos planos? Básicamente, ¿puedes tener algo equivalente a etckeeper debajo de Windows? ¿Algo así como algunos comandos basados ​​en PowerShell o similares?

Además, ¿se pueden conservar las ACL y otros permisos de archivos bajo el control de versiones (hg)?

Por cierto, ya he leído

en vano.

Respuestas:


4

¡Sostenlos en paquetes!

Este es un script proporcionado por Michael J Ginter que crea una copia de seguridad de todos los ámbitos DHCP en un servidor. (Tenga en cuenta que detendrá y reiniciará el servicio del servidor DHCP):

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

Puede usar LDIFDE para importar y exportar datos desde AD: http://support.microsoft.com/kb/237677

Los GPO se pueden exportar con ADMX.exe (proporcionado por microsoft en http://www.microsoft.com/resources/documentation/WindowsServ/2003/all/techref/en-us/Default.asp?url=/resources/documentation/ windowsServ / 2003 / all / techref / es-es / w2k3tr_gp_tools.asp

La configuración de IIS se puede exportar a través de iiscnfg.vbs en% systemroot% \ system32 http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/81f04967-f02f-4845-9795-bad2fe1a1687.mspx?mfr=true?mfr=true


¡Eres muy bienvenido! Desafortunadamente, no hay una solución todo en uno gratuita para lo que desea, pero si se combina con un CMS, almacenamiento redundante seguro y / o versiones de software (como Mercurial, Git o Subversion), puede implementar el suyo. ¡Y todo esto debería ser programable!
gWaldo

La idea inicial era Redmine / trac con hg (bueno, si usara redmine, probablemente iría con Git, una mejor integración), etckeeper en máquinas Linux, ssh script para obtener running_config de conmutadores y enrutadores, y vudú junto con win scripts para volcar configuraciones (tal vez con "ganchos" de modificación de archivos OSSEC) en las máquinas ganadoras, todo yendo al repositorio HG ... el problema es que Windows no tiene nada cerca de etc., de ahí esto. Además, todo volcado a un SAN / NAS. ¿Alguna vez has configurado algo como lo que describiste? ¿Me puede dar algunos consejos?

Es una buena idea, pero no he hecho nada así. Si puede agruparlo lo suficiente, recomendaría productizarlo y / o lanzar un proyecto F / OSS. Normalmente recomendaría incorporar la marca de fecha / hora en el nombre de archivo, sin embargo, esto no importa tanto si está acumulando todo en Control de versiones.
gWaldo

1
Creo que tendré que abandonar la parte de Redmine, pero puedo integrarla después. En cualquier caso, el resto es solo un montón de configuraciones de etckeeper, scripts scp y similares. Intentaré documentarlo y publicar algunos scripts, pero desafortunadamente no creo que pueda ser un producto. Sin embargo, podría ser una gran idea de producto FOSS.

1

Para las ACL y los permisos de archivo, puede probar PowerShell:

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

Compramos Tripwire para hacer una función similar, pero sufre de una interfaz de usuario idiosincrática e hinchada de características hasta el punto de que se oxida por negligencia.


... Realmente debería pasar algún tiempo aprendiendo powershell. Gracias.

1

En Windows no hay una forma estándar para que el software almacene una configuración, por lo tanto, no puede haber un método único para manejar esas configuraciones. Antes de que alguien empiece a gritar sobre cómo hay algún tipo de "estándar", veamos las recomendaciones de Microsoft hasta el momento.

  • Primero nos dijeron que creáramos todas las configuraciones en win.ini.
  • A continuación se les dijo que win.ini se está volviendo demasiado grande, así que coloque las configuraciones en un archivo .ini en el directorio de Windows.
  • No, el directorio de Windows se está abarrotando. Use el directorio de la aplicación.
  • Mira, tenemos este nuevo repositorio de configuración central que llamaremos "El Registro". Pon todas tus cosas allí.
  • Vaya, el registro se está volviendo demasiado grande. Coloque las configuraciones en el perfil de usuario.
  • Adivina qué, el perfil no funciona muy bien ...
  • etcétera etcétera.

Las aplicaciones, incluidas las propias de Microsoft, no tienen una forma o ubicación estándar para almacenar configuraciones y utilizan alguno o todos los métodos anteriores, así como algunos métodos "no estándar". Bienvenido al mundo inconsistente y en constante cambio de Windows.


Si. Sé lo lento que pueden llegar a ser Unixes con su desorden / etc. Oh, espera ...

0

Realmente no hay, no es gratis de todos modos. Hay productos comerciales que pueden hacer esto, entiendo que son grandes y caros. Opsware (o HP Server Automation ahora) puede hacer esto.

El tipo que desarrolló MRTG intentó y falló en algo similar hace unos 10 años. El entorno ha cambiado mucho, por lo que es posible que pueda desarrollar su trabajo y llegar a algo bueno. Por ejemplo, puede volcar GPO ahora, que era uno de sus problemas.

/ edit - y siempre has podido volcar AD a LDIF o CSV. Realice una exportación nocturna en uno de esos y sorpréndala en CSV. IIS está todo en el sistema de archivos y la metabase, que también está en el sistema de archivos. Las copias de seguridad normales y / o copias de esas en CSV serían buenas. Configuración de SQL, no estoy tan seguro; Creo que todo es registro y PS probablemente tenga ganchos para mostrarlos.

Una nota: ¿pregunta sobre la copia de seguridad de ACL en archivos? Jeebus: dígame que está haciendo una copia de seguridad de los archivos y que su software de copia de seguridad conserva las ACL. Si no está haciendo una copia de seguridad de los archivos, ¿de qué le sirven las ACL? Si no está haciendo una copia de seguridad de los archivos con ACL, ¿qué tiene de malo su software de copia de seguridad? Puede activar la auditoría de cambios de ACL de forma nativa, ¿tal vez quiera hacer eso?


No estoy mencionando las copias de seguridad per se. Casi todas las copias de seguridad conservan las ACL. Sin embargo, el control de revisiones, la mayoría de las veces ni siquiera conserva los permisos. Mercurial, por ejemplo, solo guarda el permiso eXecutable en Unix. Necesita un gancho para eso, un complemento o un "truco" como savinf ACLs / permisos en un metarchivo separado. Además, lo buscaré pero ... ¿me puede decir cómo exportar AD a LDIF, por ejemplo?

EDITAR: Aparentemente, con el ldifde - technet.microsoft.com/en-us/library/bb727091.aspx

0

No he oído hablar de uno. Si bien el Registro puede ser el hogar de (la mayoría) de las configuraciones en Windows, y (más o menos) puede representarse en forma de texto, lo mejor que puede esperar es la Documentación de configuración en lugar de la Gestión de configuración . Existen API para monitorear los cambios en el registro, como lo demuestran varias herramientas internas del sistema, que en teoría permitirían acciones basadas en eventos (por ejemplo, volver a la configuración anterior). Desafortunadamente, hay algunas cosas (la política de grupo es la más grande) que están diseñadas para superar cualquier restricción de cambio de configuración basada en máquinas locales.

Sin embargo, eso solo administra el sistema operativo base. Una vez que comienza a agregar otros productos de Microsoft, la situación se vuelve mucho más compleja. IIS tiene su propia base de datos, la metabase, que no está en el registro. MS-SQL tiene una gran cantidad de configuraciones almacenadas en la base de datos, entre otros lugares. AD ciertamente puede representarse como un archivo plano, es una exportación de LDIF desde LDAP, pero nuevamente eso es documentación, no administración. Las Políticas de grupo en sí son árboles de directorios llenos de archivos en los Controladores de dominio.

No es un trabajo fácil de ninguna manera. Esta es la razón por la cual los sistemas como System Center Configuration Manager de Microsoft o Zenworks Configuration Management de Novell son tan complejos como lo son. De hecho, hasta donde yo sé, estos productos son lo más cerca que Windows se acerca a algo así como etckeeper.


La "metabase" es solo un archivo XML en el sistema de archivos, bastante simple de tomar esa noche y versionarlo. Ahora concedido, eso no es lo mismo que desencadenar un diferencial cada vez que alguien cambia manualmente las configuraciones, eso sería otro caldero de peces. Depende de la granularidad que necesita Ascendant.
mfinni

1
Pasé algún tiempo en la página web de System Center Configuration Manager de Microsoft. Es algo así como "diagrama bonito, palabra de moda, palabra de moda, sinergia, autogratificaciones, vagas promesas, palabras de moda". Todavía no sé exactamente qué hace, pero con frases como "conectar personas, procesos y herramientas, evaluando dependencias y optimizando el rendimiento de los procesos de negocio desde el interior del sistema operativo, las aplicaciones y los servicios compuestos y los flujos de trabajo tanto físicos como entornos virtuales ". Parece ser emprendedor. ¿Tiene algo de bueno?

Si tiene un presupuesto en mente para esto, es útil mencionarlo cuando solicite recomendaciones de productos.
mfinni

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.