Pular para o conteúdo principal

etckeeper: versionando seu /etc com git

Uma das muitas vantagens dos sistemas operacionais Linux, UNIX e similares é que tudo é um arquivo e que a maior parte da sua configuração é feita através de arquivos de texto, permitindo que você leia e escreva facilmente para eles com qualquer ferramenta que você escolher. 

Há diversas ferramentas para monitorar, automatizar e controlar as configurações dos seus sistemas e com elas você poderá:
Verificar as mudanças recentes no ambiente, restaurar caso algo seja deletado, reverter com maior segurança caso uma alteração gere erros, compartilhar facilmente com um time as mudanças ocorridas, nível de segurança garantindo a integridade das configurações quando seu ambiente está grande o suficiente para não saber nada mais 'de cor' e acabar com milhões de copias de arquivos de configurações (quem nunca logou num server, e dentro de algum diretório do /etc encontrou milhares de versões com sufixos ou prefixos bkp, v1, v2, old, etc...).


Então, já pensou em usar o git (ou outro) para revisar ou reverter alterações feitas no /etc ou até mesmo fazer o "push" do repositório para outros lugares?


O etckeeper é uma coleção de ferramentas que permite o /etc ser armazenado em um repositório git, mercurial, bazaar ou darcs. Por padrão o etckeeper usa o git.


Além de ser simples de usar, o etckeeper é modular e altamente configurável e se você já conhece o git ou svn será mais fácil ainda 😉


Entre os recursos adicionais que ele possui, o etckeeper conecta-se a gerenciadores de pacotes como o apt para confirmar automaticamente as alterações feitas  durante as atualizações de pacotes. Rastreia metadados de arquivos que o git normalmente não suporta, mas que é de extrema importancia para o /etc como por exemplo as permissões do /etc/shadow.


Outras ferramentas, como o gerenciamento de configuração e o gerenciamento de pacotes da distribuição, também controlam as configurações, mas não rastreiam todos os arquivos no controle de versão. 



Os sistemas de gerenciamento de configuração (CMS), como Puppet, Chef e Ansible, não rastreiam todos os arquivos no /etc. Para muitos arquivos, eles apenas verificam se certos conteúdos estão no lugar e ignoram o restante do arquivo. Por exemplo, o Puppet irá verificar se um usuário existe em /etc/passwd, mas irá ignorar as mudanças nas contas que ele não está gerenciando. Quando é feita uma atualização de algum pacote com serviço já configurado e rodando, ele irá trazer um novo arquivo de configuração, informará que já existe outro, mas não rastreia as modificações, tendo que o sysadmin faça a comparação do novo e aproveite os novos recursos, ignore, substitua, enfim...


O Etckeeper irá rastrear tudo, exceto o diretório do repo e o que você mandar ignorar no .gitingnore, o etckeeper vai auxiliar o controle de versão rastreando metadados importantes no arquivo .etckeeper.


O Etckeeper aumenta o sistema de controle de versão subjacente rastreando esses metadados importantes em /etc/.etckeeper. Mais uma vez, esse arquivo é rastreado no sistema de controle de versão. O Etckeeper também possui ganchos para trabalhar com o sistema de gerenciamento de pacotes e fazer o check-in das mudanças após as instalações e atualizações dos pacotes. Primeiros passos com o etckeeper 


A versão mais recente é a 1.18.10
Para instalar ele basta verificar o seu gerenciador de pacotes da sua distribuição (baseados em RedHat e Debian já possuem como o CentOS e Ubuntu). 
Caso prefira, o fonte está no git git.joeyh.name/etckeeper (nota: antes do 'make install', edite o conf para a sua distribuição).




Uma vez instalado, use o init para inicializar o repositório e, em seguida, verifique o estado atual. 
$ sudo etckeeper init 
$ sudo etckeeper commit -m "Checkin inicial" 


Uma vez inicializado, o /etc será um repositório em seu sistema de controle de versão, assim como qualquer outro repo iniciado.
Você pode digitar os comandos do VCS diretamente (como git status, git commit, etc...) ou usar o etckeeper:
$ sudo etckeeper vcs git status
$ sudo etckeeper vcs git commit


Se usar alguma ferramenta como o Gitkraken ou o SmartGit, irá conseguir abrir normalmente.

Abaixo, visualizando com o Gitkraken, habilitei o etckeeper no meu notebook e como 'remote' coloquei num repo privado no github.com.







Site: https://etckeeper.branchable.com/



Postagens mais visitadas deste blog

TuxMath - Tux, do Comando da Matemática. Ensino e diversão a crianças.

Tux Of Math Command, (Tux, do Comando da Matemática, em sátira ao desenho animado, Buzz Lightyear, do Comando Estelar) ou simplesmente TuxMath é um game open source, no estilo arcade, originalmente desenvolvido para linux, mas atualmente é multiplataforma, disponível em Windows, Mac, BeOS, web, dispositivos móveis...

Melhor desempenho da memória RAM e SWAP no Linux

Melhor desempenho da RAM/SWAP Objetivo: Determinar através do kernel (sysctl) quando o sistema deverá utilizar a memória swap. Com isto, o linux vai usar mais a memória RAM e dar prioridade a ela, ao invés de levar isto para o HD (swap) e deixar alguns processos mais demorados. Por padrão, o valor de swappiness no debian é 60. Ou seja, usará o swap quando a RAM estiver em torno de 40% a 50% em uso. Verificar valor padrão: # cat /proc/sys/vm/swappiness Reduzindo o valor de swappiness para 10 ou 15 (neste exemplo, reduzi para 5), o arquivo de swap será usado apenas quando o uso da RAM chegar em torno de 80 a 90 por cento. Edite: # vim /etc/sysctl.conf Altere (adicione se não existir a linha) no arquivo: # vm.swappiness = 5 (Há quem coloque 0 ou 1, mas prefiro assim) Para evitar a necessidade de reiniciar o sistema, execute: # sysctl vm.swappiness=5 depois, apenas como verificação, execute: # swapoff -a # swapon -a # sysctl -p /etc/sysctl.conf

Tipos de VPNs: PPTP x OpenVPN x L2TP/IPsec x SSTP x IKEv2 x Chameleon x WireGuard

Olá, Baseando-me no formato do artigo sobre Certificados e a sopa de letras: HTTPS, TLS, SSL, HSTS, CA, PGP, GPG e OpenPGP , com o artigo sobre o WireGuard  e a atual crise mundial que forçou muitos em quarentena a trabalhar remotamente, resolvi fazer um semelhante abordando os diferentes tipos de VPN. O principal problema é que ao ler a documentação e artigos atuais, além de longos eles se prolongam muito no detalhe técnico entre elas, então tentei criar um TL;DR (que ficou um pouco grande, mas bem resumido). Uma VPN, ou rede virtual privada, permite criar uma conexão segura entre duas redes ou entre seu dispositivo/host com alguma rede, usando a internet como meio, como túnel para chegar ao destino. As VPNs podem ser usadas para acessar sites restritos por região (países proíbem torrents, outros proíbem redes sociais, sites de noticias...), proteger sua navegação (em redes não confiáveis como hotéis, wifi de lojas, etc...), acessar um sistema corporativo que está instalado e disponív

DHCP - Guia Completo

atualizado em 18/03/2015 Olá a todos, disponibilizo mais um guia ;-) Apesar de um assunto bem fácil, sem segredos ou mistérios, o tema deste guia é DHCP Servers. Nele, abordo o que é o dhcp, como funciona e como configurar. A novidade neste guia é que mostro como realizar a configuração de um servidor DHCP usando roteadores "home / small office", como os famosos d-link, encore, tenda, pacific, tp-link, etc... Como criar um servidor dhcp usando equipamentos Cisco, como habilitar o DHCP Server usando a plataforma Windows (Windows Server 2003), e finalmente usando o GNU/Linux. Claro que meu foco é favorecer o uso do Linux para prover este serviço, para isto, mostro desde a configuração mais simples, até algumas avançadas, tanto em modo texto quanto as mais variadas interfaces gráficas existentes no S.O. para configurar e monitorar este simples serviço de rede. No GNU/Linux, abordo o DHCP Server mais utilizado no mundo (da ISC), as configurações mais utilizadas, o c

SSD no linux

Mitos e verdades do SSD no Linux - Instalando, configurando e otimizando SSD no Linux SSD são suportados no Linux desde o kernel 2.6.29. Schedulers e File Systems também suportam os 'discos sólidos' ou 'não-rotacionais' (SSDs) há um bom tempo. A maioria dos artigos que existem na internet são bem antigos e não refletem os ambientes atuais dos sistemas Linux. Este artigo trás alguns macetes para otimizar o SSD num ambiente onde o sistema operacional estará instalado nele. Tiro alguns mitos de que seria necessário mudanças bruscas no sistema para que o SSD seja bem aproveitado (hoje, basicamente no uso do dia-a-dia, nada é preciso após instala-lo) apenas alguns pontos a serem observados.

Teste de Performance de Rede com Iperf

Troubleshooting,  Throughput,  testes de  conectividade e transmissão de pacotes em rede com Software Livre/Open Source Sumário Base de Conhecimento Rede Local e o tráfego de informações O que é Possíveis situações de uso O Básico - Executando como Server No Windows No GNU/Linux O Básico – o Cliente No Windows No Linux Utilizando UDP Argumentando... Mais Opções Opções gerais -f, --format -i, --interval n -l, --len N -m, --print_mss -o, --output <arquivo> -p, --port n -u, --udp -x, --reportexclude -y, --reportstyle C -w, --window n -B, --bind <host> -M, --mss n -N, --nodelay -V, --IPv6Version Opções para o cliente -P , --parallel -T, --ttl -n, --num -t, --time -d, --dualtest -r, --tradeoff -L, --listenport -b, --bandwidth -F, --fileinput <name> -I, --stdin Opções para o Servidor -s, --server -U, --single_udp -D, --daemon Interface Gráfica em JAVA Conclusão Minha rede está lenta, e agora?? Download e Links Base de Conhecimento O TCP é o protocolo

Colorindo o terminal do Linux

Abaixo, 3 dicas simples para colorir o Linux: Deixar o terminal (bash) colorido; Deixar o vim e o nano colorido; Deixar as manpages coloridas; No bash facilita a identificação de tipos de arquivos, diretórios e permissões (pois cada um terá uma cor diferente). Nos editores de texto, (neste caso o Nano e VIm), as cores facilitam ao criar scripts e programas nas mais variadas linguagens, os esquemas de cores, identificam a sintax da linguagem e colorem de acordo com os comandos, por exemplo, uma cor diferente para scripts entre aspas, comentários, cores diferentes para variáveis, etc... E a melhor de todas as dicas: colorir as manpages! Parece que não, mas facilita muito a vida quando você olha as manpags e enxerga facilmente as flags e opções de cada comando, exemplos e distingui a descrição da opção do comando. Colorindo o Bash Coloque no final do arquivo .bashrc (ele é um arquivo oculto que está dentro do seu /home), é o arquivo de configuração do bash de cada usuário.  

Protocolo RIP - Lab com passo-a-passo em roteadores Cisco

O RIP ou Routing Information Protocol é um protocolo aberto, definido na RFC 1058, e classificado como vetor de distância. As diferenças básicas entre o RIP versão 1 e versão 2 é que o primeiro é classfull, ou seja, suporta apenas classes cheias (A, B ou C) ou subrede com a mesma máscara e troca atualizações de roteamento via broadcast. Já a versão 2 suporta CIDR (classless) e VLSM (divisão de subredes com várias máscaras de subrede), além disso, troca informações através de multicast no endereço 224.0.0.9. Ambas as versões trocam informações utilizando UDP na porta 520. Para IPv6 (versão 6 do protocolo IP) o RIP passa a chamar RIPng (Next Generation) e funciona basicamente da mesma maneira que o RIP versão 2 para IPv4, porém enviando updates no endereço IPv6 de multicast FF02::9. Para configurar o RIP versão 1 basta ativar o protocolo com o comando “router rip”, depois em modo de configuração do roteador definir as redes que serão anunciadas com o comando “network”. No comando

Aula #5 - A estrutura da árvore do Sistema de Arquivos Linux

Existem vários tipos de arquivos presentes em um sistema Linux.  Eles diferem em propósito, tamanho, dono, nível de compartilhamento e volatilidade.  O resultado é uma organização coerente de toda a árvore do sistema de arquivos que é padrão(na medida do possível) entre as distribuições Linux.

Aula #14 - Os sistemas de arquivos ext2/ext3/ext4

  A família de sistemas de arquivos ext tem sido nativa para o Linux desde os seus primeiros dias, e tem sido a mais utilizada. Até recentemente, o ext4 foi a escolha padrão mais comum das distribuições Linux, devido à sua excelente combinação de desempenho, integridade e estabilidade.