Usando o Etckeeper para controle de versão do / etc

Introdução

O /etc/diretório desempenha um papel crítico na maneira como um sistema Linux funciona. A razão para isso é porque quase todos os arquivos de configuração do sistema estão localizados dentro /etc/. Os dados armazenados /etc/não estão relacionados apenas às bibliotecas integradas do sistema, mas também ao software recém-instalado e sua configuração. As instalações, atualizações e alterações de configuração do sistema e software estão todas armazenadas /etc/. Portanto, é uma boa prática utilizar o controle de versão ao gerenciar /etc/para evitar erros potenciais causados ​​por operações imprevistas ou acidentais.

Com o Etckeeper, você pode gerenciar facilmente /etc/com seu mecanismo de controle de versão usando um repositório Git, Mercurial, Bazaar ou Darcs. Por padrão, o Etckeeper usa o git para manter /etc/o diretório do repositório de versões em uma granularidade diária para minimizar a possível perda de dados. Além disso, permite confirmar suas alterações manualmente a qualquer momento.

Neste artigo, vamos dar uma olhada em como instalar o Etckeeper em uma instância do servidor CentOS 6, além de como executar manualmente uma confirmação e desfazer alterações.

Pré-requisitos

As instruções neste artigo foram validadas em uma instância do Vultr CentOS 6 com uma pilha LEMP. As instruções para outras distribuições podem ser diferentes.

Nota: é uma boa prática de segurança acessar seu sistema como um usuário não root com privilégios sudo.

Etapa 1: Instalar o Etckeeper

O Etckeeper está incluído no repositório EPEL Yum. Você precisa configurar o repositório EPEL Yum antes de instalar o Etckeeper:

sudo yum install epel-release
sudo yum update
sudo yum install etckeeper

Uma instalação bem-sucedida do Etckeeper instalará automaticamente o git e outras dependências.

Você pode personalizar a configuração do Etckeeper editando o arquivo de configuração localizado em /etc/etckeeper/etckeeper.conf. No entanto, a configuração padrão é adequada e a usaremos para os fins deste tutorial.

Etapa 2: Configure / etc como o diretório de trabalho git do Etckeeper

Você pode fazer com que o Etckeeper seja tratado /etc/como o diretório de trabalho do git executando os seguintes comandos:

cd /etc
sudo etckeeper init

O subcomando "init" acima criará um arquivo chamado .gitignoree um diretório chamado .gitin /etc/.

O .gitignorecontém uma lista predefinida de arquivos e não requer gerenciamento com controle de versão. Se necessário, você pode adicionar ou excluir nomes de arquivos como desejar, mas lembre-se de colocar um nome de arquivo por linha entre a linha # begin section managed by etckeeper...e a linha # end section managed by etckeeper.

O .gitdiretório é o local para armazenar o repositório de versões do /etc/diretório.

Etapa 3: Executar a confirmação inicial

Antes da confirmação inicial, você pode dar uma olhada no que será confirmado:

sudo etckeeper vcs status | more

O vcssubcomando do Etckeeper invocará o software de controle de versão (que é git) para executar o seguinte subcomando no /etc/diretório Portanto, o comando acima é igual a:

sudo git -C /etc status | more

Pressione space barpara virar uma página. Se você encontrar algum arquivo que não deva ser controlado por versão, adicione-o ao .gitignorearquivo.

Agora, você pode confirmar todo o conteúdo do diretório / etc (exceto os arquivos definidos em .gitignore) no seu repositório git. Lembre-se de escrever alguns comentários significativos entre duas aspas para revisão.

sudo etckeeper commit "Initial config in /etc"

Aqui, você pode compactar o diretório git para economizar espaço em disco:

sudo etckeeper vcs gc

Etapa 4: execute outra confirmação após fazer alterações no / etc

Juntamente com o git, o Etckeeper pode registrar quaisquer alterações que ocorram no /etc/diretório, como adicionar, modificar ou excluir arquivos, bem como alterações de propriedade e / ou permissão para arquivos e diretórios. Tudo o que /etc/está abaixo se enquadra em sua política de controle de versão.

Observe que ter /etc/controle de versão não significa que você pode executar qualquer operação nele. As más operações graves podem tornar o sistema inoperante antes que o Etckeeper possa restaurar a configuração para um estado de funcionamento.

Para fins de teste, você só deve fazer alterações seguras /etc/, como adicionar um novo arquivo, modificar o nome do host /etc/hostsou instalar um novo software usando o Yum.

Por exemplo, adicione o arquivo abcdeem /etc/:

sudo touch /etc/abcde

Em seguida, adicione a linha 192.168.0.2 desktopno /etc/hostsarquivo:

echo '192.168.0.2 desktop' | sudo tee -a /etc/hosts

Por fim, você pode executar o subcomando "commit" novamente:

sudo etckeeper commit "add a file /etc/abcde and add a line to /etc/hosts"

Etapa 5: revogue suas alterações

Primeiramente, você pode verificar o histórico do git para obter o ID de cada commit e comentar:

sudo etckeeper vcs log

Em segundo lugar, você pode verificar os detalhes de qualquer confirmação com os primeiros bits de seu ID de confirmação. Aqui, assumimos que o primeiro ID de confirmação é 7f5bff, o segundo ID de confirmação é 1aa658.

sudo etckeeper vcs show 1aa658

Você pode pressionar jpara mover para baixo, pressionar kpara mover para cima, inserir /keyword<Enter>para pesquisar, pressionar qpara sair.

Em terceiro lugar, você também pode comparar as diferenças entre duas confirmações com o seguinte comando. Esteja ciente da sequência de dois commits, uma sequência natural está colocando a primeira antes da segunda.

sudo etckeeper vcs diff 7f5bff..1aa658

Agora, você descobriu que configurou incorretamente o nome do host /etc/hostsdurante a primeira confirmação e a segunda confirmação, mas adicionar o arquivo /etc/abcdeé uma operação correta, você pode revogar sua alteração apenas no /etc/hostsarquivo com o seguinte comando:

sudo etckeeper vcs checkout 7f5bff /etc/hosts

Se você deseja revogar todas as alterações entre a primeira confirmação e a segunda confirmação, é possível usar o seguinte comando:

sudo etckeeper vcs checkout 7f5bff

Obviamente, você ainda pode retornar ao segundo commit:

sudo etckeeper vcs checkout 1aa658

Conclusão

Tendo o Etckeeper configurado corretamente, você pode ajustar e manter seu sistema com mais confiança. No entanto, esteja ciente de que o controle de versão é diferente do backup e o /etc/diretório não é o único lugar para se preocupar. Para manter seu sistema em forma, você também precisa fazer backup regularmente do sistema, além do mecanismo de controle de versão.



Leave a Comment

Configure sua própria rede privada com o OpenVPN

Configure sua própria rede privada com o OpenVPN

O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes

Como instalar e configurar o CyberPanel no servidor CentOS 7

Como instalar e configurar o CyberPanel no servidor CentOS 7

Usando um sistema diferente? Introdução O CyberPanel é um dos primeiros painéis de controle do mercado, tanto de código aberto quanto de OpenLiteSpeed. What thi

Instale o eSpeak no CentOS 7

Instale o eSpeak no CentOS 7

Usando um sistema diferente? O ESpeak pode gerar arquivos de áudio de conversão de texto em fala (TTS). Isso pode ser útil por vários motivos, como criar seu próprio Turim

Monitore seus dispositivos usando o LibreNMS no CentOS 7

Monitore seus dispositivos usando o LibreNMS no CentOS 7

Usando um sistema diferente? O LibreNMS é um sistema de monitoramento de rede de código aberto completo. Ele usa o SNMP para obter os dados de diferentes dispositivos. Uma variedade

Como usar o Sudo no Debian, CentOS e FreeBSD

Como usar o Sudo no Debian, CentOS e FreeBSD

Usar um usuário sudo para acessar um servidor e executar comandos no nível raiz é uma prática muito comum entre o Linux e o Unix Systems Administrator. O uso de um sud

Como instalar o RabbitMQ no CentOS 7

Como instalar o RabbitMQ no CentOS 7

Usando um sistema diferente? O RabbitMQ é um intermediário de mensagens de código aberto amplamente usado, escrito na linguagem de programação Erlang. Como um middleware orientado a mensagens

Configurar o Nginx-RTMP no CentOS 7

Configurar o Nginx-RTMP no CentOS 7

Usando um sistema diferente? O RTMP é ótimo para veicular conteúdo ao vivo. Quando o RTMP é emparelhado com o FFmpeg, os fluxos podem ser convertidos em várias qualidades. Vultr i

Como instalar o Gradle no CentOS 7

Como instalar o Gradle no CentOS 7

Usando um sistema diferente? Gradle é um conjunto de ferramentas de automação de compilação de código aberto e gratuito baseado nos conceitos do Apache Ant e Apache Maven. Gradle fornece

Instale um servidor FTP com ProFTPd no CentOS 6 ou CentOS 7

Instale um servidor FTP com ProFTPd no CentOS 6 ou CentOS 7

Usando um sistema diferente? Neste guia, veremos como configurar um servidor FTP (ProFTPd) para transferir arquivos entre o seu PC e o seu servidor.

Instalando o Netdata no CentOS 7

Instalando o Netdata no CentOS 7

Usando um sistema diferente? O Netdata é uma estrela em ascensão no campo do monitoramento de métricas do sistema em tempo real. Comparado com outras ferramentas do mesmo tipo, o Netdata:

Como instalar o Apache Cassandra 3.11.x no CentOS 7

Como instalar o Apache Cassandra 3.11.x no CentOS 7

Usando um sistema diferente? O Apache Cassandra é um sistema de gerenciamento de banco de dados NoSQL gratuito e de código aberto, projetado para fornecer escalabilidade, alta

Como instalar um servidor Just Cause 2 (JC2-MP) no CentOS 7

Como instalar um servidor Just Cause 2 (JC2-MP) no CentOS 7

Neste tutorial, aprenda como configurar um servidor multiplayer Just Cause 2. Pré-requisitos Verifique se o sistema está totalmente atualizado antes de começarmos

Como instalar o servidor Starbound no CentOS 7

Como instalar o servidor Starbound no CentOS 7

Usando um sistema diferente? Neste tutorial, explicarei como configurar um servidor Starbound no CentOS 7. Pré-requisitos Você precisa ser o proprietário deste jogo

Instalando e configurando o ZNC no CentOS 7

Instalando e configurando o ZNC no CentOS 7

O ZNC é um segurança IRC gratuito e de código aberto que permanece permanentemente conectado a uma rede para que os clientes possam receber mensagens enviadas enquanto estiverem offline. Thi

Como instalar o Django no CentOS 7

Como instalar o Django no CentOS 7

O Django é uma estrutura Python popular para escrever aplicativos da web. Com o Django, você pode criar aplicativos mais rapidamente, sem reinventar a roda. Se você quiser você

Como instalar o CMS de outubro no CentOS 7

Como instalar o CMS de outubro no CentOS 7

Outubro é um sistema de gerenciamento de conteúdo de código aberto baseado no Laravel PHP Framework. Com uma interface elegante e uma arquitetura modular concisa

Como configurar a autenticação de dois fatores (2FA) para SSH no CentOS 6 usando o Google Authenticator

Como configurar a autenticação de dois fatores (2FA) para SSH no CentOS 6 usando o Google Authenticator

Após alterar a porta SSH, configurar a batida na porta e fazer outros ajustes para a segurança SSH, talvez haja mais uma maneira de protegê-lo

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

Introdução O MyCLI é um cliente de linha de comando para MySQL e MariaDB que permite concluir automaticamente e ajuda na sintaxe de seus comandos SQL. MyCL

Como instalar o Directus 6.4 CMS em um CentOS 7 LAMP VPS

Como instalar o Directus 6.4 CMS em um CentOS 7 LAMP VPS

Usando um sistema diferente? O Directus 6.4 CMS é um sistema de gerenciamento de conteúdo sem cabeça (CMS) poderoso e flexível, gratuito e de código aberto que fornece

Como instalar o Reader Self 3.5 RSS Reader em um CentOS 7 LAMP VPS

Como instalar o Reader Self 3.5 RSS Reader em um CentOS 7 LAMP VPS

Usando um sistema diferente? O Reader Self 3.5 é um leitor de RSS auto-hospedado, simples e flexível, gratuito e de código aberto, e uma alternativa ao Google Reader. Leitor Sel

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.