GitLab: миграция на новое железо

В связи с резко возвросшей активностью в git было решено мигрировать на более мощное железо и заодно минимизировать энергопотребление.
В ходе миграции не возникло серьезных проблем.

http://it.icmp.ru/postimages/1181/7623/thumb/backup_hrz.png


Конфигурация железа
Форм-фактор: mini-itx
Плата: H81I-PLUS
Процессор: Core i5-4440
Память: KHX1600C10D3/8G
Накопитель №1: KINGSTON SV300S3
Накопитель №2: ST1000DX001-1CM1
Питание: 120W
Дистрибутив: CentOS release 6.6 (ранее разворачивал на centos7 но сырой еще дистрибутив)
Подготовка
Устанавливаем gitlab на новом железе и проверяем совпадают ли версии gitlab выполнив на обоих железяках: rpm -qa|grep gitlab.
Если не совпадают, то обновляем версии до актуальной.
На старом железе делаем резервную копию /etc/gitlab поскольку понадобятся как конфигурационный файл так и gitlab-secret.json: cd /etc && tar cvf gitlab.tar gitlab.
Далее создаем резервные копии репозиториев и базы данных: gitlab-rake gitlab:backup:create.
Заливаем все на новое железо через ssh: scp /etc/gitlab.tar /opt/backups/<backup_id>_gitlab_backup.tar <username>@<git-ip>:.
Переносим ssl сертификаты (если выписывали в startssl то можно захуячить на новое железо без последствий иначе придется генерировать новый): cd /etc/ssl && tar cf gitlab-ssl.tar gitlab && scp gitlab-ssl.tar <username>@<git-ip>:.

Развертка
Логинимся на новое железо и раскидываем файлы по директориям: mkdir /opt/{backups,git-data} && cd /home/<username> && tar xvvf gitlab.tar && mv -f gitab/gitlab* /etc/gitlab/ && mv <backup_id>_gitlab_backup.tar /opt/backups && chown root:root /etc/gitlab -R.
Устанавливаем сертификаты: cd /home/<username> && rm-rf gitlab && tar xvvf gitlab-ssl && mv gitlab /etc/ssl && chown root:root /etc/ssl/gitlab -R.
Внесем исправление в скрипт проверки postgresql, чтобы не запиналось на sysctl.
Файл: /opt/gitlab/embedded/cookbooks/gitlab/recipes/postgresql.rb.
После строки 77 owner "root" добавляем следующие строки:
execute "sysctl" do
command "/sbin/sysctl -e -p /etc/sysctl.conf"
action :nothing
end

Запускаем настройку gitlab: gitlab-ctl reconfigure.
Восстанавливаем резервную копию и проверяем нет ли проблем:
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore BACKUP=<backup_id>
chmod -R ug+rwX,o-rwx /opt/git-data/repositories
chmod -R ug-s /opt/git-data/repositories
find /opt/git-data/repositories -type d -print0|xargs -0 chmod g+s
gitlab-ctl start
gitlab-rake gitlab:satellites:create
gitlab-rake gitlab:check SANITIZE=true

Добавляем задачу резервного копирования в планировщик задач:
crontab -e
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1


Настройка Redis
Чтобы избежать потери данных при большом количестве занятой памяти добавляем в /etc/sysctl.conf параметр vm.overcommit_memory = 1 и применяем изменения командой sysctl -p.
Чтобы избежать больших задержек при работе с памятью выполняем echo never > /sys/kernel/mm/transparent_hugepage/enabled и вписываем в /etc/rc.local чтобы команда срабатывала при запуске ОС.

Теперь переписываем dns; лезем в веб-интерфейс и проверяем все ли на месте.

P.S.: скрипт инициализации обнаружен в /etc/init/giltab-runsvdir
  • просмотров: ~1927
  • рейтинг: ?

Комментарии (0)

Вы - anonymous, войти ?

можно использовать bbcode-теги
[b]жирный текст[/b]
[i]курсив[/i]
[u]underline[/u]
[s]зачеркнутый текст[/s]
[size=20px]размер шрифта[/size]
всякие изменения текста
[left][/left]
[right][/right]
[center][/center]
позиционирование элементов: картинки, текст и т.д
[url][/url]
[email][/email]
внутри тега [url] помещайте ссылки, а внутри [email] адрес электронной почты;
так же [url] можно использовать в виде:
[url=http://example.com]пример[/url],
[url=http://test.ru][img]http://flickr.com/givemeimg.png[/img][/url]
[code][/code]
[quote][/quote]
внутри тега [code] можно помещать программный код (подстветка попытается включиться автоматически); для выделения цитат используйте [quote]
также можно напрямую указать язык [code=cpp]int i;[/code]
[list][/list]
создаем списки, каждый элемент пишется после [*].

Можно указывать маркер - [list=marker].
возможные маркеры 1(decimal), i(lower-roman), I(upper-roman), a(lower-alpha), A(upper-alpha). Примеры:

[list][*]1 элемент[*]2 элемент[*]3 элемент[/list]
[list=1][*]1 элемент[*]2 элемент[*]3 элемент[/list]
[list=A][*]1 элемент[*]2 элемент[*]3 элемент[/list]
[table][/table]
оформляем таблицу, используя внутренние теги [tr] и [td].
[tr] - строка, [td] - поле в строке,
[table=100%] - можно задавать ширину в процентах, по-умолчанию ширина 100%
[td=2] - можно задавать сколько столбцов входит в это поле. Пример:

[table=50%][tr][td]столбец 1[/td][td]столбец 2[/td][/tr][tr][td]значение 1[/td][td]значение 2[/td][/tr][tr][td=2]сразу 2 столбца[/td][/tr][/table]
[img][/img]
тег для вставки фото или картинок, мы любим картинки. Примеры использования:

[img]http://ya.ru/logo.png[/img],
[img=100x100px]http://ya.ru/logo.png[/img]
[img=fullimg.url]thumbimg.url[/img],
Пожалуйста загружайте картинки на наш сайт, либо вставляйте с бекбоновских ресурсов.
[video][/video]
Проигрывает видео, внутрь вставляем ссылки на видео, поддерживается Play.Ykt.Ru(нужно вставить ссылку на страницу с видео) и tv.ykt.ru(нужно вставить ссылку на адрес файла)