Рубрики
Uncategorized

Вот как добиться нескольких вариантов работы с GitLab

Gitlab используется инди-хакерами, но и крупными компаниями с сотнями Devs. Одиночный разработчик DEV на ее проекте может продвигать изменения в настоящее время, а затем, но когда это умножено в десять раз, …

Автор оригинала: Konstantinos Demiris.

Gitlab используется инди-хакерами, но и крупными компаниями с сотнями Devs. Одиночный разработчик DEV на ее проекте может продвигать изменения каждые, а затем, но когда это умножается в десять раз, быстро становится подавляющим для сервера сборки.

В некоторых средах есть слишком много DEV, работающих над многими проектами, находящими изменениями каждую секунду дня! Вы кажетесь знакомы с тем, что я описываю. Надоело в ожидании тех, кто создает работу, чтобы закончить, верно? Решение простое, увеличивайте параллелизм …:]

Примечание: В этом посте мы учитываем несколько проектов, которые обслуживаются один бегун с Докер как исполнитель. Этот бегун запускает работу по сборке, основываясь на параллелизме, которые мы установим. Различные настройки для различных тематических исследований естественным образом возможны.

Ради полноты, мы построим все это с нуля.

Для этого руководства мы будем использовать:

  • Gitlab Enterprise Edition 10.8.4-EE

  • GitLab-Runner 10.6.0

Просто сторона примечания … : Я люблю автоматизацию Так что я пишу книгу об этом! Он упакован с всеобъемлющими гидами по концепциям CI/CD , реализован с техниками, как Кубернаны , Хелм , Докер , Gitlab , Проект , Леса и т.п. Вы хотите быть уведомленным, как только он будет доступен? Получить уведомление! Вы знаете друг/коллега, который будет заинтересован? Поделиться этим!

Шаг 1: Создайте контейнер GitLab-Runner

Примечание: вам может понадобиться корень

docker run --name runner --restart always -d -v $HOME/gitlab-runner:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:v10.6.0

Внимание: это не зарегистрированный бегун. Это только двоичный бегун Gitlab-Runner работает внутри контейнера Docker!

Шаг 2: Зарегистрируйте бегун в Gitlab CI

gitlab-runner register --non-interactive --description "docker-runner" --url "http://www.your-gitlab.com/" -registration-token "something_weird" --executor "docker" --docker-image "docker:latest" --run-untagged --locked=false --docker-privileged=true --docker-volumes /var/run/docker.sock:/var/run/docker.sock

Примечание: --locked = false аргумент не работает. Бегун все еще будет зарегистрирован как специфический . Я включаю в себя в случае, если будущее обновление исправляет его.

Необязательно, вы можете зарегистрировать более одного бегунов с тем же [или другим] именем], если вы хотите заблокировать их на проект.

Шаг 3: Увеличьте параллелизм в Config.toml

одновременно Установка, контролирует, сколько работы можно запускать одновременно. Глобально Отказ Это означает, что это относится ко всем бегунам независимо от исполнителя [Docker, SSH, Kubernetes etc]

Вы должны открыть /etc/gitlab-runner/Config.toml Файл с редактором, как нано или погиб .

И изменить одновременно к чему-то вроде одновременно [или столько одновременных созданий, которые вам нравятся]

Проверьте здесь для получения дополнительной информации.

Шаг 4: Перезапустите GitLab-Runner

Просто быть в безопасности и не заканчивать голову …

gitlab-runner restart

Шаг 5: запустите некоторые сборки

Теперь вы можете запустить столько рабочих мест, которые вы устанавливаете параллелизм, чтобы быть [I.E N ]! Попробуйте сокрушить это с n + 1 Просто чтобы посмотреть +1 работу, чтобы терпеливо ждать, чтобы слот открылся.

Примечание: когда Докер Используется исполнитель, каждая новая работа по сборке будет работать внутри нового контейнера докера, который будет автоматически. Та же логика применяется с Кубернаны Исполнитель тоже.

Дополнительный шаг: Убирать

Там будет много (в зависимости от ваших проектов) контейнеров кэша, которые остаются выходом, когда работа по сборке добится успеха.

Проверьте это ниже!

2ca3a04e44dd  88a04ddd0898  "gitlab-runner-cache " 10 minutes ago  Exited (0) 10 minutes ago  runner-707174de-project-38-concurrent-0-cache-3c3f0...
8beb199e0e1f  88a04ddd0898  "gitlab-runner-cache " 10 minutes ago  Exited (0) 10 minutes ago  runner-707174de-project-38-concurrent-0-cache-d6b5f...
a7f0bf9ba8b1  88a04ddd0898  "gitlab-runner-cache " 10 minutes ago  Exited (0) 10 minutes ago  runner-f2bd384a-project-46-concurrent-0-cache-3c3f0...
66bb3ef98879  88a04ddd0898  "gitlab-runner-cache " 10 minutes ago  Exited (0) 10 minutes ago  runner-f2bd384a-project-46-concurrent-0-cache-d6b5f...
3689d386af1b  88a04ddd0898  "gitlab-runner-cache " 18 minutes ago  Exited (0) 18 minutes ago  runner-8df2f9cc-project-19-concurrent-0-cache-3c3f0...
1391db607410  88a04ddd0898  "gitlab-runner-cache " 18 minutes ago  Exited (0) 18 minutes ago  runner-8df2f9cc-project-19-concurrent-0-cache-d6b5f...

Эти контейнеры должны оставаться после сборки, чтобы следующая сборка можно использовать кэш. Удаление его после того, как сборка будет победить свою цель. Однако, если вы заметите, что у вас возникает пространство и странное поведение происходит … Или у вас есть просто крошечный OCD, запустите это:

docker run -d -e LOW_FREE_SPACE=10G -e EXPECTED_FREE_SPACE=20G -e LOW_FREE_FILES_COUNT=1048576 -e EXPECTED_FREE_FILES_COUNT=2097152 -e DEFAULT_TTL=10m -e USE_DF=1 --restart always -v /var/run/docker.sock:/var/run/docker.sock --name=gitlab-runner-docker-cleanup quay.io/gitlab/gitlab-runner-docker-cleanup

Примечание: для получения дополнительной информации check здесь

Оригинал: «https://www.codementor.io/@konstantinosdemiris/this-is-how-to-achieve-multiple-job-concurrency-with-gitlab-lcei4nw74»