Estou constantemente fazendo isso por meio de trabalho crontab por hora para uma implantação local mais rápida. (que cria uma cópia exata do servidor original, serve como um espelho somente leitura, pessoalmente eu chamo de máquina fantoche).
Tudo o que você precisa fazer é:
- backup / restore dos dados do mysql (ferramentas: mysqldump / mysql < backup.sql.txt)
- copie todo o gitlab www para a nova máquina (scp, rsync)
- copie o diretório gitolite para a nova máquina (rsync)
Você sempre pode executar o seguinte comando para testar se o fantoche está sendo executado com êxito.
bundle exec rake gitlab:app:status RAILS_ENV=production
Alguns procedimentos detalhados:
Eu tenho mime setup feito usando o Ubuntu 12.04 gitolite apt-get install, descanse por guia oficial e também fiz algumas anotações:
Chaves privadas / públicas do SSH são necessárias para o processo rsync / scp automatizado (sem senha), se você não entender o plz, leia link
Tudo o que você precisa para configurar alguns trabalhos agendados após a máquina original estar funcionando: isso também é um espelho online . (você não precisa reiniciar nenhum servidor / máquina)
crontab na máquina espelho:
58 * * * * rsync -zav root@my_remote_server.com:/home/git /home
11 * * * * rsync -zav root@my_remote_server.com:/root/mysql_hourly_dump.txt /root
15 * * * * mysql -u root -p"secure password" gitlabhq_production < mysql_hourly_dump.txt
20 * * * * rsync -zav --delete my_remote_server.com:/www/ /www
crontab no servidor:
7 * * * * mysqldump -p"secure password" gitlabhq_production -u root > /root/mysql_hourly_dump.txt