Como gerenciar /etc com controle de versão usando o etckeeper no Linux
- 4488
- 583
- Mrs. Willie Beahan
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:
- 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. - 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 - 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 initInicialize 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 StatusVeja 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 logVer 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 a153b6847Ver 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ômetroIniciar 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.