Usando o git para gerenciar / etc?

13

Estou pensando em um sistema, onde /etcforam rastreados em um repositório remoto do git. Estou pensando em um fluxo de trabalho git, onde cada máquina host possui uma ramificação diferente.

Todas as versões anteriores em todas as máquinas podiam ser facilmente rastreadas, comparadas e mescladas.

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

No caso de uma /etcalteração "indesejada" , isso pode ser bem visível (até scripts de alarme podem ser ajustados para assistir a isso).

Alguém já usou essa configuração? Há algum problema de segurança?

peterh - Restabelecer Monica
fonte
6
Existe o etckeeperque já é usado em muitos sistemas. Ele não oferece todos os recursos solicitados. Por exemplo, ele tem um repositório por host, não central.
Jofel
Em quais arquivos você está interessado ou quais arquivos foram alterados indesejados no passado? Eu pergunto porque acho que o Git não é o caminho certo para resolver problemas causados ​​em outro ponto do seu fluxo de trabalho. Além disso: se alguém esquecer de cometer várias alterações, o Git não terá valor. Poderia explicar o seu ambiente? Você tem ambientes de teste e controle de qualidade idênticos à produção? Você tem muito mais que dois ou três hospedeiros do mesmo tipo / finalidade ou é heterogêneo? O que é mais importante: comparar configurações de hosts ou rastrear uma configuração de hosts ao longo do tempo?
try-catch-finalmente

Respostas:

6

O programa etckeepergere /etcem git, você só precisa mudar o padrão vcs backend a partir bzrde gitno /etc/etckeeper/etckeeper.conf.

Ele é instalado por padrão no Ubuntu Linux e lida com os casos comuns de quando confirmar automaticamente.
Ele é confirmado antes da instalação dos pacotes, caso haja alterações manuais não confirmadas e após a instalação.

Volker Siegel
fonte
4

O problema com o acompanhamento de configuração para /etcem gité que tudo que você realmente ganhar com isso é controle de versão (a maioria dos gitnovatos nem sei como tage branchadequadamente, tão improvável nesse ponto) e a capacidade de reversão (novamente, se você aren' t taggingcorretamente, você não ganha nada, mas um registro para culpar as pessoas); mas você perde a modelagem (modelo não pode porque o git não fornece isso) e a expansão (não é possível aplicar a configuração em nenhum outro lugar; especialmente se você estiver usando bancos de dados distribuídos como o Elasticsearch) e gerenciamento de sistemas automatizado (novamente, o git não fornece isso )

Com isso dito, o que você provavelmente está procurando é gerenciamento de configuração ; que os laços em templates , gite scripting básico para gerenciar a configuração. Obviamente, isso está indo na direção do DevOps e da Infraestrutura como código .

Para adicionar a isso; O Ansible possui o ansible-pullqual pode obter o repo mais recente dos seus playbooks git; o mesmo se aplica ao Chef. Basicamente, os administradores modernos do Linux não devem usar algo parecido etckeeper. Chef também tem modo cliente-servidor onde você pode gerenciar todos os sistemas com os chef-clientbaseados em environment, rolese livro de receitas versões; coisas que você não pode fazer gitapenas e em escala.


fonte
Não é só a reversão que eu recebo com o git. Eu também obtenho comparabilidade (entre máquinas e entre o tempo) e também sincronização. Mas acho que a idéia sobre algumas ferramentas mais direcionadas é útil.
peterh - Restabelece Monica