Перейти к основному содержимому

GitLab

Последнее изменение:

GitLab — платформа с открытым исходным кодом для хранения репозиториев проектов и автоматизации CI/CD с помощью встроенных пайплайнов и системы отслеживания ошибок. GitLab поддерживает полный цикл CI/CD — непрерывную интеграцию, сборку, тестирование и развертывание кода.

Можно создать облачный сервер с готовым приложением GitLab. В России приложение работает на облачном сервере c настроенной операционной системой SelectOS 1.1. В других странах — Ubuntu 22.04.

Создать облачный сервер с GitLab

к сведению

Облачный сервер с GitLab будет доступен по SSH через порт 22022.

Для работы GitLab облачный сервер должен быть доступен из интернета. Для этого при создании сервера создайте приватную подсеть и подключите публичный IP-адрес. Для настройки GitLab также при создании сервера укажите user data — пользовательские параметры конфигурации операционной системы. Вы можете задать один из двух набор параметров:

После создания сервера с GitLab автоматически выпустится бесплатный TLS-сертификат от Let’s Encrypt® для домена, который вы укажете. Для выпуска сертификата нужно добавить A-запись для домена и указать в значении записи публичный IP-адрес сервера. Домен можно добавить в DNS-хостинг Selectel (actual).

  1. Создайте публичный IP-адрес.

  2. Добавьте A-запись для домена.

  3. Создайте облачный сервер с GitLab.

1. Создать публичный IP-адрес

Создайте публичный IP-адрес, чтобы облачный сервер с GitLab был доступен из интернета.

Используйте подраздел Создать публичный IP-адрес инструкции Публичные IP-адреса.

2. Добавить А-запись для домена⁠

Добавьте ресурсную запись, чтобы получить доступ к GitLab по домену.

Укажите:

3. Создать облачный сервер с GitLab

  1. В панели управления в верхнем меню нажмите Продукты и выберите Облачные серверы.

  2. Нажмите Создать сервер.

  3. Заполните блоки:

  4. Проверьте цену облачного сервера.

  5. Нажмите Создать.

Имя и расположение

  1. Введите имя сервера. Оно будет установлено как имя хоста в операционной системе.

  2. Выберите регион и сегмент пула, в котором будет создан сервер. От сегмента пула зависит список доступных конфигураций сервера и стоимость ресурсов. После создания сервера изменить сегмент пула нельзя.

Источник

  1. Откройте вкладку Приложения.

  2. Выберите Cloud GitLab.

  3. Опционально: если вам нужна другая актуальная или архивная версия приложения, в поле Версия выберите нужную версию.

Конфигурация

Выберите конфигурацию от 4 vCPU, RAM от 8 ГБ и размером загрузочного диска от 20 ГБ для 500 пользователей GitLab и меньше. Для сервера доступны два типа конфигураций:

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

  1. Нажмите Фиксированная.

  2. Откройте вкладку с нужной линейкой.

  3. Выберите конфигурацию.

  4. Если в выбранной конфигурации доступны и локальные, и сетевые диски, выберите диск, который будет использоваться в качестве загрузочного:

    • локальный диск — отметьте чекбокс Локальный SSD NVMe диск. Сервер с локальным диском можно создать только из образов и приложений;
    • сетевой диск — не отмечайте чекбокс.

    Объем оперативной памяти, который выделяется серверу, может быть меньше указанного в конфигурации — ядро операционной системы резервирует часть оперативной памяти в зависимости от версии ядра и дистрибутива. Выделенный объем на сервере можно проверить с помощью команды sudo dmesg | grep Memory.

Диски

  1. Если при настройке конфигурации вы не отметили чекбокс Локальный SSD NVMe диск, в качестве загрузочного диска сервера будет использоваться первый указанный сетевой диск. Чтобы настроить его:

    1.1. Выберите тип сетевого загрузочного диска.

    1.2. Укажите размер сетевого загрузочного диска в ГБ или ТБ. Учитывайте лимиты сетевых дисков на максимальный размер.

    1.3. Если вы выбрали тип диска Универсальный v2, укажите общее количество операций чтения и записи в IOPS. После создания диска вы можете изменить количество IOPS — уменьшить или увеличить. Количество изменений IOPS не ограничено.

  2. Добавьте дополнительный сетевой диск сервера. Дополнительный диск необходим для запуска GitLab и используется для хранения основных данных, например баз данных или репозиториев.:

    2.1. Нажмите Добавить.

    2.2. Выберите тип сетевого диска.

    2.3. Укажите размер сетевого диска от 30 ГБ. Учитывайте лимиты сетевых дисков на максимальный размер.

    2.4. Если вы выбрали тип диска Универсальный v2, укажите общее количество операций чтения и записи в IOPS. После создания диска вы можете изменить количество IOPS — уменьшить или увеличить. Количество изменений IOPS не ограничено.

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

Сеть

Сервер может быть добавлен в новую приватную подсеть или в уже существующую.

Приватная — подсеть без доступа из интернета или с одним статическим публичным IP-адресом. Публичный IP-адрес подключается к серверу, который будет доступен из интернета.

  1. Нажмите Приватная подсеть.

  2. В поле Публичный IP-адрес для доступа из интернета выберите публичный IP-адрес, который вы создали раннее или создайте новый.

  3. Разверните блок с настройками приватной подсети.

  4. В поле Подсеть выберите существующую подсеть.

  5. В поле Приватный IP укажите приватный IP-адрес сервера. Публичный IP-адрес будет автоматически подключен к приватному адресу.

Безопасность

Выберите группы безопасности для фильтрации трафика на портах сервера. Без групп безопасности трафик будет запрещен. Если блок отсутствует, в сети сервера выключена фильтрация трафика (port security). С выключенной фильтрацией трафика весь трафик будет разрешен.

Доступ

  1. Разместите на сервере SSH-ключ для проекта для безопасного подключения:

    1.1. Если SSH-ключ для проекта не добавлен в облачную платформу, нажмите Добавить SSH-ключ, введите имя ключа, вставьте публичный ключ в формате OpenSSH и нажмите Добавить.

    1.2. Если SSH-ключ для проекта добавлен в облачную платформу, в поле SSH-ключ выберите существующий ключ. SSH-ключ доступен только в том пуле, в котором он размещен.

  2. Опционально: в поле Пароль для «root»:

    2.1. Скопируйте пароль пользователя root — пользователя с неограниченными правами на все действия над системой.

    2.2. Сохраните пароль в безопасном месте и не передавайте в открытом виде.

Дополнительные настройки

  1. Если вы планируете создать несколько серверов и хотите повысить отказоустойчивость инфраструктуры, добавьте сервер в группу размещения:

    1.1. Чтобы создать новую группу, в поле Группа размещения нажмите Создать.

    1.2. Выберите Новая группа и введите имя группы.

    1.3. Выберите политику размещения на разных хостах:

    • желательно — soft-anti-affinity. Система постарается разместить серверы на разных хостах. Если при создании сервера не будет подходящего хоста, он будет создан на том же хосте;
    • обязательно — anti-affinity. Серверы в группе обязательно располагаются на разных хостах. Если при создании сервера не будет подходящего хоста, сервер не будет создан.

    1.4. Если группа создана, в поле Группа размещения выберите группу размещения.

  2. Чтобы добавить дополнительную информацию или фильтровать серверы в списке, добавьте теги сервера. Автоматически добавляются теги операционной системы и конфигурации. Чтобы добавить новый тег, в поле Теги введите тег.

  3. Чтобы добавить скрипт, который выполнится с помощью агента cloud-init при первом запуске операционной системы, в блоке Автоматизация в поле User data:

    • откройте вкладку Текст и вставьте скрипт текстом;
    • или откройте вкладку Файл и загрузите файл со скриптом.
#cloud-config

write_files:
- path: "/opt/gomplate/values/user-values.yaml"
permissions: "0644"
content: |
gitlabDomain: "<example.com>"
gitlabRootEmail: "<root@example.com>"
gitlabRootPassword: "<administrator_password>"
gitlabPostgresDB: "<database_name>"
gitlabPostgresUser: "<database_user_name>"
gitlabPostgresPassword: "<database_user_password>"
useExternalDB: false

Укажите:

  • <example.com> — домен для доступа к GitLab, который вы добавили ранее;
  • <root@example.com> — электронная почта администратора GitLab для создания аккаунта и получения уведомлений Let’s Encrypt®;
  • <administrator_password> — пароль администратора GitLab. Должен быть более восьми символов;
  • <database_name> — имя базы данных PostgreSQL;
  • <database_user_name> — имя пользователя базы данных PostgreSQL;
  • <database_user_password> — пароль пользователя базы данных PostgreSQL;
  • useExternalDB: false — параметр для использования базы данных на сервере.