VK Cloud logo
Обновлена 15 апреля 2024 г. в 08:50

Установка и настройка GitLab

GitLab — инструмент для совместной работы над проектами разработки программного обеспечения. Он обеспечивает хранение и управление репозиториями Git, а также контроль версий программного кода. GitLab автоматизирует процессы CI/CD: сборку, тестирование и развертывание ПО. Для запуска и автоматического выполнения задач CI/CD в GitLab используется приложение GitLab Runner.

Далее показан пример установки бесплатных версий GitLab и GitLab Runner на виртуальную машину с ОС Ubuntu 22.04. В качестве инструмента для установки используются платформа контейнеризации Docker и ее плагин Docker Compose.

Подготовительные шаги

  1. Зарегистрируйтесь в VK Cloud.

  2. Создайте сеть network1 с доступом в интернет и подсетью 10.0.0.0/24.

  3. Создайте группу безопасности gitlab и добавьте в нее разрешения на входящий трафик для портов:

    • 80 (HTTP),
    • 443 (HTTPS),
    • 22 (SSH),
    • 35242 (SSH).

    Вместо 35242 можно использовать любой порт, не зарезервированный операционной системой.

  4. Создайте ВМ с операционной системой Ubuntu.

    При выборе параметров ВМ учитывайте требования к оборудованию, необходимые для установки GitLab и GitLab Runner.

    В качестве примера используется следующая конфигурация ВМ:

    • имя: OA-Ubuntu-docker;
    • операционная система: Ubuntu 22.04;
    • сеть: network1 с подсетью 10.0.0.0/24;
    • шаблон конфигурации: STD2-4-12;
    • сетевой HDD-диск: 50 ГБ;
    • публичный IP-адрес: назначен, далее будет использоваться 185.185.185.185;
    • группы безопасности: default, gitlab.
  5. (Опционально) Назначьте виртуальной машине доменное имя, которое будет использоваться для доступа к GitLab, одним из способов:

    • Если у вас есть домен, добавьте в него вашу ВМ.
    • Если домена нет, воспользуйтесь, например, NoIP — одним из сервисов, предоставляющих динамический DNS. Для этого установите на ВМ клиент динамического обновления, подробнее в документации сервиса NoIP.
  6. Подключитесь к ВМ OA-Ubuntu-docker по SSH.

  7. Проверьте состояние файервола операционной системы и отключите его, если он активен:

    sudo ufw statussudo ufw disable
  8. Установите и настройте Docker.

  9. Установите плагин Docker Compose:

    1. Обновите список доступных пакетов Ubuntu и их версий:

      sudo apt-get update
    2. Установите последнюю версию плагина Docker Compose:

      sudo apt-get install docker-compose-plugin
    3. Убедитесь, что плагин установлен правильно, запросив его версию:

      docker compose version

      Ожидаемый результат:

      Docker Compose version vN.N.N

      Здесь N.N.N — номер версии плагина.

1. Измените порт для подключений к ВМ по SSH

GitLab для доступа по SSH по умолчанию использует порт 22, который зарезервирован в системе для подключения к ВМ по SSH. Чтобы не возникало конфликта, измените системный порт SSH на другой.

  1. Откройте для редактирования файл /etc/ssh/sshd_config:

    sudo nano /etc/ssh/sshd_config
  2. Замените строку #Port 22 на Port 35242.

  3. Сохраните файл и завершите работу с редактором, нажав Ctrl + O, а затем Ctrl + X.

  4. Перезапустите сервис sshd:

    sudo systemctl restart sshd
  5. Закройте текущий сеанс подключения к ВМ:

    exit
  6. Подключитесь к ВМ OA-Ubuntu-docker по SSH, используя новый порт:

    ssh -i <путь к ключу> ubuntu@185.185.185.185 -p 35242

    Вместо 185.185.185.185 можно использовать полное доменное имя ВМ, если оно есть.

2. Установите GitLab и GitLab Runner с помощью Docker Compose

  1. Создайте директории для постоянного хранилища GitLab, последовательно выполнив команды:

    sudo mkdir -p /opt/gitlabsudo mkdir -p /opt/gitlab/configsudo mkdir -p /opt/gitlab/logssudo mkdir -p /opt/gitlab/datasudo mkdir -p /opt/gitlab-runnersudo mkdir -p /opt/gitlab-runner/configsudo mkdir -p /opt/gitlab-runner/data
  2. Создайте и откройте для редактирования файл конфигурации для Docker Compose:

    sudo nano docker-compose.yml
  3. Скопируйте в окно редактора следующее содержимое, заменив 185.185.185.185 на внешний IP-адрес ВМ или ее полное доменное имя:

  4. Сохраните файл и завершите работу с редактором, нажав Ctrl + O, а затем Ctrl + X.

  5. Запустите Docker Compose:

    sudo docker compose up -d

3. Проверьте состояние контейнера GitLab

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

sudo docker ps

Вывод при успешной операции:

CONTAINER ID   IMAGE                         COMMAND                  CREATED         STATUS                            PORTS                                                                                                         NAMES1e6cee4fe37a   gitlab/gitlab-ce:latest       "/assets/wrapper"        4 minutes ago   Up 9 seconds (health: starting)   0.0.0.0:22->22/tcp, :::22->22/tcp, 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   gitlab882fc3fb80f5   gitlab/gitlab-runner:latest   "/usr/bin/dumb-init …"   4 minutes ago   Up 4 minutes                                                                                                                                    gitlab-runner

4. (Опционально) Выпустите общедоступный SSL-сертификат для ВМ

Если у ВМ, на которой установлен GitLab, есть доменное имя, вы можете выпустить для GitLab общедоступный SSL-сертификат, например, от компании Let’s Encrypt. Подробнее в официальной документации GitLab.

5. Проверьте работоспособность GitLab

  1. Получите и скопируйте автоматически сгенерированный пароль администратора GitLab:

    sudo cat /opt/gitlab/config/initial_root_password

    Вывод при успешной операции:

    # WARNING: This value is valid only in the following conditions#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).#          2. Password hasn't been changed manually, either via UI or via command line.##          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.Password: /XR7tRH_ХХХХ=# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
  2. В браузере перейдите по адресу https://185.185.185.185.

    Вместо 185.185.185.185 можно использовать полное доменное имя ВМ, если оно есть.

    Откроется страница авторизации входа в GitLab.

  3. Используйте для входа логин администратора (root) и скопированный пароль.

    Откроется панель управления GitLab. Установка завершена, GitLab готов к работе.

Удалите неиспользуемые ресурсы

Развернутые виртуальные ресурсы тарифицируются. Если они вам больше не нужны: