Установка веб-инструмента GitLab на Linux Ubuntu Server

Рассмотрим процесс установки и настройки веб-инструмента жизненного цикла DevOps на Linux Ubuntu Server на примере версий 18.04 и 20.04. За основу взята официальная инструкция с сайта GitLab. В нашей инструкции приведен пример установки как платной. так и бесплатной версий программы.







Подготовка сервера




В качестве предварительный настроек, мы обновим список пакетов в репозиториях, настроим правильное время и откроем порты в брандмауэре.




1. Обновление списков пакетов




Выполняем команду:




apt-get update




При желании обновить установленные пакеты, также можно выполнить:




apt-get upgrade




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




… и выполняем команду: 




netfilter-persistent save




Установка GitLab




Установку выполним в два шага — установка необходимых компонентов и, собственно, установка GitLab.




1. Необходимые компоненты




apt-get install curl openssh-server ca-certificates




Для отправки уведомлений, установим также postfix:




apt-get install postfix




При запросе типа конфигурации, выбираем Internet Site (если уведомления должны отправляться наружу) или Local only (уведомления в пределах сервера):







* при получении других запросов во время установки postfix можно ответить по умолчанию, нажимая Enter.




2. Установка GitLab




Установим репозиторий.




а) для платной версии:




curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash




б) для бесплатной:




curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash




После установки репозитория, устанавливаем сам 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. Для этого открываем файл:




vi /etc/gitlab/gitlab.rb




Нам нужно только изменить параметр external_url:




external_url 'http://gitlab.dmosk.ru'




* данная настройка говорит, что наш веб-инструмент будет отвечать на запросы, которые пришли на узел gitlab.dmosk.ru — это значит, что данное имя должно быть зарегистрирована в DNS или прописано в локальный файл hosts.




Выполняем конфигурирование:




gitlab-ctl reconfigure




Данная операция займет какое-то время.




Вход в веб-интерфейс




Открываем браузер и вводим наш адрес, который мы указали в настройках в опции external_url — в данном примере, http://gitlab.dmosk.ru. Мы должны увидеть страницу авторизации, на которой нас запросят сменить пароль для администратора. Вводим его дважды:







После система попросит ввести логин и пароль — вводим логин root и пароль, который только-что придумали.




Настройка GitLab




Приведем некоторые примеры настроек, которые могут оказаться полезными.




Русский интерфейс




По умолчанию, портал устанавливается с интерфейсом на английском. Для смены языка, кликаем по иконке в правом верхнем углу и выбираем Settings:







В меню слева нажимаем по Preferences:







В подразделе Localization выбираем нужный нам язык и первый день недели:







Сохранияем настройки и перезапускаем страницу для применения нового языка.




Создание репозитория и подключение к нему




Попробуем создать проект и подключиться к нему из Linux. Также для теста мы создадим файл и закинем его в наш репозиторий.




В веб-интерфейсе GitLab создаем новый проект:







Задаем имя проекта, оставляем или редактируем URL, выбираем уровень доступа. После кликаем по кнопке Создать проект:







* в данном примере мы создаем проект с названием Test, url до него будет http://gitlab.dmosk.ru/root/test. Уровень доступа мы задаем «Приватный» — доступ к репозиторию будет только у авторизованного пользователя.




Для примера попробуем подключиться с компьютера Linux к нашему репозиторию и закинуть на него тестовый файл.




Для начала установим git на компьютер с Linux:




а) Если используем CentOS / Red Hat:




yum install git-core




б) Если используем Ubuntu / Debian:




apt-get install git




Создаем папку для тестового проекта:




mkdir -p /projects/test




Переходим в нее:




cd /projects/test




Создаем репозиторий:




git init




Создаем файл:




vi testfile.txt




Добавляем в него все файлы (то есть, наш единственный файл):




git add .




Делаем коммит:




git commit -m "Очередное изменение проекта" -a




Подключаемся к созданному репозиторию:




git remote add origin http://gitlab.dmosk.ru/root/test.git




Заливаем в него закоммиченный файл:




git push origin master




Переходим на веб-страницу нашего проекта — мы должны увидеть наш файл:







Настройка SSL




В данном примере мы сконфигурируем наш сервер для возможности работы по https и получения сертификата от Let’s Encrypt. Все настройки выполняются в конфигурационном файле:




vi /etc/gitlab/gitlab.rb




Меняем настройку:




external_url 'http://gitlab.dmosk.ru'




* где gitlab.dmosk.ru — url для нашего портала, который мы задали при первом конфигурировании.




на:




external_url 'https://gitlab.dmosk.ru'




* мы просто добавили s к http.




Также настраиваем получение сертификата от Let’s Encrypt:




letsencrypt['enable'] = true




И задаем опции для автоматического обновления сертификата:




letsencrypt['auto_renew'] = true

letsencrypt['auto_renew_hour'] = "22"

letsencrypt['auto_renew_minute'] = "50"

letsencrypt['auto_renew_day_of_month'] = "*/7"




* где:




  • auto_renew — разрешает автоматическое обновление.
  • auto_renew_hour — время в часах, когда нужно запускать задание на обновление сертификата.
  • auto_renew_minute — время в минутах, когда нужно запускать задание на обновление сертификата.
  • auto_renew_day_of_month — день месяца. В данном примере, раз в 7 дней.




Применяем новую конфигурацию:




gitlab-ctl reconfigure




В процессе переконфигурирования мы можем получить ошибку получения сертификата. Пробуем запустить команду:




gitlab-ctl renew-le-certs




Сброс пароля root




 Если мы забыли пароль для пользователя root, можно его сбросить через командную строку.




Подключаемся к консоли управления gitlab с помощью команды:




gitlab-rails console -e production




Создаем переменную, которая будет вести на ссылку с учетной записью root (идентификатор 1):




user = User.where(id: 1).first




Задаем пароль для пользователя root дважды:




user.password = 'password123'

user.password_confirmation = 'password123'




где password123 — созданный для пользователя root новый пароль.




Созраняем изменения для пользователя:




user.save!




Готово.




Источник: https://www.dmosk.ru/miniinstruktions.php?mini=gitlab-ubuntu



2021-06-15T22:56:12
Software