Usando o git para gerenciar / etc?

9

Estou pensando em um sistema em que /etc foram rastreados em um repositório git remoto. Eu estou pensando em um fluxo de trabalho git, onde cada máquina host, onde um ramo diferente.

Todas as versões anteriores de cada máquina podem ser facilmente rastreadas, comparadas e mescladas.

Se uma modificação em /etc tivesse que ser confirmada em muitas máquinas, isso poderia ser feito facilmente por algum script de mesclagem.

No caso de uma alteração "indesejável" de /etc , isso pode ficar bem visível (até mesmo scripts de alarme podem ser ajustados para assistir a isso).

Alguém já usou uma configuração desse tipo? Há algum problema de segurança com isso?

    
por peterh 23.06.2014 / 10:30

2 respostas

3

O programa etckeeper gerencia /etc em git , você só precisa alterar o backend vcs padrão de bzr para git em /etc/etckeeper/etckeeper.conf .

Ele é instalado por padrão no Ubuntu Linux e lida com os casos comuns de quando se comprometer automaticamente.
Ele se compromete antes de instalar os pacotes, caso haja alterações manuais não efetuadas e após a instalação.

    
por 03.08.2014 / 15:06
4

O problema com a configuração de rastreamento para /etc in git é que tudo o que você realmente ganha fazendo isso é o controle de versão (a maioria dos git novatos nem sabe como tag e branch corretamente, tão improvável nesse ponto) e a capacidade de reversão (novamente, se você não for tagging propriamente, você não ganhará nada além de um registro para culpar as pessoas); mas você perderá os templates (não pode ser o template porque git não fornece isso), e escalando (você não pode aplicar a configuração em nenhum outro lugar; especialmente se você estiver usando bancos de dados distribuídos como o Elasticsearch) e gerenciamento automatizado de sistemas (novamente, git doesnt fornece isso ).

Com isso dito, o que você provavelmente está procurando é gerenciamento de configuração ; que vincula a modelagem , git e o script básico para gerenciar a configuração. Isso, claro, está indo na direção de DevOps e Infraestrutura como Código .

Para adicionar isso; O Ansible tem ansible-pull , que pode extrair o repositório mais recente de seus playbooks de git ; o mesmo também é verdade para o Chef. Basicamente, os administradores modernos do Linux não deveriam estar usando algo como etckeeper . O Chef também possui o modo cliente-servidor, no qual você pode gerenciar todos os sistemas com as versões chef-client com base nas versões environment , roles e cookbook; coisas que você não pode fazer com git exclusivamente e em escala.

    
por 26.07.2017 / 23:18