Version-control de arquivos de configuração com nomes de casas diferentes?

1

Eu recentemente decidi usar um sistema de controle de versão para compartilhar meus arquivos de configuração entre minhas diferentes instalações do Linux.

Depois de ler outro tópico que encontrei neste assunto , estou planejando fazer isso usando o git.

Eu colocaria meu / sob controle de revisão com um conjunto de alto nível .gitignore definido como * e adicionaria manualmente cada arquivo de configuração que eu gostaria de acompanhar (principalmente arquivos de /etc/… ).

O que eu não entendo, é como eu posso lidar com diferentes diretórios home. Como exemplo, digamos que na máquina A eu tenho /home/foo/.vimrc e na máquina B /home/bar/.vimrc , como eu poderia obter o git para manter ambos os arquivos sob o mesmo repositório de controle de versão?

[Atualização]

Estou procurando uma solução muito leve que faça exatamente o que eu preciso (sem Puppet ou Cfengine, por exemplo). Eu estava pensando em criar uma pasta .config no meu /home/whatever/ em que eu manteria todos os meus arquivos de configuração importantes usando um repositório git. Um script muito simples criaria os links simbólicos necessários do meu /etc/ , ~/… e assim por diante. Alguma outra sugestão?

    
por FuzzyTern 08.04.2011 / 01:14

2 respostas

3

Indiscutivelmente, você está tentando usar um sistema de controle de revisão para fazer o gerenciamento de configuração. Esses são dois tipos muito diferentes de atividades. Eu acho que a abordagem que você está tomando não vai escalar bem, e levará a quantidades significativas de frustração. Você seria mais bem servido para encontrar uma solução de gerenciamento de configuração (há algumas opções bem desenvolvidas: cfengine, puppet, chef, etc), e então ter sua solução de gerenciamento de configuração extrair suas receitas e / ou arquivos de configuração do sistema de controle de revisão. Ele lhe dará o mesmo efeito que você parece estar procurando, mas terá as ferramentas certas trabalhando nas partes apropriadas do problema.

    
por 08.04.2011 / 01:25
0

Você poderia tentar ansible. Não precisa de um servidor diferente. Você pode até mesmo ter o repositório principal em um ou mais de seus sistemas e rodar a partir de cada um deles. E você pode manter todos os arquivos nos diretórios de configuração em sincronia mesmo que o conteúdo tenha que ser diferente (por exemplo, / etc / hostname, / etc / mailname, ...)

Se você realmente quiser usar o git: O que eu não entendo é por que você quer colocar / como o caminho base para o seu git. Por que você não inicia vários repositórios git?

  • Um deles é o seu $ HOME. Portanto, não importa qual é o seu nome de usuário. Talvez você possa usar o diretório ~ / .config para ligar simbolicamente os arquivos que são esperados em ~ /. Então você nem precisaria usar o .gitignore neste repositório.

  • O próximo seria para / etc exclusivamente.

por 29.03.2017 / 10:37