Как начать работать с Managed Service for GitLab
Чтобы начать работу с сервисом:
- Создайте инстанс.
- Настройте рабочее окружение.
- Добавьте SSH-ключи в GitLab.
- Начните работу с репозиторием.
Важно
Если вы начинаете работу с Managed Service for GitLab, чтобы перенести в него проекты из пользовательской инсталляции GitLab, обратитесь к инструкции.
Подробнее об отличиях Managed Service for GitLab от пользовательской инсталляции GitLab Community Edition читайте в разделе Преимущества сервиса перед пользовательской инсталляцией GitLab.
Перед началом работы
-
Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы. -
Если у вас еще нет каталога, создайте его:
-
В консоли управления
в списке слева выберите нужное облако. -
Справа сверху нажмите кнопку
Создать каталог. -
Введите имя каталога. Требования к имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
(Опционально) Введите описание каталога.
-
Выберите опцию Создать сеть по умолчанию. Будет создана сеть с подсетями в каждой зоне доступности. Также в этой сети будет создана группа безопасности по умолчанию, внутри которой весь сетевой трафик разрешен.
-
Нажмите кнопку Создать.
-
-
Убедитесь, что для создания инстанса у вашего аккаунта есть роль vpc.user и роль gitlab.editor или выше.
Создайте инстанс
Важно
После создания инстанса нельзя изменить конфигурацию его ресурсов: тип инстанса, размер диска и зону доступности.
-
В консоли управления выберите каталог, в котором нужно создать инстанс GitLab.
-
Выберите сервис Managed Service for GitLab.
-
Нажмите кнопку Создать инстанс.
-
В блоке Общая информация:
-
Введите имя инстанса. Оно должно быть уникальным в рамках Yandex Cloud.
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
(Опционально) Введите описание инстанса.
-
-
В блоке Конфигурация:
-
Выберите тип инстанса. После создания инстанса изменить его тип можно только через обращение в техническую поддержку
. -
Укажите подсеть, в которой будет размещен инстанс. Технические ограничения Yandex Cloud временно не позволяют выбрать подсеть с диапазоном адресов
192.168.0.0/24
.Для инстанса будет использована группа безопасности по умолчанию для выбранной сети. Если после создания инстанса не получится открыть веб-интерфейс GitLab, создайте отдельную группу безопасности и настройте ее так, чтобы правила разрешали входящий трафик с нужных портов и IP-адресов.
-
Выберите размер диска. После создания инстанса увеличить размер хранилища можно только через обращение в техническую поддержку. Уменьшить размер хранилища нельзя.
-
Укажите доменное имя инстанса — для него будут автоматически созданы нужные DNS-записи в домене
.gitlab.yandexcloud.net
.Доменное имя должно быть уникальным в рамках Yandex Cloud.
- Длина — от 5 до 50 символов.
- Может содержать строчные буквы латинского алфавита, цифры и дефисы.
- Первый и последний символ — не дефис.
-
Задайте срок хранения автоматических резервных копий (в днях).
-
(Опционально) Включите правила ревью кода. Для этого выберите подходящую конфигурацию правил ревью.
Примечание
Выбранная конфигурация влияет на стоимость использования вычислительных ресурсов инстанса.
-
-
В блоке Данные администратора укажите:
- Электронная почта — адрес электронной почты администратора инстанса GitLab. На этот адрес придет письмо со ссылкой для создания пароля.
- Логин — логин администратора.
-
Нажмите кнопку Создать.
-
Дождитесь, когда инстанс будет готов к работе: его статус на панели Managed Service for GitLab сменится на Running. Это может занять некоторое время.
Примечание
В Managed Service for GitLab при создании инстанса автоматически генерируется SSL-сертификат. Дополнительная настройка для работы по протоколу HTTPS не требуется.
Настройте рабочее окружение
-
Активируйте инстанс Managed Service for GitLab:
- Перейдите по ссылке, полученной на электронную почту администратора после создания инстанса.
- Измените пароль администратора.
- Авторизуйтесь с помощью логина и пароля администратора.
-
(Опционально) Создайте группу
, в которой будет размещен проект с репозиторием.Если есть несколько проектов, удобно объединять пользователей в группы. Это позволяет:
- предоставлять права в определенные проекты каждой группе;
- просматривать Issues и мерж-реквесты по группам;
- просматривать аналитику по активности группы.
Подробнее см. в документации GitLab
. -
Создайте пустой проект
, в котором будет размещен репозиторий. -
Создайте пользователей и добавьте их в группу или проект с ролью
Maintainer
илиOwner
.Добавить членов вашей команды в группу или проект можно, только создав для них аккаунты в GitLab.
Добавьте SSH-ключи в GitLab
-
Создайте пару из открытого и закрытого SSH-ключей для аккаунта в GitLab:
Linux/macOSWindows 10/11Windows 7/8-
Откройте терминал.
-
Создайте новый ключ с помощью команды
ssh-keygen
:ssh-keygen -t ed25519 -C "<опциональный_комментарий>"
Вы можете передать в параметре
-C
пустую строку, чтобы не добавлять комментарий, или не указывать параметр-C
вообще — в таком случае будет добавлен комментарий по умолчанию.После выполнения команды вам будет предложено указать имя и путь к файлам с ключами, а также ввести пароль для закрытого ключа. Если задать только имя, пара ключей будет создана в текущей директории. Открытый ключ будет сохранен в файле с расширением
.pub
, закрытый ключ — в файле без расширения.По умолчанию команда предлагает сохранить ключ под именем
id_ed25519
в директории/home/<имя_пользователя>/.ssh
. Если в этой директории уже есть SSH-ключ с именемid_ed25519
, вы можете случайно перезаписать его и потерять доступ к ресурсам, в которых он используется. Поэтому рекомендуется использовать уникальные имена для всех SSH-ключей.
Если у вас еще не установлен OpenSSH
, установите его по инструкции .-
Запустите
cmd.exe
илиpowershell.exe
(предварительно обновите PowerShell). -
Создайте новый ключ с помощью команды
ssh-keygen
:ssh-keygen -t ed25519 -C "<опциональный_комментарий>"
Вы можете передать в параметре
-C
пустую строку, чтобы не добавлять комментарий, или не указывать параметр-C
вообще — в таком случае будет добавлен комментарий по умолчанию.После выполнения команды вам будет предложено указать имя и путь к файлам с ключами, а также ввести пароль для закрытого ключа. Если задать только имя, пара ключей будет создана в текущей директории. Открытый ключ будет сохранен в файле с расширением
.pub
, закрытый ключ — в файле без расширения.По умолчанию команда предлагает сохранить ключ под именем
id_ed25519
в папкуC:\Users\<имя_пользователя>/.ssh
. Если в этой директории уже есть SSH-ключ с именемid_ed25519
, вы можете случайно перезаписать его и потерять доступ к ресурсам, в которых он используется. Поэтому рекомендуется использовать уникальные имена для всех SSH-ключей.
Создайте ключи с помощью приложения PuTTY:
-
Скачайте
и установите PuTTY. -
Убедитесь, что директория, куда вы установили PuTTY, присутствует в
PATH
:- Нажмите правой кнопкой на Мой компьютер. Выберите пункт Свойства.
- В открывшемся окне выберите Дополнительные параметры системы, затем Переменные среды (находится в нижней части окна).
- В разделе Системные переменные найдите
PATH
и нажмите Изменить. - В поле Значение переменной допишите путь к директории, куда вы установили PuTTY.
-
Запустите приложение PuTTYgen.
-
В качестве типа генерируемой пары выберите EdDSA. Нажмите Generate и поводите курсором в поле выше до тех пор, пока не закончится создание ключа.
-
В поле Key passphrase введите надежный пароль. Повторно введите его в поле ниже.
-
Нажмите кнопку Save private key и сохраните закрытый ключ. Никому не сообщайте ключевую фразу от него.
-
Нажмите кнопку Save public key и сохраните открытый ключ в файле
<имя_ключа>.pub
.
-
-
Запустите SSH-агент:
Linux/MacOSWindows-
Выполните команду:
ssh-agent -s
-
Чтобы SSH-агент запускался при входе в систему, в файл
~/.profile
добавьте команду запуска:ssh-agent -s
- Откройте контекстное меню кнопки Пуск.
- Выберите пункт Управление компьютером.
- Перейдите в раздел Службы и приложения → Службы.
- Откройте контекстное меню службы SSH agent и выберите пункт Свойства.
- На вкладке Главное измените тип запуска с Выключена на Автоматически.
- Нажмите кнопку OK и запустите службу.
-
-
Добавьте ключ в SSH-агент:
ssh-add <путь_к_закрытому_ключу>
-
Присвойте публичный SSH-ключ
аккаунту в GitLab. -
Проверьте, что вы можете подключиться к GitLab:
ssh -T git@<домен_инстанса_GitLab>
Пример:
ssh -T git@example.gitlab.yandexcloud.net
Если вы подключаетесь в первый раз, отобразится подобное сообщение:
The authenticity of host 'gitlab.example.com (35.231.145.151)' can't be established. ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'gitlab.example.com' (ECDSA) to the list of known hosts.
Введите
yes
и нажмите Enter.Если вы подключаетесь не в первый раз, в случае успеха появится сообщение:
Welcome to GitLab, @<логин>!
В случае ошибки запустите подключение в режиме Verbose, чтобы получить логи:
ssh -Tvvv git@<домен_инстанса_GitLab>
Попросите каждого участника вашей группы или проекта создать пару SSH-ключей таким образом и присвоить публичный ключ своему аккаунту в GitLab.
Начните работу с репозиторием
Чтобы начать работу с локальной копией вашего репозитория от имени созданного аккаунта, выполните следующие действия на локальном компьютере:
-
Клонируйте репозиторий
по протоколу SSH.Что делать в случае ошибки
Permission denied (publickey)
При клонировании может возникнуть ошибка:
Cloning into '<название_проекта>'... git@<домен_инстанса_GitLab>: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
Если вы получили такую ошибку:
-
Создайте и откройте конфигурационный файл для настройки SSH-ключей:
nano ~/.ssh/config
-
Добавьте в него содержимое:
Host <домен_инстанса_GitLab> IdentityFile <путь_к_закрытому_ключу>
В параметре
IdentityFile
укажите абсолютный путь к закрытому ключу, который вы создали для проекта GitLab. -
Сохраните файл.
-
Снова склонируйте репозиторий по SSH.
-
-
Перейдите в каталог с репозиторием:
cd <имя_проекта>
-
Внесите изменения в файлы репозитория.
-
Проиндексируйте и примените изменения
в локальном репозитории:git add . && git commit -m "<название_коммита>"
-
Отправьте изменения в удаленный репозиторий:
git push origin main