Conselhos sobre armazenamento / etc em um VCS?

6

Qual é o VCS mais fácil de usar para rastrear / etc? Quais são os desafios no armazenamento do diretório etc no controle de versão, melhores práticas? Devo usar um VCS centralizado ou distribuído?

    
por Kyle Burton 27.05.2009 / 18:31

7 respostas

12

Você poderia usar etckeeper para lidar com isso, o que permitiria que você usasse git, mercurial, darcs ou bzr para o repositório.

    
por 27.05.2009 / 20:35
6

Use o etckeeper para fazer isso por você. Há muitas razões para isso:

  • Você se esquecerá de usar o VCS ocasionalmente; O etckeeper conecta-se aos gerenciadores de pacotes, fornecendo um estado pré-inst e pós-inst para reverter para
  • Você estragará as permissões de arquivo
  • Você vai estragar a manipulação do arquivo shadow passwd
por 28.05.2009 / 07:03
4

Eu acho que o git é melhor nesse trabalho (embora o Mercurial provavelmente funcionasse bem). Um simples 'git init' em / etc, e você está no seu caminho. Depois disso, basta adicionar os arquivos de que você gosta e, a qualquer momento, eles podem ser verificados. Você pode até mesmo configurar o cron para fazer automaticamente o checkin toda vez que houver uma mudança (embora você não receba log arquivos). Você também pode enviar o repo se quiser definir uma segunda máquina com as mesmas configurações da primeira ou apenas como backup.

Quando iniciei o sysadmining, rcs foi o método de escolha para / etc. Então veio o CVS, depois o SVN. Eu suspeito que quando algo novo aparecer, vou mudar para isso. :) Mas a cada novo paradigma em VCS, minha vida ficou mais fácil.

    
por 27.05.2009 / 18:48
2

Concordo com o jedberg, mas faça o inverso. Use um repositório git mas crie um .gitignore ignorando todos os arquivos, em seguida, adicione um unignore para os arquivos que você gosta. Pelo menos dessa forma, seu status de git não é continuamente sujo.

ie: .gitignore * ! hosts ! resolv.conf

etc ...

John

    
por 27.05.2009 / 18:53
2

Sem nenhuma intenção religiosa: recomendo usar um VCS distribuído, preferencialmente Bazaar. Isso é porque:

  • Bazaar é fácil de instalar (nos servidores Ubuntu e Debian é apenas uma questão de apt-get install bzr )
  • É fácil configurar e começar:
cd /etc
bzr init .
bzr add .
bzr commit . -m "Initial configuration"
  • Nenhuma configuração do servidor é necessária. Bazaar pode se conectar e empurrar para um repositório remoto sem qualquer servidor Bazaar remoto em execução. Funcionará muito bem com qualquer servidor FTP ou WEBDAV, etc.

Git e Mercurial são os outros dois competidores (como foi apontado em outras respostas), mas eles não têm a capacidade de empurrar para um servidor remoto sem configuração (pelo menos ainda).

    
por 27.05.2009 / 18:55
2

Eu não gerenciaria todo o / etc em um sistema de controle de versão. A razão é que a maior parte do conteúdo de / etc provavelmente não irá mudar muito ao longo do tempo. As ferramentas de gerenciamento de pacotes gerenciarão muitos arquivos em / etc para você, e a atualização de pacotes pode causar conflitos interessantes com um VCS.

Em vez disso, eu usaria uma configuração management sistema que gerencia vários componentes e pacotes do (s) meu (s) servidor (es), usando modelos e arquivos estáticos (onde aplicável) para configurar os serviços e configurações que armazenam arquivos em / etc (e em outro lugar). Eu armazenaria tudo isso em um sistema de controle de versão, e eu pessoalmente prefiro o Git, porque como administrador do sistema, fluxos de trabalho 'típicos' do Git fazem mais sentido para mim do que o Subversion (ou CVS). A descentralização no Git faz com que seja uma grande vitória para a administração do sistema para mim.

    
por 13.06.2009 / 10:47
0

como uma adição a todos os conselhos aqui antes (que todos descrevem praticamente exatamente o que eu faço), eu acabei de descobrir tig para mim. Gerenciando etc com git usando cmdline estava me deixando louco e as mudanças foram rapidamente se acumulando, sem me mostrar qualquer desejo de cuidar deles. apenas aleatoriamente olhando em volta para GUIs git eu notei que existe uma baseada em ncurses chamada tig.

agora estou realmente ansioso para gerenciar meu / etc!

    
por 14.11.2010 / 14:46

Tags