Как мне зарегистрировать / перерегистрировать Gitlab Runner, используя предварительно созданный config.toml?

Недавно я хотел переместить бегун 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
  1. Войдите в новый config.toml, который он создал, и скопируйте индивидуальный жетон бегуна.

  2. Заменить config.toml желаемой конфигурацией.

  3. Отредактируйте config.toml и вставьте новый индивидуальный токен участника.

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

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

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

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

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

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


person interfect    schedule 12.02.2019    source источник


Ответы (3)


Из того, что я могу найти в документации 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 и изменить только маркер-бегун, и он должен был сработать.

person MrBerta    schedule 13.02.2019

Бегун gitlab может быть зарегистрирован в нескольких проектах и ​​/ или группах. Это просто добавит конфигурации в /etc/gitlab-runner/config.toml (с помощью sudo). Можем ли мы просто сделать следующие шаги:

  1. Отмените регистрацию gitlab-runner, связанного с "проектом"
  2. Зарегистрируйте gitlab-runner, связанный с "группой"

config.toml хранит всю конфигурацию, переданную в gitlab-runner register, включая любые переменные среды, перечисленные в команде gitlab-runner register -h.

Я не уверен, зачем вам сохранять config.toml.

Кроме того, я считаю, что одним из источников путаницы может быть gitlab-runner-token VS gitlab-runner-registration-token. registration-token НЕЛЬЗЯ использовать внутри config.toml, что может быть причиной того, что вы потерпели неудачу после простой замены. Если вы не хотите использовать команду gitlab-runner register и просто обновите config.toml, выполните шаги, описанные выше, чтобы получить gitlab-runner-token и использовать его в config.toml. Затем мы можем попытаться остановить и запустить службу gitlab-runner, используя sudo service gitlab-runner stop и sudo service gitlab-runner start

person rahuljain1311    schedule 07.04.2020

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

Для восстановления раннера мы:

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

Пока эта процедура была очень надежной.

person fzgregor    schedule 15.02.2019
comment
Чтобы создать бегунов изначально, вам все равно нужно зарегистрировать их через gitlab-runner register, верно? Это было бы просто полезно для восстановления ранее зарегистрированных бегунов, верно? - person Vorticity; 31.07.2019