В GitLab CI запуски выполняют код, определённый в .gitlab-ci.yml
.
Это изолированные (виртуальные) машины, которые получают задания через API координатора GitLab CI.
Запуск может быть специфическим для определённого проекта или обслуживать любой проект в GitLab CI. Запуск, который обслуживает все проекты, называется общим запуском.
Идеально, GitLab Runner не должен быть установлен на той же машине, что и GitLab. Для получения дополнительной информации прочитайте документацию по требованиям.
После [установки запуска][install], вы можете зарегистрировать его как общий или специфический. Вы можете зарегистрировать общий запуск только если у вас есть права администратора на GitLab-экземпляре. Основные различия между общим и специфическим запуском следующие:- Общие запуски полезны для заданий, которые имеют похожие требования между несколькими проектами. Вместо того, чтобы иметь множество запусков, которые простаивают для многих проектов, вы можете иметь один или небольшое количество запусков, которые обрабатывают несколько проектов. Это делает их проще в поддержке и обновлении. Общие запуски обрабатывают задания с помощью очереди с ф fair usage. В отличие от специфических запусков, которые используют очередь FIFO, это предотвращает случаи, когда проекты создают сотни заданий, что может привести к исчерпанию всех доступных ресурсов общих запусков.
Проекты с высоким спросом на CI-деятельность также могут выиграть от использования специфических запусков. Имея специализированные запуски, вы гарантируете, что запуск не будет задержан заданиями других проектов. Вы можете настроить конкретный Runner для использования несколькими проектами. Разница с общим Runner заключается в том, что вам нужно явно включить каждый проект для Runner, чтобы он мог запускать его задачи.
Конкретные Runners автоматически не передаются форкнутым проектам. Форк копирует настройки CI (задачи, разрешение на общие, и т. д.) клонированного репозитория.
Вы можете зарегистрировать только общий Runner, если вы являетесь администратором GitLab.
Получите токен общего Runner на странице admin/runners
[Зарегистрируйте Runner][register]
Общие Runners по умолчанию включены в GitLab 8.2, но могут быть отключены с помощью кнопки Отключить общие Runners, которая присутствует на странице Настройки ➔ Пайплайны каждого проекта. Предыдущие версии GitLab по умолчанию отключали общие Runners.## Регистрация конкретного Runner
Регистрация конкретного Runner может быть выполнена двумя способами:
Чтобы создать конкретный Runner без прав администратора на GitLab, перейдите в проект, для которого вы хотите настроить Runner:
Если вы являетесь администратором на вашем GitLab, вы можете преобразовать любой общий Runner в конкретный, но не наоборот. Учитывайте, что это однонаправленное преобразование.
/admin/runners
)
и найдите ваш RunnerС этого момента, общий Runner будет конкретным для этих проектов.
Runner заблокирован таким образом, он больше не может быть включен для других проектов. Эта настройка может быть включена при первой регистрации Runner [register] и может быть изменена позже в настройках каждого Runner. Чтобы заблокировать/разблокировать Runner:1. Перейдите в Настройки ➔ Пайплайны вашего проекта
Общие Runners следуют процессу очереди, который мы называем справедливым использованием. Алгоритм справедливого использования пытается назначить задачи общим Runners из проектов, которые имеют наименьшее количество задач, выполняемых на общих Runners.
Пример 1
У нас есть следующие задачи в очереди:
С алгоритмом справедливого использования задачи назначаются в следующем порядке:
Пример 1
У нас есть следующие задачи в очереди:
С алгоритмом справедливого использования задачи назначаются в следующем порядке:1. Задача 1 выбирается первой, так как она имеет наименьший номер задачи из проектов, у которых нет выполняющихся задач (то есть все проекты).
Пример 2
У нас есть следующие задачи в очереди:
С алгоритмом справедливого использования задачи назначаются в следующем порядке:
Если вы планируете использовать общие Runners, следует учесть несколько моментов.
Например, в GitLab у нас есть Runners, тегированные как "rails", если они содержат соответствующие зависимости для выполнения тестовых сценариев Rails.
Вы можете настроить Runner так, чтобы он не выбирал задачи без тегов, если у Runner нет тегов. Это настройка может быть включена при первом [регистрации Runner][register] и изменена позже в настройках каждого Runner.
Чтобы сделать Runner способным выбирать задачи с тегами или без:
Если вы можете выполнить задачу на Runner, вы можете получить доступ к любому коду, который он выполняет, и получить токен Runner. С общими Runners это означает, что любой, кто выполняет задачи на этом Runner, может получить доступ к коду других пользователей, выполняющих задачи на этом Runner.
Кроме того, поскольку вы можете получить доступ к токену Runner, вы можете создать копию Runner и отправить ложные задачи, например.Вышеупомянутое легко избегается путем ограничения использования общих Runners на больших публичных GitLab-инстансах и контролем доступа к вашему GitLab-инстансу.
Каждый раз, когда проект форкируется, он копирует настройки задач, связанных с ним. Это означает, что если у вас есть общие Runners, настроенные для проекта, и кто-то форкирует этот проект, общие Runners будут выполнять задачи этого форка.
Упомянуто кратко ранее, но следующие аспекты Runners могут быть использованы для атак. Мы всегда ищем вклады, которые могут уменьшить эти безопасные соображения.[установка]: http://docs.gitlab.com/runner/install/ [фио]: https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics) [регистрация]: http://docs.gitlab.com/runner/register/
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )