Em sistemas derivados do Debian, como o Ubuntu, é possível duplicar de perto a instalação do software de uma máquina para outra usando as ferramentas de gerenciamento de pacotes. Vamos dizer que MachineA é o servidor original que você deseja espelhar, e MachineB é o servidor que você quer se tornar um espelho do MachineA. (Todos os comandos citados aqui devem ser executados como root
.)
Primeiro, verifique se o pacote debconf-utils
está instalado no MachineA e no MachineB (execute o seguinte nos dois servidores):
aptitude update && aptitude install debconf-utils
Em seguida, no MachineA, faça uma cópia do estado atual do pacote e do banco de dados debconf:
dpkg --get-selections > /root/dpkg-selections.txt
debconf-get-selections > /root/debconf-selections.txt
Copie os dois arquivos de MachineA para MachineB, por exemplo:
scp /root/{dpkg,debconf}-selections.txt MachineB:
Agora, no MachineB, carregue o arquivo de seleções debconf
debconf-set-selections /root/debconf-selections.txt
carrega o arquivo de seleções de pacotes
dpkg --clear-selections && dpkg --set-selections < /root/dpkg-selections.txt
e finalmente, execute o gerenciador de pacotes para atualizar as instalações de software do seu sistema
aptitude install
Agora, tudo o que resta é mover os arquivos de configuração necessários de /etc
no MachineA para o MachineB. Isso é feito melhor manualmente, porque há determinados arquivos que precisam ser diferentes nas duas máquinas, mesmo que sejam espelhos um do outro. Por exemplo, arquivos como /etc/hostname
, /etc/network/interfaces
e /etc/fstab
refletem coisas sobre seus respectivos sistemas locais que podem (ou devem) ser diferentes em outra máquina. Para gerar uma lista de arquivos de configuração a serem copiados do MachineA para o MachineB, você pode usar rsync
no modo "dry run", em que nada é realmente copiado, mas os arquivos que seriam copiados são listados, por exemplo, (do MachineB):
rsync -rplgoDvn MachineA:/etc/ /etc
ADENDO
Não é incomum que mensagens de aviso e erro sejam geradas por debconf-set-selections
. Eu já os vi muitas vezes, e não sei por que eles ocorrem, mas não consigo lembrar de que eles indicaram uma instância real de uma configuração quebrada.
Se você é cético e deseja acalmar seus medos, é possível verificar se todas as configurações de pacote estão corretas seguindo o procedimento a seguir: Crie uma lista de todos os pacotes para os quais avisos / erros foram gerados e execute manualmente dpkg-reconfigure package
para cada pacote nessa lista. Se houver algum problema genuíno com um pacote, eles devem ser expostos e / ou reparados pela operação de reconfiguração.