Описание перенос GitLab с версии 6.7.3 (установленного изначально из source code) на версию 7.12.2 (omnibus). Перенос осуществлялся с машины Ubuntu 12 (MySQL) на Ubuntu 14.04.3 (Postgree) (64bit).
# cd tmp/backups/postgresql
Подготовка архива для переноса.
На машине со старым GitLab.
Заходим под root (или sudo пользователем), переходим в папку с установленным GitLab:
# cd /home/git/gitlab
Выключаем сервис GitLab
# service gitlab stop
Запускаем создание архива (в зависимости от наполнения репозиториями, времени может занять много)
# sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
По умолчанию архив создастся в tmp/backups/1443309741_gitlab_backup.tar, где 1443309741 - временная печать архива (может со временем в следующих архивах меняться).
После этого подготавливаем дамп MySQL базы для переноса:
# sudo -u git -H mysqldump --compatible=postgresql --default-character-set=utf8 -r
gitlabhq_production.mysql -u root gitlabhq_production -p
Итого, у нас получиться два файла для переноса на новый сервер:
- 1443309741_gitlab_backup.tar
- gitlabhq_production.mysql
После перетягивания на новый GitLab сервер этих двух файлов можно тушить старый GitLab
На машине с новым GitLab.
Устанавливаем omnibus версию GitLab, причём номер её должен совпадать с переносимой версией, в нашем случае, это 6.7.3.
# apt-get update && apt-get upgrade -y
# apt-get install vim mc curl openssh-server ca-certificates postfix
# wget https://downloads-packages.s3.amazonaws.com/gitlab_6.7.3-omnibus.3-1.ubuntu.12.04_amd64.deb
# dpkg -i gitlab_6.7.3-omnibus.3-1.ubuntu.12.04_amd64.deb
Архивы старых версий: https://about.gitlab.com/downloads/archives/
# gitlab-ctl reconfigure
# gitlab-ctl restart
В случае ошибок установки можно проверить что пошло не так:
# gitlab-ctl status
# gitlab-rake gitlab:check SANITIZE=true
В нашем архиве (1443309741_gitlab_backup.tar) имеется дамп MySQL базы GitLab, который необходимо заменить на обработанный и подготовленный для Postgree.
Переходим в рабочую папку GitLab:
# cd /var/opt/gitlab
# sudo -u git -H mkdir -p tmp/backups/postgresql# cd tmp/backups/postgresql
Копируем в данную папку наши два файла архива. Не забываем им дать права для git пользователя:
# chown git *
Тащим gitlab конвертер:
# sudo -u git -H git clone https://github.com/gitlabhq/mysql-postgresql-converter.git -b gitlab
Примечание: если git клиент не установлен, тогда выполняем:
# apt-get install git
После установки, приступаем к конвертированию дампа базы:
# sudo -u git -H mkdir db
# sudo -u git -H python mysql-postgresql-converter/db_converter.py gitlabhq_production.mysql db/database.sql
# sudo -u git -H ed -s db/database.sql < mysql-postgresql-converter/move_drop_indexes.ed
# sudo -u git -H tar --delete -f 1443309741_gitlab_backup.tar db/da*
# sudo -u git -H tar rf 1443309741_gitlab_backup.tar db/database.sql
Перетаскиваем "пересобранный архив" в папку c резервными копиями по пути:
# mv 1443309741_gitlab_backup.tar /var/opt/gitlab/backups/
Всё готово для развёртывания резервной копии
Развертывание резервной копии
После того, как мы "пересобранный архив" уложили в папку с резервными копиями GitLab, восстанавливаем:
# gitlab-rake gitlab:backup:restore RAILS_ENV=production
# gitlab-ctl restart
После этого через web интерфейс GitLab проверяем восстановление. Вводим имя пользователя и пароль администратора от старого сервера.
Если будут ошибки, то можно попробовать:
# gitlab-ctl reconfigure
В выдаче будут ошибки и рекомендации по их исправлению. Можно выполнить:
# sudo -u git -H /opt/gitlab/embedded/service/gitlab-shell/bin/create-hooks
# gitlab-rake db:migrate RAILS_ENV=production
# gitlab-ctl reconfigure
# gitlab-ctl restart
Обновление до последней версии
Первый вариант - скачиваем (https://packages.gitlab.com/gitlab/gitlab-ce/) и устанавливаем:
# wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/precise/gitlab-ce_7.12.2~omnibus.1-1_amd64.deb/download
# mv download gitlab-ce_7.12.2~omnibus.1-1_amd64.deb
# dpkg -i gitlab-ce_7.12.2~omnibus.1-1_amd64.deb
Второй вариант - обновляемся из репозитория
# curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
# apt-get install gitlab-ce
Также с версии 7.10 в gitlab есть команда обновления:
# gitlab-ctl upgrade
Дополнительно
Создание саттелитов
root@git:~# gitlab-rake gitlab:satellites:create RAILS_ENV=production
Редактирование timeout
Если ruby ест много CPU, то
root@git:~# vim /etc/gitlab/gitlab.rb
#увеличиваем timeout для unicorn (снимаем комментарий и редактируем строки)
unicorn['worker_timeout'] = 300
unicorn['worker_processes'] = 4
Дополнительно
Создание саттелитов
root@git:~# gitlab-rake gitlab:satellites:create RAILS_ENV=production
Редактирование timeout
Если ruby ест много CPU, то
root@git:~# vim /etc/gitlab/gitlab.rb
#увеличиваем timeout для unicorn (снимаем комментарий и редактируем строки)
unicorn['worker_timeout'] = 300
unicorn['worker_processes'] = 4
root@git:~# gitlab-ctl reconfigure
root@git:~# gitlab-ctl restart
Записки: Перенос Gitlab >>>>> Download Now
ОтветитьУдалить>>>>> Download Full
Записки: Перенос Gitlab >>>>> Download LINK
>>>>> Download Now
Записки: Перенос Gitlab >>>>> Download Full
>>>>> Download LINK