Como gerenciar /etc com controle de versão usando o etckeeper no Linux

Como gerenciar /etc com controle de versão usando o etckeeper no Linux

Na estrutura do diretório UNIX/Linux, o /etc O diretório é onde estão localizados arquivos e diretórios de configuração em todo o sistema específicos do host; É um local central para todos os arquivos de configuração em todo o sistema. Um arquivo de configuração é um arquivo local usado para controlar como um programa funciona - deve ser estático e não pode ser um binário executável.

Para acompanhar as alterações nos arquivos de configuração do sistema, os administradores do sistema normalmente fazem cópias (ou backups) dos arquivos de configuração antes de modificá -los. Dessa forma, se eles modificarem diretamente o arquivo original e cometeram um erro, poderão reverter para a cópia salva.

Etckeeper é uma coleção simples, fácil de usar, modular e configurável de ferramentas para deixar /etc ser gerenciado usando o controle de versão. Ele permite que você armazene mudanças no /etc diretório em um sistema de controle de versão (VCs) como Git (que é o repositório preferido de VCs), Mercurial, Bazaar ou DARCS. Permitindo que você use o Git para revisar ou reverter alterações que foram feitas para /etc, Em caso de erro.

Seus outros recursos são:

  1. Ele suporta integração com gerentes de pacotes front-end, incluindo apt, yum, dnf, zypper e Pacman-G2 para cometer automaticamente alterações feitas para /etc Durante as atualizações do pacote.
  2. Ele rastreia os metadados do arquivo (como as permissões de arquivo) que o Git geralmente não suporta, mas isso é importante para /etc, e
  3. Inclui um trabalho de cron e um Systemd timer, que cada um pode cometer mudanças de saída para /etc automaticamente uma vez por dia.

Como instalar o etckeeper no Linux

Etckeeper está disponível em Debian, Ubuntu, Fedora, e outras distribuições Linux. Para instalá -lo, use seu gerenciador de pacotes padrão, conforme mostrado. Observe que este comando também instalará git e alguns outros pacotes como dependências.

$ sudo apt-get install etc.Ubuntu e Debian #instalação apt-get etc.debian como usuário root #dnf install etckeeper #fedora 22+ $ sudo zypper etc 

Sobre Enterprise Linux distribuições como Redhat Enterprise Linux (RHEL), CENTOS e outros, você precisa adicionar o Repositório EPEL Antes de instalá -lo como mostrado.

# yum installele-lançamento # yum install etckeeper 

Configurando o etckeeper no Linux

Depois de instalar etckeeper Como mostrado acima, você precisa configurar como ele operará e seu principal arquivo de configuração é /etc/etckeeper/etc.conf. Para abri-lo para edição, use qualquer um dos seus editores favoritos baseados em texto, como mostrado.

# vim/etc/etckeeper/etc.conf ou $ sudo nano/etc/etc.conf 

O arquivo contém várias opções de configuração (cada uma com uma descrição pequena e clara de uso) que permitem definir o sistema de controle de versão (VCs) para usar, passe opções para Vsc; Para ativar ou desativar o cronômetro, ativar ou desativar o aviso especial de arquivos, permitir ou desativar o etc /etc antes da instalação.

Além disso, você pode definir o front-end ou o gerenciador de pacotes de nível superior (como apt, yum, dnf etc.) e gerenciador de pacotes subjacente ou de baixo nível (DPKG, RPM etc.) trabalhar com etckeeper.

Se você fez alguma alteração no arquivo, salve -o e feche o arquivo.

Inicializando o repositório Git e execute a confirmação inicial

Agora que você configurou o etc., você precisa inicializar o Git repositório para começar a rastrear quaisquer alterações em seu /etc diretório da seguinte maneira. Você só pode correr etckeeper com permissões de raiz, caso contrário, use sudo.

$ cd $ sudo etckeeper init 
Inicialize o repositório Git em /etc

Em seguida, passo para etckeeper Para poder trabalhar automaticamente, você precisa executar o primeiro compromisso para começar a acompanhar as mudanças em /etc, do seguinte modo.

$ sudo etckeeper Commitem "primeiro comprometimento" 
Run Git Comprome -se a rastrear mudanças no sistema de arquivos etc

Fazendo mudanças e cometendo

Depois de executar seu primeiro compromisso, etckeeper através da git agora está rastreando quaisquer alterações no /etc diretório. Agora tente fazer alterações em qualquer um dos arquivos de configuração.

Em seguida, execute o comando a seguir para mostrar arquivos que mudaram desde a última confirmação; Este comando mostra essencialmente as mudanças em /etc não encenado para comprometer, onde VCs significa git e “status”É um subcomando git.

$ sudo etckeeper VCS Status 
Veja alterações no sistema de arquivos /etc

Em seguida, comprometa as mudanças recentes da seguinte forma.

$ sudo etckeeper Commit "hosts alterados e arquivos de configuração phpmyadmin" 
Cometer novas mudanças

Ver logs de confirmação

Para visualizar um registro de todos os compromissos (a identificação e comentário de cada compromisso), você pode executar o seguinte comando.

$ sudo etckeeper vcs log 
Ver História do Commit Git

Você também pode mostrar os detalhes de um compromisso, basta especificar o ID de confirmação (os primeiros caracteres podem funcionar) como mostrado.:

$ sudo etckeeper vcs show a153b68479d0c440cc42c228cbbb6984095f322d ou $ sudo etckeeper vcs show a153b6847 
Ver detalhes de comprometimento

Além disso, você pode ver a diferença entre dois compromissos como mostrado. Isso é especialmente útil se você deseja revogar as alterações, como mostrado na próxima seção. Você pode usar as teclas de seta para rolar para cima e para baixo ou para a esquerda e para a direita, e sair pressionando q.

$ sudo etckeeper vcs show 704cc56 a153b6847 

Como revogar mudanças

A essência de etckeeper é ajudá -lo a rastrear mudanças em seu /etc diretório e reverte as mudanças sempre que necessário. Supondo que você perceba que cometeu alguns erros no /etc/nginx/nginx.conf Quando você o editou pela última vez e o serviço Nginx não pode ser reiniciado devido a erros na estrutura de configuração, você pode reverter para a cópia salva em um compromisso específico (e.g 704CC56) onde você acha que a configuração estava correta da seguinte forma.

$ sudo etckeeper vcs checkout 704cc56/etc/nginx/nginx.conf 

Como alternativa, você pode cancelar todas as alterações e reverter para versões de todos os arquivos em /etc (e seus subdiretos) armazenados em um commit específico.

$ sudo etckeeper vcs checkout 704cc56 

Como permitir que as alterações sejam comprometidas automaticamente

Etckeeper Também é enviado com unidades de serviço e timer para Systemd, incluído no pacote. Lançar "AutoComit”De mudanças no /etc diretório, basta começar etckeeper.cronômetro unidade por enquanto e verifique se está em funcionamento, como segue.

$ sudo systemctl start etckeeper.Timer $ sudo status Systemctl etckeeper.cronômetro 
Iniciar a Unidade de Timer do Etckeeper

E permita que ele inicie automaticamente na inicialização do sistema, conforme mostrado.

$ sudo systemctl atable etckeeper.cronômetro 

Para mais informações, consulte a página do projeto etckeeper: https: // etckeeper.ramificável.coma.

Conclusão

Neste guia, mostramos como instalar e usar etckeeper para mudanças nas lojas no /etc diretório em um sistema de controle de versão (VCs) como git e revisar ou reverter alterações que foram feitas para /etc, onde necessário. Compartilhe seus pensamentos ou faça perguntas sobre o etckeeper através do formulário de feedback abaixo.