Перемещение сервера Gitlab и Gitolite на другую машину
Теперь у меня есть gitlab и gitolite на моем сервере Ubuntu. Однако этот сервер работает слишком медленно, и моя компания хочет переместить сервер на другую машину. Есть ли способ перенести gitlab и gitolite server(целые файлы, пользователей и настройки) на другую машину?
Повторная установка и создание всех пользователей и репозиториев было бы моим последним выбором. Заранее спасибо.
2 ответа
Я постоянно делаю это почасовой работой crontab для более быстрого локального развертывания. (который создает точную копию исходного сервера, служит зеркалом только для чтения, лично я называю это марионеткой).
Все, что вам нужно сделать, это:
- резервное копирование / восстановление данных mysql (инструменты: mysqldump / mysql
- скопировать все gitlab www на новую машину (scp, rsync)
- скопировать все gitolite dir на новую машину (rsync)
Вы всегда можете запустить следующую команду, чтобы проверить, успешно ли работает кукла.
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
Закрытые / открытые ключи SSH необходимы для автоматического (без пароля) процесса rsync / scp, если вы не понимаете, пожалуйста, прочитайте 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
Перемещение гитолита кажется легким:
- Вы должны убедиться, что открытые ключи, на которые они ссылаются, все еще находятся в
~/.ssh/authorized_keys
нового дома (так что вам нужно скопировать этот файл) - И вам нужно переместить
repositories
,.gitolite
а также.gitolite.rc
файлы (проверьте пути в последнем)
"Пользователи" объявляются только в файле gitolite и базе данных gitlab.
GitLab следует переустановить (из-за всех используемых им драгоценных камней, которые можно использовать по фиксированному пути на основе первой установки), а его базу данных обновить / заменить на базу данных с сервера Ubuntu (либо через копию файла, либо через sql экспорт / импорт).