Как обновить gitlab ubuntu
Рассмотрим процесс установки и настройки веб-инструмента жизненного цикла DevOps на Linux Ubuntu Server на примере версий 18.04 и 20.04. За основу взята официальная инструкция с сайта GitLab. В нашей инструкции приведен пример установки как платной. так и бесплатной версий программы.
Подготовка сервера
В качестве предварительный настроек, мы обновим список пакетов в репозиториях, настроим правильное время и откроем порты в брандмауэре.
1. Обновление списков пакетов
При желании обновить установленные пакеты, также можно выполнить:
2. Время
Установим часовой пояс:
timedatectl set-timezone Europe/Moscow
* данная команда задаст настройки для московского времени. Все файлы с временными зонами находятся в каталоге /usr/share/zoneinfo.
Для автоматической синхронизации времени ставим пакет:
apt-get install chrony
И разрешаем автозапуск сервиса:
systemctl enable chrony
3. Настройка брандмауэра
По умолчанию, в Ubuntu брандмауэр настроен на то, чтобы принимать любые пакеты. Но если у нас он настроен на блокировку, нужно добавить порты 80 и 443.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
И чтобы сохранить правила, устанавливаем iptables-persistent:
apt-get install iptables-persistent
. и выполняем команду:
Установка GitLab
Установку выполним в два шага — установка необходимых компонентов и, собственно, установка GitLab.
1. Необходимые компоненты
apt-get install curl openssh-server ca-certificates
Для отправки уведомлений, установим также postfix:
apt-get install postfix
При запросе типа конфигурации, выбираем Internet Site (если уведомления должны отправляться наружу) или Local only (уведомления в пределах сервера):
* при получении других запросов во время установки postfix можно ответить по умолчанию, нажимая Enter.
2. Установка GitLab
а) для платной версии:
б) для бесплатной:
После установки репозитория, устанавливаем сам GitLab.
а) платную версию:
apt-get install gitlab-ee
б) бесплатную:
apt-get install gitlab-ce
Если установка прошла успешно, мы должны увидеть:
It looks like GitLab has not been configured yet; skipping the upgrade script.
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Thank you for installing GitLab!
3. Конфигурируем веб-адрес
Для запуска и корректной работы портала мы должны задать external_url. Для этого открываем файл:
Нам нужно только изменить параметр external_url:
Данная операция займет какое-то время.
После система попросит ввести логин и пароль — вводим логин root и пароль, который только-что придумали.
Настройка GitLab
Приведем некоторые примеры настроек, которые могут оказаться полезными.
Русский интерфейс
По умолчанию, портал устанавливается с интерфейсом на английском. Для смены языка, кликаем по иконке в правом верхнем углу и выбираем Settings:
В меню слева нажимаем по Preferences:
В подразделе Localization выбираем нужный нам язык и первый день недели:
Сохранияем настройки и перезапускаем страницу для применения нового языка.
Создание репозитория и подключение к нему
Попробуем создать проект и подключиться к нему из Linux. Также для теста мы создадим файл и закинем его в наш репозиторий.
В веб-интерфейсе GitLab создаем новый проект:
Задаем имя проекта, оставляем или редактируем URL, выбираем уровень доступа. После кликаем по кнопке Создать проект:
Для примера попробуем подключиться с компьютера Linux к нашему репозиторию и закинуть на него тестовый файл.
Установить Git на Ubuntu очень легко. Git доступен в главном репозитории Ubuntu и вы можете его установить с помощью терминала:
Достаточно легко, не так ли?
Существует лишь небольшая проблема (которая может и не быть проблемой вовсе), и это версия Git'а, которую он устанавливает.
В системе LTS стабильность программного обеспечения имеет первостепенное значение, поэтому Ubuntu 18.04 и другие дистрибутивы часто предоставляют более старую, но стабильную версию программного обеспечения, которая хорошо протестирована с выпуском дистрибутива.
Поэтому, когда вы проверите версию Git'а, вы увидите, что на самом деле установлена версия, которая старше, чем текущая версия Git'а, доступная на сайте Git-проекта:
На момент написания данной статьи версия, доступная на сайте, была 2.25. Так как же тогда установить последний Git на Ubuntu?
Установка последней версии Git в дистрибутивах Linux, основанных на Ubuntu
Один из способов - установка из исходных текстов. Этот крутой старый метод - не для всех. К счастью, есть PPA, доступный от команды Ubuntu Git Maintainers, который вы можете использовать, чтобы легко установить последнюю стабильную версию Git.
Даже если вы ранее устанавливали Git с помощью apt, он будет обновлен до последней стабильной версии.
Прелесть использования PPA заключается в том, что если будет выпущена новая стабильная версия Git'а, то вы получите её с обновлениями системы. Просто обновите Ubuntu, чтобы получить последнюю стабильную версию Git'а.
Настройка конфигурации Git (для разработчиков)
Если вы установили Git для разработки, то вскоре вы начнете клонировать репозиторий, вносить изменения и коммитить их.
Если вы попытаетесь закоммитить свой код, вы можете увидеть ошибку 'Пожалуйста, скажите мне, кто вы', подобную этой:
Она возникает потому, что вы не настроили в Git'е свои персональные данные, которые являются обязательными.
Как уже подсказывает ошибка, вы можете настроить глобальную конфигурацию Git'а таким образом:
С помощью этой команды вы можете проверить конфигурацию Git'а:
Команда должна показывать такой выход:
Эта конфигурация хранится в файле
/.gitconfig. Вы также можете изменить её вручную.
В заключение.
Я надеюсь, что это краткое руководство помогло вам установить последнюю версию Git на Ubuntu. С PPA вы легко получите последнюю версию Git'а.
Если у вас есть какие-либо вопросы или предложения, пожалуйста, не стесняйтесь задавать их в разделе комментариев. Быстрые реакции и "благодарность" также приветствуется :)
Ну и после него, само собой, менеджер пакетов сказал, что обновление не удалось. Методом поверхностного гуглежа выяснилось, проблема кроется в том, что обновление прилетело с мажорной версией GitLab, а не в пределах одной глобальной версии (с 13 до 14), а это требует некоторых плясок с бубном. Давайте спляшем вместе!
Бэкап текущей версии
Делаем резервную копию данных
Сделать резервную копию можно средствами самого Gitlab, для этого нужно воспользоваться командой gitlab-backup create . В результате выполнения будет создан файл резервной копии в каталоге /var/opt/gitlab/backups с именем типа такого 1626962136_2021_07_22_13.11.3-ee_gitlab_backup.tar .
Далее следует сделать резервную копию каталога настроек и прочих системных плюшек. Сделать это можно также средствами самого GitLab, выполнив команду gitlab-ctl backup-etc , в результате выполнения которой в каталоге /etc/gitlab/config_backup будет создан файл с именем наподобие gitlab_config_1626966190_2021_07_22.tar .
Копируем бэкап на локальную машину
Копируем созданные бэкапы на свою машину (перед этим нужно перейти в каталог, куда будем копировать бэкап):
Для тех, кто в танке: сначала указываем то, что копируем, потом то, куда. Также здесь работает автокомплит, после : можно нажимать Tab, и все будет работать как и в локальном терминале, за исключением того, что дополняться будут пути с удаленной машины.
Обновление GitLab
Для начала нужно узнать, какая версия установлена на вашем сервере. Посмотреть это можно по пути your.gitlab/help , там прямо вверху будет написана версия.
После этого идем сюда и смотрим порядок обновления до последней версии с вашей. В моем случае это было так: 13.11.3 -> 13.12.8 -> 14.0.6 -> 14.1.0 . Записываем порядок, чтобы не лазить постоянно в документацию.
Далее смотрим список доступных пакетов в репозитории. У меня на сервере Ubuntu Server, поэтому я делал это командой apt-cache showpkg gitlab-ee | grep 13.12 . В результате менеджер пакетов покажет все доступные варианты с нужной версей:
После завершение последней итерации обновлений рекомендую обновить PostgreSQL, что можно сделать также средствами самого GitLab: gitlab-ctl pg-upgrade .
Обновление конфигурации и перезапуск
После всех этих процедур рекомендую обновить конфигурацию командой gitlab-ctl reconfigure , а затем перезапустить командой gitlab-ctl restart .
Имеется GitLab версии 7.4.1, установленную из исходников. Необходимо обновить его до актуальной версии с переносом всех данных.
План действия следующий:
- Установить на новый сервер GitLab той же версии, что стоит на старом сервере
- На старом сервере сделать бэкап данных средствами GitLab
- Развернуть бэкап на новом сервере
- Обновить GitLab до актуальной версии
Установить на новый сервер GitLab той же версии, что стоит на старом сервере
Добавляем репозиторий EPEL и обновляемся
На новом сервере ставим gitlab той же версии, что и на старом сервере
Скачиваем дистрибутив и устанавливаем его
Добавляем правила в firewall
Редактируем файл gitlab.rb для последующей генерации конфига gitlab
Пример файла gitlab.rb, в котором подключена LDAP-авторизация и настроено подключение к почтовому серверу
Авторизуемся, меняем пароль
На старом сервере сделать бэкап данных средствами GitLab
У меня не делался бэкап, т.к. скрипту не нравилась версия psql, делаем линк на версию посвежее, которая была уже установлена на сервере
- Файлы бэкапа на старом сервере: /home/git/gitlab/tmp/backups
Переносим файл бэкапа со старого сервера на новый
- Файлы бэкапа на новом сервере: /var/opt/gitlab/backups
Развернуть бэкап на новом сервере
Развертывание резервной копии на новом сервере
В процессе развертывания произошла ошибка. Из бэкапа не развернулись пустые проекты, по-этому вначале их надо удалить, потом делать бэкап.
Так же можно перенести вручную все то, что не перенеслось после:
Меняем владельца директории
Пробуем сделать бэкап на новом сервере и развернуть его
Обновить GitLab до актуальной версии
Т.к. у нас версия довольно старая, обновляться будем по следующей цепочке:
Скачиваем дистрибутив версии 7.14.2
Открываем доступ к GitLab снаружи
Т.к. у нас ограниченное количество внешних IP-адресов, и т.к. наш GitLab крутится на отдельном виртуальном сервере, настраиваем проброс портов, что бы у нас был доступ к GitLab снаружи
На сервере, где прописан внешний IP, надо перенастроить ssh, iptables, apache
Читайте также: