Sincronize o diretório Linux /etc/

Sincronize o diretório Linux /etc/

Tenho máquina virtual com Linux (servidor Ubuntu) que serve de protótipo para outras máquinas. Às vezes faço alterações no sistema protótipo e quero importar essas alterações para alguma outra máquina.

Eu sei sobre Puppet, cfengine e FAI, mas quero algo fácil, por exemplo, script rsync que funcione através de ssh quando necessário.

O objetivo principal é o diretório /etc/. Mas não quero sincronizar alguns arquivos privados, por exemplo /etc/passwd /etc/shadow e assim por diante. Eu não sei tudo isso.

Existem dicas para minha tarefa? Pode ser que alguém tenha esse script rsync.

Responder1

Uma solução simples pode ser configurar o git.

  • Configure um repositório git em seu /etcdiretório.
  • Configure um arquivo ignorado para excluir coisas que você não deseja migrar para o sistema remoto.
  • Adicione tudo que não for ignorado em seu repositório.
  • Na produção, extraia do repositório de desenvolvimento conforme necessário.

Responder2

Você já tem a resposta. O rsync pode fazer o que você quiser, ele executa o ssh quando você quiser e pode facilmente ignorar os arquivos que você não deseja sincronizar:

rsync -avP source:/etc/ /etc/ --exclude-from list-of-files-to-exclude

E basta adicionar uma lista de arquivos a serem excluídos imediatamente list-of-files-to-exclude. Por exemplo:

$ cat list-of-files-to-exclude
/passwd
/shadow

É claro que eu ainda recomendaria fortemente o controle de versão e algo mais sofisticado como o fantoche. E certifique-se de cuidar da propriedade e das permissões dos arquivos.

informação relacionada