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

# Работа с управляемым раннером

{% note info %}

Функциональность создания и управления раннерами с помощью консоли управления находится на стадии [Preview](../../overview/concepts/launch-stages.md). Чтобы запросить доступ, обратитесь в [техническую поддержку](https://kz.center.yandex.cloud/support) или к вашему аккаунт-менеджеру.

{% endnote %}

В сервисе Managed Service for GitLab вы можете создать управляемый раннер, который автоматически разворачивает указанное число [виртуальных машин](../../compute/concepts/vm.md) Compute Cloud с установленными воркерами GitLab. Также управляемый раннер обеспечивает горизонтальное масштабирование ВМ с воркерами в зависимости от нагрузки.

{% note warning %}

За использование виртуальных машин (воркеров) взимается плата ([тарифы Compute Cloud](../../compute/pricing.md)).

{% endnote %}

Для корректной работы управляемого раннера нужно выполнить [настройку](../concepts/index.md#networking-gl-mr) сети и групп безопасности.

## Получить токен GitLab Runner {#gitlab-token}

Токен можно получить при создании GitLab Runner в GitLab. Этот токен указывается при [создании раннера](#create) в инстансе Managed Service for GitLab и используется для аутентификации раннера в GitLab.

Чтобы создать и настроить GitLab Runner для всего [инстанса GitLab](../concepts/index.md#instance) (требуются права администратора GitLab):

1. Откройте GitLab.
1. В левом нижнем углу нажмите кнопку **Admin**.
1. В меню слева выберите **CI/CD** → **Runners**.
1. Нажмите кнопку **New instance runner** и создайте новый GitLab Runner.
1. Сохраните значение параметра `Runner authentication token`.

Чтобы создать и настроить GitLab Runner для [проекта](https://docs.gitlab.com/ee/user/project/):

1. Откройте GitLab.
1. Выберите проект.
1. В меню слева выберите **Settings** → **CI/CD**.
1. В блоке **Runners** нажмите кнопку **Expand**.
1. Нажмите кнопку **New project runner** и создайте новый GitLab Runner.
1. Сохраните значение параметра `Runner authentication token`.

## Создать раннер {#create}

{% list tabs group=instructions %}

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

  1. Выберите инстанс Managed Service for GitLab, для которого нужно создать раннер.
  1. Выберите вкладку **Раннеры**.
  1. Нажмите кнопку **Создать раннер**.
  1. Задайте имя раннера:
      * длина — от 2 до 63 символов;
      * может содержать строчные буквы латинского алфавита, цифры и дефисы;
      * первый символ — буква, последний — не дефис.
  1. (Опционально) Введите произвольное описание раннера.
  1. Введите токен GitLab Runner, [полученный ранее](#gitlab-token).
  1. Выберите или создайте [сервисный аккаунт](../../iam/concepts/users/service-accounts.md) для раннера.

      {% note info %}
      
      Этот сервисный аккаунт используется только для создания ВМ и не будет привязан к ней. У сервисного аккаунта должны быть роли [compute.admin](../../compute/security/index.md#compute-admin), [vpc.admin](../../vpc/security/index.md#vpc-admin) и [iam.serviceAccounts.user](../../iam/security/index.md#iam-serviceAccounts-user). Подробнее на странице [Назначение роли сервисному аккаунту](../../iam/operations/sa/assign-role-for-sa.md).
      
      {% endnote %}

  1. (Опционально) Добавьте [метки](../../resource-manager/concepts/labels.md) для разделения раннеров на логические группы.
  1. В блоке **Настройки масштабирования** укажите:

      * **Минимум воркеров** — число воркеров, которые всегда запущены и готовы выполнять задачи. Значение по умолчанию — `1`, минимальное — `0`, максимальное — `10`.
      * **Максимум воркеров** — максимальное число воркеров, которые могут быть созданы для выполнения задач. Значение по умолчанию — `3`, минимальное — `1`, максимальное — `30`. Максимальное количество воркеров не может быть меньше минимального.
      * **Лимит простоя воркера, в минутах** — максимальное время простоя, по истечении которого дополнительно созданный воркер будет удален. Значение по умолчанию — `10`, минимальное — `0`.
      * **Максимум задач на воркер** — максимальное количество задач, после выполнения которых воркер будет удален. Значение по умолчанию — `100`, минимальное — `0`.
      * **Количество параллельных задач на воркер** — количество задач, которые выполняются на одном воркере одновременно. Значение по умолчанию — `1`, минимальное — `0`.

  1. (Опционально) Добавьте метки для воркера.
  1. В блоке **Вычислительные ресурсы** выберите конфигурацию вычислительных ресурсов.
  1. В блоке **Диски и файловые хранилища** настройте загрузочный диск:
      * Выберите [тип диска](../../compute/concepts/disk.md#disks_types).
      * Задайте размер диска.
  1. (Опционально) Выберите или создайте сервисный аккаунт для воркера.

      {% note info %}
      
      Этот сервисный аккаунт будет привязан к ВМ с воркером. С помощью него воркер сможет аутентифицироваться в API Yandex Cloud и взаимодействовать с облачными ресурсами.
      
      [Назначьте](../../iam/operations/sa/assign-role-for-sa.md) сервисному аккаунту роль на ресурс, с которым вы хотите работать.
      
      {% endnote %}

  1. (Опционально) Выберите [группу безопасности](../../vpc/concepts/security-groups.md).
  1. Нажмите кнопку **Создать**.

{% endlist %}

## Изменить раннер {#update}

{% list tabs group=instructions %}

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

  1. [Перейдите](https://console.yandex.cloud/link/managed-gitlab) в сервис **Managed Service for&nbsp;GitLab**.
  1. Выберите инстанс Managed Service for GitLab, в котором нужно изменить раннер.
  1. Выберите вкладку **Раннеры**.
  1. Нажмите на значок ![image](../../_assets/console-icons/ellipsis.svg) для нужного раннера и выберите пункт **Редактировать**.
  1. Задайте новые имя и описание раннера.
  1. Выберите или создайте [сервисный аккаунт](../../iam/concepts/users/service-accounts.md) для раннера.

      {% note info %}
      
      Этот сервисный аккаунт используется только для создания ВМ и не будет привязан к ней. У сервисного аккаунта должны быть роли [compute.admin](../../compute/security/index.md#compute-admin), [vpc.admin](../../vpc/security/index.md#vpc-admin) и [iam.serviceAccounts.user](../../iam/security/index.md#iam-serviceAccounts-user). Подробнее на странице [Назначение роли сервисному аккаунту](../../iam/operations/sa/assign-role-for-sa.md).
      
      {% endnote %}

  1. Добавьте [метки](../../resource-manager/concepts/labels.md) для разделения раннеров на логические группы.
  1. Измените настройки масштабирования:

      * **Минимум воркеров** — число воркеров, которые всегда запущены и готовы выполнять задачи. Значение по умолчанию — `1`, минимальное — `0`, максимальное — `10`.
      * **Максимум воркеров** — максимальное число воркеров, которые могут быть созданы для выполнения задач. Значение по умолчанию — `3`, минимальное — `1`, максимальное — `30`. Максимальное количество воркеров не может быть меньше минимального.
      * **Лимит простоя воркера, в минутах** — максимальное время простоя, по истечении которого дополнительно созданный воркер будет удален. Значение по умолчанию — `10`, минимальное — `0`.
      * **Максимум задач на воркер** — максимальное количество задач, после выполнения которых воркер будет удален. Значение по умолчанию — `100`, минимальное — `0`.
      * **Количество параллельных задач на воркер** — количество задач, которые выполняются на одном воркере одновременно. Значение по умолчанию — `1`, минимальное — `0`.

  1. Добавьте метки для воркера.
  1. Выберите новую конфигурацию вычислительных ресурсов воркера.
  1. Измените [тип](../../compute/concepts/disk.md#disks_types) и размер загрузочного диска.
  1. Выберите или создайте сервисный аккаунт для воркера.

      {% note info %}
      
      Этот сервисный аккаунт будет привязан к ВМ с воркером. С помощью него воркер сможет аутентифицироваться в API Yandex Cloud и взаимодействовать с облачными ресурсами.
      
      [Назначьте](../../iam/operations/sa/assign-role-for-sa.md) сервисному аккаунту роль на ресурс, с которым вы хотите работать.
      
      {% endnote %}

  1. Выберите [группу безопасности](../../vpc/concepts/security-groups.md).
  1. Нажмите кнопку **Сохранить**.

{% endlist %}

## Удалить раннер {#delete}

{% list tabs group=instructions %}

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

  1. [Перейдите](https://console.yandex.cloud/link/managed-gitlab) в сервис **Managed Service for&nbsp;GitLab**.
  1. Выберите инстанс Managed Service for GitLab, из которого нужно удалить раннер.
  1. Выберите вкладку **Раннеры**.
  1. В строке раннера, который вы хотите удалить, нажмите на значок ![image](../../_assets/console-icons/ellipsis.svg) и выберите пункт **Удалить**.
  1. В открывшемся окне нажмите кнопку **Удалить**.

{% endlist %}

#### Полезные ссылки {#see-also}

* [Управляемые раннеры](../concepts/index.md#managed-runners)
* [Развертывание GitLab Runner на виртуальной машине Yandex Compute Cloud](../tutorials/install-gitlab-runner.md)