
Теперь у меня запущены gitlab и gitolite на моем сервере ubuntu. Однако этот сервер слишком медленный, и моя компания хочет перенести сервер на другую машину. Есть ли способ перенести gitlab и gitolite сервер (все файлы, пользователей и настройки) на другую машину?
Установка и создание всех пользователей и репозиториев заново было бы моим последним выбором. Спасибо заранее.
решение1
Я постоянно делаю это с помощью почасового задания crontab для более быстрого локального развертывания. (что создает точную копию исходного сервера, служит зеркалом только для чтения, лично я называю это машиной-марионеткой).
Все, что вам нужно сделать, это:
- резервное копирование/восстановление данных MySQL (инструменты: mysqldump / mysql < backup.sql.txt)
- скопировать все gitlab www на новую машину (scp, rsync)
- скопировать все директории gitolite на новую машину (rsync)
Вы всегда можете выполнить следующую команду, чтобы проверить, успешно ли работает puppet.
bundle exec rake gitlab:app:status RAILS_ENV=production
Подробная процедура:
Я настроил mime с помощью ubuntu 12.04 gitolite apt-get install, остальное по официальному руководству, а также сделал несколько заметок:
- напоминание по адресу:https://github.com/c2h2/gitlabhq_install/blob/master/aio.sh
- Автоматизированный скрипт резервного копирования:https://github.com/c2h2/gitlabhq_install/blob/master/gitlab_backup.rb
Для автоматизированного (безпарольного) процесса rsync/scp необходимы закрытые/открытые ключи SSH. Если вы не понимаете, пожалуйста, прочтите.http://troy.jdmz.net/rsync/index.html
Все, что вам нужно сделать, это настроить несколько заданий cron после того, как исходная машина заработает: этоВ сетизеркало тоже. (вам не нужно перезапускать какой-либо веб-сервер/машину)
crontab на зеркальной машине:
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 на сервере:
7 * * * * mysqldump -p"secure password" gitlabhq_production -u root > /root/mysql_hourly_dump.txt
решение2
Перемещение гитолита кажется простым:
- вам нужно убедиться, что открытые ключи, на которые он ссылается, все еще находятся в
~/.ssh/authorized_keys
новом доме (поэтому вам в основном нужно скопировать этот файл) - И вам нужно переместить файлы
repositories
,.gitolite
и.gitolite.rc
(проверьте пути в последнем)
«Пользователи» объявляются только в файле gitolite и базе данных gitlab.
Необходимо переустановить GitLab (из-за всех используемых им gem-пакетов, которые могут использоваться по фиксированному пути, основанному на первой установке), а его базу данных обновить/заменить на базу данных с сервера Ubuntu (либо с помощью копирования файлов, либо с помощью экспорта/импорта SQL).