[Документация Yandex Cloud](../../../index.md) > [Yandex Managed Service for GitLab](../../index.md) > [Пошаговые инструкции](../index.md) > Создание и активация инстанса

# Создание и активация инстанса Yandex Managed Service for GitLab

## Создать инстанс Managed Service for GitLab {#create}

Для создания инстанса Managed Service for GitLab нужна роль [vpc.user](../../../vpc/security/index.md#vpc-user) и роль [gitlab.editor или выше](../../security/index.md#roles-list). Как назначить роль, описано в [документации Identity and Access Management](../../../iam/operations/roles/grant.md).

{% note warning %}

После создания инстанса нельзя изменить его сетевую конфигурацию: зону доступности и подсеть.

{% endnote %}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В консоли управления выберите [каталог](../../../resource-manager/concepts/resources-hierarchy.md#folder), в котором нужно создать [инстанс GitLab](../../concepts/index.md#instance).
  1. Перейдите в сервис **Managed Service for&nbsp;GitLab**.
  1. Нажмите кнопку **Создать инстанс**.
  1. В верхней части страницы:
  
     1. Введите имя инстанса. Оно должно быть уникальным в рамках Yandex Cloud.
  
        * длина — от 3 до 63 символов;
        * может содержать строчные буквы латинского алфавита, цифры и дефисы;
        * первый символ — буква, последний — не дефис.
  
     1. (Опционально) Введите описание инстанса.
     1. (Опционально) Добавьте [метки](../../../resource-manager/concepts/labels.md) для разделения инстансов на логические группы.
     1. (Опционально) Установите защиту инстанса от случайного удаления пользователем.
  
  1. В блоке **Конфигурация**:
  
     1. Выберите [тип инстанса](../../concepts/index.md#config). После создания инстанса можно [изменить его тип](instance-update.md) на более производительный.
     1. Укажите [зону доступности](../../../overview/concepts/geo-scope.md). После создания инстанса изменить его зону доступности невозможно.
     1. Укажите [подсеть](../../../vpc/concepts/network.md#subnet), в которой будет размещен инстанс. Технические ограничения Yandex Cloud временно не позволяют выбрать подсеть с диапазоном адресов `192.168.0.0/24`.
     1. Выберите [группу безопасности](../../../vpc/concepts/security-groups.md) или создайте новую:
  
        1. Нажмите кнопку **Создать группу**.
        1. Введите имя и описание группы безопасности. Правила для группы безопасности вы сможете добавить позже в сервисе **Virtual Private Cloud**.
        1. Нажмите кнопку **Создать**.
  
        Если не задать отдельную группу безопасности, будет использована [группа безопасности по умолчанию](../../../vpc/concepts/security-groups.md#default-security-group), созданная в сети инстанса.
        
        [Настройте](../configure-security-group.md) группу безопасности так, чтобы правила разрешали входящий и исходящий трафик с нужных портов и IP-адресов.
              
        {% note warning %}
        
        От настройки группы безопасности зависит работоспособность и доступность инстанса Managed Service for GitLab.
        
        {% endnote %}
        
        Если у вас возникли проблемы с настройкой группы безопасности, обратитесь в [техническую поддержку](https://kz.center.yandex.cloud/support).
  
     1. Выберите размер [диска](../../../compute/concepts/disk.md). После создания инстанса размер его диска [можно увеличить](instance-update.md).
     1. Укажите [доменное имя инстанса](../../../compute/concepts/network.md#hostname) — для него будут автоматически созданы нужные DNS-записи в домене `.gitlab.yandexcloud.net`.
  
        Доменное имя должно быть уникальным в рамках Yandex Cloud.
        
        * Длина — от 5 до 50 символов.
        * Может содержать строчные буквы латинского алфавита, цифры и дефисы.
        * Первый и последний символ — не дефис.
  
     1. Задайте срок хранения автоматических резервных копий (в днях).
     1. (Опционально) Включите [правила ревью кода](../../concepts/approval-rules.md). Для этого выберите подходящую конфигурацию правил ревью.
  
        {% note warning %}
        
        За использование правил ревью кода в Managed Service for GitLab взимается плата в зависимости от используемой [конфигурации](../../concepts/approval-rules.md#packages). Подробнее читайте на странице [Правила тарификации для Yandex Managed Service for GitLab](../../pricing.md).
        
        {% endnote %}
  
  1. В блоке **Данные администратора** укажите:
     * **Электронная почта** — адрес электронной почты администратора инстанса GitLab. На этот адрес придет письмо со ссылкой для создания пароля.
     * **Логин** — логин администратора.
  1. (Опционально) В блоке **Дополнительные настройки** включите удаление образов без тегов. Настройка влияет на свободное место на диске инстанса.
  1. Нажмите кнопку **Создать**.
  1. Дождитесь, когда инстанс будет готов к работе: его статус на панели Managed Service for GitLab сменится на **Running**. Это может занять некоторое время.

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../../cli/quickstart.md#install).
  
  По умолчанию используется каталог, указанный при [создании](../../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
  
  1. Посмотрите описание команды [CLI](../../../cli/index.md) для создания инстанса Managed Service for GitLab:
  
       ```bash
       yc managed-gitlab instance create --help
       ```
  
  1. Выберите [подсеть](../../../vpc/concepts/network.md#subnet):
  
      ```bash
      yc vpc subnet list
      ```
  
      Результат:
  
       ```text
       +----------------------+---------------------------+----------------------+----------------+-------------------+-----------------+
       |          ID          |           NAME            |      NETWORK ID      | ROUTE TABLE ID |       ZONE        |      RANGE      |
       +----------------------+---------------------------+----------------------+----------------+-------------------+-----------------+
       | e9bnlm18l70a******** |   default-kz1-a   | enpe3m3fa00u******** |                |   kz1-a   | [10.128.0.0/24] |
       +----------------------+---------------------------+----------------------+----------------+-------------------+-----------------+
       ```
  
  1. Создайте инстанс GitLab (в примере приведены не все доступные параметры):
  
      ```bash
      yc managed-gitlab instance create \
        --name first-instance \
        --resource-preset-id <класс_хостов> \
        --disk-size <размер_диска_ГБ> \
        --admin-login <логин администратора> \
        --admin-email <электронная_почта_администратора> \
        --domain-prefix <доменное_имя_инстанса> \
        --deletion-protection \
        --approval-rules <конфигурация_правил_ревью_кода> \
        --subnet-id <идентификатор_подсети>
      ```
  
      Где:
      * `--name` — имя инстанса, уникальное в рамках Yandex Cloud. Требования к имени:
  
        * длина — от 3 до 63 символов;
        * может содержать строчные буквы латинского алфавита, цифры и дефисы;
        * первый символ — буква, последний — не дефис.
  
      * `--resource-preset-id` — класс хостов. Он определяет технические характеристики виртуальной машины, на которой будет развернут инстанс GitLab. Возможные значения:
        * `s2.micro` — 2 vCPU, 8 ГБ RAM.
        * `s2.small` — 4 vCPU, 16 ГБ RAM.
        * `s2.medium` — 8 vCPU, 32 ГБ RAM.
        * `s2.large` — 16 vCPU, 64 ГБ RAM.
      * `--disk-size` — размер диска в ГБ.
      * `--admin-login` — логин администратора инстанса GitLab.
      * `--admin-email` — адрес электронной почты администратора. На этот адрес придет письмо со ссылкой для создания пароля.
      * `--domain-prefix` — [доменное имя инстанса](../../../compute/concepts/network.md#hostname). Для него будут автоматически созданы нужные DNS-записи в домене `.gitlab.yandexcloud.net`.
  
        Доменное имя должно быть уникальным в рамках Yandex Cloud.
        
        * Длина — от 5 до 50 символов.
        * Может содержать строчные буквы латинского алфавита, цифры и дефисы.
        * Первый и последний символ — не дефис.
  
      * `--deletion-protection` — защита инстанса от случайного удаления пользователем.
      * `--approval-rules` — конфигурация [правил ревью кода](../../concepts/approval-rules.md). Возможные значения:
        * `BASIC` — базовая.
        * `STANDARD` — стандартная.
        * `ADVANCED` — продвинутая.
  
        {% note warning %}
        
        За использование правил ревью кода в Managed Service for GitLab взимается плата в зависимости от используемой [конфигурации](../../concepts/approval-rules.md#packages). Подробнее читайте на странице [Правила тарификации для Yandex Managed Service for GitLab](../../pricing.md).
        
        {% endnote %}
  
      * `--subnet-id` — идентификатор выбранной подсети.
  
      Результат:
  
      ```text
      id: c17c60tpadua********
      folder_id: b1g2slt7p9ug********
      created_at: "2025-07-20T18:34:16.078Z"
      updated_at: "2025-07-20T18:34:16.078Z"
      name: test-cli
      resource_preset_id: s2.small
      disk_size: "107374182400"
      status: RUNNING
      admin_login: admin-gl
      admin_email: user@example.com
      domain: test-domain-user.gitlab.yandexcloud.net
      subnet_id: e9b4rrpuu2a********
      backup_retain_period_days: "7"
      deletion_protection: true
      approval_rules_id: BASIC
      gitlab_version: 17.11.6
      ```
  
      Подробнее о команде читайте в [справочнике CLI](../../cli-ref/instance/create.md).

- Terraform {#tf}

  [Terraform](https://www.terraform.io/) позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
  
  Terraform распространяется под лицензией [Business Source License](https://github.com/hashicorp/terraform/blob/main/LICENSE), а [провайдер Yandex Cloud для Terraform](https://github.com/yandex-cloud/terraform-provider-yandex) — под лицензией [MPL-2.0](https://www.mozilla.org/en-US/MPL/2.0/).
  
  Подробная информация о ресурсах провайдера в документации на сайте [Terraform](https://www.terraform.io/docs/providers/yandex/index.html) или в [зеркале](../../../terraform/index.md).

  Если у вас еще нет Terraform, [установите его и настройте провайдер Yandex Cloud](../../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
  
  
  Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, [аутентифицируйтесь](../../../terraform/authentication.md) соответствующим способом.

  Чтобы создать инстанс GitLab:

  1. Опишите в конфигурационном файле Terraform параметры ресурсов, которые необходимо создать:

     ```hcl
     resource "yandex_gitlab_instance" "my_gitlab_instance" {
       name                      = "<имя_инстанса>"
       resource_preset_id        = "<класс_хостов>"
       disk_size                 = <размер_диска_ГБ>
       admin_login               = "<логин_администратора>"
       admin_email               = "<электронная_почта_администратора>"
       domain                    = "<доменное_имя_инстанса>"
       subnet_id                 = "<идентификатор_подсети>"
       approval_rules_id         = "<конфигурация_правил_ревью_кода>"
       backup_retain_period_days = <срок_хранения_копий>
       deletion_protection       = <true_или_false>
     }
     ```

     Где:
     * `name` — имя инстанса, уникальное в рамках Yandex Cloud. Требования к имени:

        * длина — от 3 до 63 символов;
        * может содержать строчные буквы латинского алфавита, цифры и дефисы;
        * первый символ — буква, последний — не дефис.

     * `resource_preset_id` — класс хостов. Он определяет технические характеристики виртуальной машины, на которой будет развернут инстанс GitLab. Возможные значения:
        * `s2.micro` — 2 vCPU, 8 ГБ RAM.
        * `s2.small` — 4 vCPU, 16 ГБ RAM.
        * `s2.medium` — 8 vCPU, 32 ГБ RAM.
        * `s2.large` — 16 vCPU, 64 ГБ RAM.
     * `disk_size` — размер диска в ГБ.
     * `admin_login` — логин администратора инстанса GitLab.
     * `admin_email` — адрес электронной почты администратора. На этот адрес придет письмо со ссылкой для создания пароля.
     * `domain` — [доменное имя инстанса](../../../compute/concepts/network.md#hostname) в формате `<имя>.gitlab.yandexcloud.net`. Для него будут автоматически созданы нужные DNS-записи в домене `.gitlab.yandexcloud.net`.

        Доменное имя должно быть уникальным в рамках Yandex Cloud.
        
        * Длина — от 5 до 50 символов.
        * Может содержать строчные буквы латинского алфавита, цифры и дефисы.
        * Первый и последний символ — не дефис.

     * `subnet_id` — идентификатор выбранной подсети.
     * `approval_rules_id` — конфигурация [правил ревью кода](../../concepts/approval-rules.md). Возможные значения:
        * `BASIC` — базовая.
        * `STANDARD` — стандартная.
        * `ADVANCED` — продвинутая.

        {% note warning %}
        
        За использование правил ревью кода в Managed Service for GitLab взимается плата в зависимости от используемой [конфигурации](../../concepts/approval-rules.md#packages). Подробнее читайте на странице [Правила тарификации для Yandex Managed Service for GitLab](../../pricing.md).
        
        {% endnote %}

     * `backup_retain_period_days` — срок хранения автоматических резервных копий (в днях).
     * `deletion_protection` — защита инстанса от случайного удаления пользователем. Возможные значения: `true` или `false`.

     Подробнее о параметрах ресурса `yandex_gitlab_instance` в [документации провайдера](../../../terraform/resources/gitlab_instance.md).

  1. Создайте ресурсы:

     1. В терминале перейдите в директорию с конфигурационным файлом.
     1. Проверьте корректность конфигурации с помощью команды:
     
        ```bash
        terraform validate
        ```
     
        Если конфигурация является корректной, появится сообщение:
     
        ```bash
        Success! The configuration is valid.
        ```
     
     1. Выполните команду:
     
        ```bash
        terraform plan
        ```
     
        В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
     1. Примените изменения конфигурации:
     
        ```bash
        terraform apply
        ```
     
     1. Подтвердите изменения: введите в терминале слово `yes` и нажмите **Enter**.

     Terraform создаст все требуемые ресурсы. Проверить появление ресурсов можно в [консоли управления](https://console.yandex.cloud) или с помощью команды [CLI](../../../cli/index.md):

     ```bash
     yc managed-gitlab instance list
     ```

- API {#api}

  Воспользуйтесь методом REST API [Create](../../api-ref/Instance/create.md) для ресурса [Instance](../../api-ref/Instance/index.md) или вызовом gRPC API [InstanceService/Create](../../api-ref/grpc/Instance/create.md).

{% endlist %}

{% note info %}

В Managed Service for GitLab при создании инстанса автоматически генерируется SSL-сертификат. Дополнительная настройка для работы по протоколу HTTPS не требуется.

{% endnote %}

## Активировать инстанс Managed Service for GitLab {#activate}

После того как статус инстанса принял значение **Running**, активируйте инстанс:

1. Перейдите по ссылке, полученной на электронную почту администратора после создания инстанса.

   Если по ссылке не открывается веб-интерфейс GitLab, создайте отдельную группу безопасности и [настройте ее](../configure-security-group.md) так, чтобы правила разрешали входящий трафик с нужных портов и IP-адресов.

1. Измените пароль администратора.
1. Авторизуйтесь с помощью логина и пароля администратора.

В дальнейшем, чтобы открыть веб-интерфейс GitLab, [получите детальную информацию об инстансе](instance-list.md#get) и перейдите по ссылке в поле **Домен**.