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
/etc
diretó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.