Как я могу зарегистрировать / перерегистрировать Gitlab Runner с помощью предварительно созданного config.toml? - PullRequest
0 голосов
/ 12 февраля 2019

Недавно я хотел переместить бегуна Gitlab, который я настроил для своего собственного размещенного экземпляра Gitlab, с того, чтобы он был бегуном проекта (т.е. выполнял задания только для проекта), на бегуна группы (чтобы он мог также запускать задания длядругие проекты в той же группе).Я хотел сохранить настройки /etc/gitlab-runner/config.toml, которые были тщательно написаны от руки.

К счастью, я скопировал config.toml, потому что sudo gitlab-runner unregister -t ... -u ... удалил всю конфигурацию из config.toml.

Чтобы получить тот же конфиг, зарегистрированный в группе, а не в проекте, мне пришлось:

  1. Зарегистрировать бегуна в состоянии паузы с фиктивной конфигурацией с маркером регистрации группы:
sudo gitlab-runner register \
  --non-interactive \
  --url <URL HERE>
  --registration-token <TOKEN HERE> \
  --executor docker \
  --docker-image docker:dind \
  --paused

Перейдите к новому config.toml, который он создал, и скопируйте токен отдельного бегуна.

Перезапишите config.toml с моей желаемой конфигурацией.

Отредактируйте config.toml и подключите новый отдельный токен бегуна.

Запустите службу Gitlab Runner Sercice (sudo systemctl start gitlab-runner).

Отключение бегуна в веб-интерфейсе Gitlab.

Даже после всего этого экземпляр Gitlab по-прежнему видит бегуна под именем, зарегистрированным в фиктивной конфигурации.вместо имени в config.toml.

Попытка опции --config для gitlab-runner register не работала вообще;Я думаю, что просто говорит, где сохранить конфигурации.Он по-прежнему подсказывал мне использовать новые настройки вместо чтения из config.toml, на который я указывал.

Документация Gitlab по регистрации бегунов написана вокруг одного выстрела gitlab-runner register команд с множеством опций на них.по сути, указать всю конфигурацию в командной строке.Я действительно не хочу переводить мой config.toml вручную в командную строку, которая переворачивает и перестраивает ее (конечно, без каких-либо комментариев).

Я не могу поверить, что это действительно правильный рабочий процессперерегистрировать бегуна в новом экземпляре проекта / группы / Gitlab или создать копию бегуна из сохраненной конфигурации.Что мне здесь не хватает?Как я могу создать новый бегун Gitlab из существующего config.toml файла?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Мы храним конфигурации бегуна в репозитории для восстановления.

Чтобы восстановить бегуна, мы:

  1. устанавливаем gitlab-runner (см. https://docs.gitlab.com/runner/install/) на новом узле,
  2. переместите сохраненную конфигурацию в /etc/gitlab-runner/config.toml и
  3. перезапустите службу runner, например, sudo service gitlab-runner restart в Ubuntu.

До сих пор эта процедура былаочень надежный.

0 голосов
/ 13 февраля 2019

Нет простого способа сделать то, что вы хотите, из того, что я могу найти в документации GitLab и некоторых открытых проблемах, которые у них есть.

Вот проблема, которая описывает нечто похожее на то, что выхочу:

https://gitlab.com/gitlab-org/gitlab-runner/issues/3540

Вот что я считаю целью GitLab по регистрации бегунов:

https://gitlab.com/gitlab-org/gitlab-ce/issues/40693

Я считаю, чтоединственное, что вы не можете изменить из файла .toml, это имя бегуна, и, возможно, также не теги.Тогда имя создается только когда вы регистрируете бегуна.Я где-то читал, что вы можете изменить теги общего бегуна, но сейчас не могу его найти.

Вот обходной путь, чтобы сделать процесс регистрации немного более автоматическим:

https://gitlab.com/gitlab-org/gitlab-runner/issues/3553#note_108527430

Он использовал этот API:

curl --request POST "https://gitlab.com/api/v4/runners" --form "token=<registration-token>" --form "description=test-1-20150125-test" --form "tag_list=ruby,mysql,tag1,tag2"

Затем он получил следующий ответ:

{"id":401513,"token":"<runner-token>"}

Затем он мог ввести токен бегуна вего уже готовый файл .toml.

Для вас было бы возможно использовать регистрационный токен для вашей группы, а затем записать описание / имя участника и теги.Затем вы могли бы повторно использовать ваш config.toml и изменить только токен бегуна, и он должен был сработать.

...