Показаны различия между двумя версиями страницы.
— |
методология_devops:запуск_пайплайнов_из_.gitlab-ci_в_gitlab_runners [2025/05/31 20:59] (текущий) kirill создано |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | # Запуск пайплайнов из .gitlab-ci.yml в GitLab Runners | ||
+ | ## Обзор CI/CD Pipeline в GitLab | ||
+ | |||
+ | * **`.gitlab-ci.yml`: | ||
+ | * Состоит из набора **stages** (этапов), | ||
+ | * Каждый stage содержит один или несколько **jobs** (заданий), | ||
+ | * **Jobs** определяют конкретные действия, | ||
+ | |||
+ | ## GitLab Runner: исполнитель задач CI/CD | ||
+ | |||
+ | * **Что такое GitLab Runner?** Агент, который запускает задачи (jobs), определенные в `.gitlab-ci.yml`. | ||
+ | * **Типы GitLab Runners:** | ||
+ | * **Shared Runners:** Доступны для всех проектов в GitLab instance. Управляются администратором GitLab. | ||
+ | * **Group Runners:** Доступны для всех проектов в определенной группе. Управляются администраторами группы. | ||
+ | * **Specific Runners:** Назначаются конкретным проектам. Управляются владельцами проектов или администраторами. | ||
+ | * **Executor: | ||
+ | * **shell:** Выполняет скрипты непосредственно на машине Runner. | ||
+ | * **docker:** Запускает каждое задание в отдельном Docker-контейнере. Обеспечивает изолированность и воспроизводимость. | ||
+ | * **kubernetes: | ||
+ | * **virtualbox, | ||
+ | |||
+ | ## Как GitLab Runner " | ||
+ | |||
+ | 1. **События в репозитории: | ||
+ | 2. **GitLab CI/CD Coordinator: | ||
+ | 3. **Ожидание Runner' | ||
+ | 4. **Выбор Runner' | ||
+ | 5. **Выполнение задания: | ||
+ | 6. **Отчет о статусе: | ||
+ | 7. **Продолжение пайплайна: | ||
+ | |||
+ | ## Ключевые аспекты `.gitlab-ci.yml`, | ||
+ | |||
+ | * **`stages`: | ||
+ | * **`jobs`:** Определяют конкретные задачи для выполнения. | ||
+ | * **`stage`: | ||
+ | * **`script`: | ||
+ | * **`tags`:** Метки, которые используются для выбора подходящих Runner' | ||
+ | * **`only` / `except`:** Определяют, | ||
+ | * **`image`: | ||
+ | * **`services`: | ||
+ | * **`before_script` / `after_script`: | ||
+ | * **`artifacts`: | ||
+ | * **`cache`: | ||
+ | |||
+ | ## Регистрация и настройка GitLab Runner' | ||
+ | |||
+ | 1. **Установка GitLab Runner:** Загрузка и установка пакета GitLab Runner на целевой машине (физической или виртуальной). | ||
+ | 2. **Регистрация Runner' | ||
+ | * Необходимо указать URL GitLab instance и регистрационный токен (можно найти в настройках CI/CD). | ||
+ | * Выбор executor' | ||
+ | * Ввод тегов для Runner' | ||
+ | * Другие настройки (например, | ||
+ | 3. **Настройка Runner' | ||
+ | 4. **Запуск и управление Runner' | ||
+ | |||
+ | ## Принцип работы выбора Runner' | ||
+ | |||
+ | * Когда запускается пайплайн, | ||
+ | * Для каждого задания в пайплайне Coordinator пытается найти Runner, который: | ||
+ | * Не занят выполнением другого задания (если достигнут лимит concurrency). | ||
+ | * Имеет хотя бы одну из меток, указанных в секции `tags` задания (если теги указаны). | ||
+ | * Совместим с требованиями задания (например, | ||
+ | * Если подходящий Runner найден, | ||
+ | * Если подходящих Runner' | ||
+ | |||
+ | ## Лучшие практики: | ||
+ | |||
+ | * **Используйте теги:** Четко определяйте теги для Runner' | ||
+ | * **Оптимизируйте `.gitlab-ci.yml`: | ||
+ | * **Мониторинг Runner' | ||
+ | * **Используйте Docker executor (рекомендуется): | ||
+ | * **Настраивайте concurrency: | ||
+ | |||
+ | ## Заключение: | ||
+ | |||
+ | Понимание того, как GitLab CI/CD Coordinator взаимодействует с GitLab Runners и как `.gitlab-ci.yml` определяет выполнение пайплайнов, |