Existe um etckeeper equivalente para o Windows? AKA controle de revisão de configuração do Windows

13

Quero fazer um repositório central de arquivos de configuração para que eu possa ter as alterações em qualquer configuração sob controle de revisão (Mercurial). Isso incluirá algumas caixas GNU / Linux (que usarão o etckeeper), os arquivos de configuração do equipamento de rede, os arquivos de configuração da impressora e, por último, mas não menos importante, as configurações do Windows.

Eu sei que você pode importar algumas configurações como ISA e DHCP como arquivos de texto / xml e até mesmo pastas compartilhadas como uma chave do Registro, mas para coisas como GPOs e AD, IIS, MSSql e outros, existem maneiras de obter as configurações como arquivos simples? Basicamente, você pode ter algo equivalente ao etckeeper no Windows? Algo como alguns comandos baseados em PowerShell ou algo parecido?

Além disso, as ACLs e outras permissões de arquivo podem ser preservadas sob o controle de versão (hg)?

BTW, eu já li

para nenhum proveito.

Comunidade
fonte

Respostas:

4

Segure-os pacotes!

Este é um script fornecido por Michael J Ginter que cria um backup de todos os escopos DHCP em um servidor. (Observe que ele irá parar e reiniciar o serviço do servidor DHCP.):

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

Você pode usar o LDIFDE para importar e exportar dados do AD: http://support.microsoft.com/kb/237677

Os GPOs podem ser exportados com o ADMX.exe (fornecido pela microsoft em http://www.microsoft.com/resources/documentation/WindowsServ/2003/all/techref/en-us/Default.asp?url=/resources/documentation/ windowsServ / 2003 / all / techref / pt-br / w2k3tr_gp_tools.asp

A configuração do IIS pode ser exportada via iiscnfg.vbs em% systemroot% \ system32 http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/81f04967-f02f-4845-9795-bad2fe1a1687.mspx?mfr=true

gWaldo
fonte
Você é muito bem-vindo! Infelizmente, não há uma solução completa gratuita para o que você deseja, mas combinado com um CMS, armazenamento com segurança redundante e / ou versão de software (como Mercurial, Git ou Subversion), você pode criar sua própria. E tudo isso deve ser programável!
precisa saber é o seguinte
A idéia inicial era Redmine / trac com hg (bem, se eu usasse redmine, provavelmente usaria Git, melhor integração), etckeeper em máquinas linux, script ssh para obter running_config de switches e roteadores e vodu, além de scripts de vitória para despejar configurações (talvez com a modificação do arquivo OSSEC "hooks") nas máquinas win, todos indo para o repositório HG ... prob é, o Windows não tem nada perto de etc, portanto, isso. Além disso, todos despejados em um SAN / NAS. Você já configurou algo parecido com o que você descreveu? Você pode me dar algumas dicas?
É uma ótima ideia, mas não fiz nada disso. Se você puder agrupá-lo o suficiente, eu recomendaria produzi-lo e / ou lançar um projeto F / OSS. Eu normalmente recomendaria incorporar a data / carimbo de data / hora no nome do arquivo, no entanto, isso não importa tanto se você estiver acumulando tudo no Controle de Versão.
precisa saber é o seguinte
1
Acho que vou ter que largar a parte do Redmine, mas posso integrá-la depois. De qualquer forma, o resto é apenas um monte de configurações do etckeeper, scripts scp e similares. Vou tentar documentá-lo e lançar alguns scripts, mas não acho que possa ser um produto, infelizmente. Poderia ser uma ótima idéia de produto FOSS, no entanto.
1

Para ACLs e permissões de arquivo, você pode experimentar o PowerShell:

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

Nós compramos o Tripwire para executar uma função semelhante, mas ela sofre com a interface do usuário característica e idiossincrática ao ponto de estar enferrujando por negligência.

AndyN
fonte
... Eu realmente deveria gastar algum tempo aprendendo PowerShell. Obrigado.
1

No Windows, não existe uma maneira padrão de o software armazenar uma configuração; portanto, não pode haver um método único para lidar com essas configurações. Antes que alguém comece a tagarelar sobre como existe algum tipo de "padrão", vejamos as recomendações da Microsoft até agora.

  • Primeiro, fomos informados para criar todas as configurações no win.ini.
  • Em seguida, foram informados que o win.ini está ficando muito grande, então coloque as configurações em um arquivo .ini no diretório do Windows.
  • Não, o diretório do Windows está ficando confuso. Use o diretório do aplicativo.
  • Olha, nós temos esse novo repositório de configuração central que vamos chamar de "The Registry". Coloque todas as suas coisas lá.
  • Ops, o registro está ficando muito grande. Coloque as configurações no perfil do usuário.
  • Adivinha o quê, o perfil não está funcionando muito bem ....
  • etc etc.

Os aplicativos, inclusive os da Microsoft, não têm uma maneira ou local padrão para armazenar configurações e usam qualquer um ou todos os métodos acima, além de alguns métodos "não-padrão". Bem-vindo ao mundo inconsistente e em constante mudança do Windows.

John Gardeniers
fonte
Sim. Eu sei o quão lento os Unixes podem ficar com seu / etc. Ah, espera ...
0

Realmente não existe, de graça de qualquer maneira. Existem produtos comerciais que podem fazer isso, eu entendo que eles são grandes e caros. Opsware (ou HP Server Automation agora) pode fazer isso.

O cara que desenvolveu o MRTG tentou e falhou em algo semelhante há cerca de 10 anos. O ambiente mudou muito; portanto, você poderá desenvolver o trabalho deles e criar algo bom. Por exemplo, você pode despejar GPOs agora, que era um dos problemas deles.

/ edit - e você sempre conseguiu despejar o AD em LDIF ou CSV. Faça uma exportação noturna para um desses e descarte-o em CSV. O IIS está todo no sistema de arquivos e na metabase, que também está no sistema de arquivos. Backups normais e / ou cópias desses arquivos em CSV seriam bons. Configuração do SQL, não tenho tanta certeza; Eu acho que é tudo registro e PS provavelmente tem ganchos para exibi-los.

Uma observação - você pergunta sobre o backup de ACLs em arquivos? Jeebus - diga-me que você está fazendo backup dos arquivos e seu software de backup preserva as ACLs. Se você não está fazendo backup dos arquivos, que benefício são as ACLs para você? Se você não está fazendo backup dos arquivos com ACLs, o que há de errado com o seu software de backup? Você pode ativar a auditoria para alterações da ACL nativamente, talvez queira fazer isso?

mfinni
fonte
Não estou mencionando backups em si. Quase todos os sw de backup preservam ACLs. O controle de revisão, no entanto, na maioria das vezes nem preserva as permissões. O Mercurial, por exemplo, salva apenas a permissão eXecutable no unix. Você precisa de um gancho para isso, um complemento ou um "truque", como savinf ACLs / permissões em um metarquivo separado. Além disso, vou procurar, mas ... você pode me dizer como exportar o AD para LDIF, por exemplo?
EDIT: Aparentemente, com o ldifde - technet.microsoft.com/en-us/library/bb727091.aspx
0

Eu não ouvi falar de um. Embora o Registro possa ser o lar da (mais) configuração no Windows e (mais ou menos) possa ser representado em forma de texto, o melhor que você pode esperar é Documentação de Configuração, em vez de Gerenciamento de Configuração . Existem APIs para monitorar alterações no registro, conforme evidenciado por várias ferramentas Internas do Sistema, que em teoria permitiriam ações baseadas em eventos (reverter para a configuração antiga, por exemplo). Infelizmente, há algumas coisas (a Diretiva de Grupo sendo a maior) que foram projetadas para ultrapassar qualquer restrição de máquina local na alteração de configuração.

No entanto, isso apenas gerencia o sistema operacional básico. Depois que você começa a adicionar outros produtos da Microsoft, a situação fica muito mais complexa. O IIS possui seu próprio banco de dados, a metabase, que não está no registro. O MS-SQL tem um monte de configurações armazenadas no próprio banco de dados, entre outros lugares. O AD certamente pode ser representado como um arquivo simples, é uma exportação LDIF do LDAP, mas novamente isso é documentação, não gerenciamento. As Diretivas de Grupo em si são árvores de diretório preenchidas com arquivos nos Controladores de Domínio.

Não é um trabalho fácil, de forma alguma. É por isso que sistemas como o System Center Configuration Manager da Microsoft ou o Zenworks Configuration Management da Novell são tão complexos quanto são. De fato, até onde eu sei, esses produtos são os mais próximos do Windows para algo como o etckeeper.

sysadmin1138
fonte
A "metabase" é apenas um arquivo XML no sistema de arquivos - é bastante simples de capturar essa versão todas as noites. Agora concedido, isso não é o mesmo que acionar um diff toda vez que alguém altera manualmente as configurações, isso seria uma chaleira totalmente diferente. Depende de quanta granularidade o Ascendant precisa.
mfinni
1
Passei algum tempo na página do Microsoft System Center Configuration Manager. É algo como "diagrama bonito, palavra-chave, palavra-chave, sinergia, auto-parabéns, promessas vagas, palavras-chave". Ainda não sabemos exatamente o que ele faz, mas com frases como "conectar pessoas, processos e ferramentas - avaliando dependências e otimizando o desempenho do processo de negócios profundamente dentro do sistema operacional, aplicativos e serviços compostos e fluxos de trabalho tanto físicos quanto físicos. ambientes virtuais ". parece ser empreendedor. É bom?
Se você tem um orçamento em mente para isso, é útil mencionar isso quando estiver solicitando recomendações de produtos.
mfinni