A resposta curta à sua pergunta é sim .
Eu não hesitaria em recomendar o Git (ou qualquer outro software de controle de versão) para acompanhar os arquivos de configuração. Desde então, tenho sido mais produtivo (principalmente para configurar novas instalações) e tenho mais confiança em meus arquivos de configuração. Com o controle de versão, eu tenho um registro de que alterações foram feitas e a mensagem de confirmação fornece o motivo porque a mudança foi feita. Se uma alteração tiver efeitos colaterais indesejados, posso revisar facilmente o log / histórico para ver qual alteração causou os efeitos.
Pessoalmente, eu seria cauteloso em rastrear todos os arquivos sob o /
diretório raiz. A lista de caminhos a serem ignorados pode se tornar grande e complicada. Eu prefiro manter cada conjunto lógico de arquivos em seu próprio repositório.
Eu uso manualmente o Git para manter o controle do meu pessoal arquivos de configuração / inicialização, por exemplo, configuração do Vim, funções Bash, aliases, etc. - semelhante à abordagem listada Como rastrear $ HOME com git . Eu mantenho cada conjunto de arquivos em seu próprio repositório e uso links simbólicos para o diretório inicial.
Para sistema arquivos de configuração, eu uso o Git com Etckeeper para acompanhar arquivos no meu /etc
diretório.
Desvantagens
Uma questão a ser cautelosa é se os arquivos que estão sendo rastreados incluem links rígidos . Quando o Git é usado para verificar arquivos ou modificar a árvore de trabalho, desassocia os arquivos e, em seguida, os recria . Vejo Git, Dotfiles e Hardlinks para uma explicação mais completa.
Etckeeper
O etckeeper pode ser usado para manter um histórico completo das alterações feitas em / etc.
Ele rastreia os metadados de arquivos que os sistemas de controle de revisão normalmente não suportam,
mas isso é importante para /etc
, como as permissões de /etc/shadow
.
Ele conecta-se a gerenciadores de pacotes como apt e yum e (em seu padrão
configuração), é executado antes e depois da instalação, de modo que todas as alterações /etc
está
monitorados.
Se um pacote for instalado ou removido, todas as alterações não confirmadas em / etc serão
confirmada antes da operação do pacote, para que haja dois commits:
- “Salvar alterações não confirmadas em / etc antes da execução do yum”
- “Comprometendo mudanças em / etc depois da execução do yum”
Eu usei isso com distribuições Debian e Red Hat e sei disso
suporta o gerenciamento de pacotes do Arch. Eu não posso dizer quanta automação seria
adicionar a um sistema Gentoo, mas um pacote está disponível para
isto .
Ele também suporta o envio de arquivos de configuração para um repositório remoto (que deve, claro, ser privado).
Configuração
Depois de instalar o pacote, você pode precisar configurá-lo ( /etc/etckeeper/etckeeper.conf
), por exemplo, nos sistemas Ubuntu, o sistema de controle de versão padrão é alterado de Git para Bazaar. Você também pode gostar de desativar o auto-commits diários .
Autocomissos diários
As alterações podem ser automaticamente confirmadas por um cron job diário . Isso pode ser chato
como o repositório pode ficar desordenado com várias mensagens de confirmação automatizadas.
Eu descomentei a linha apropriada em /etc/etckeeper/etckeeper.conf
:
sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf
Ignorar determinados arquivos
Editar /etc/.gitignore
para especificar os arquivos que não devem ser rastreados.
Primeira corrida
Após a configuração, execute os seguintes comandos:
sudo etckeeper init
sudo etckeeper commit "Initial commit"
Se o seu diretório atual é etc
você pode correr regularmente git
comandos, por exemplo,
sudo git status
sudo git log