LINUX.ORG.RU
ФорумAdmin

конфигурирование множества gitlab-runner-ов

 , ,


0

1

Привет! Извиняюсь за нубство.

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

Использую Ansible.

Я бы с радостью сделал template конфига config.toml для gitlab-runner, подставляя в него индивидуальный токен для каждого хоста из заданной переменной. Но как мне получить эти токены? Счет хостов пойдёт на сотни (это мелкие ноды на RPi, сейчас их уже сто, сделано было всё руками и через скрипты, переконфигурировать какой-нибудь параметр в config.toml на ни них - это ад).

Может, я чего не знаю про gitlab-runner и есть способ получить регистрацию на инстансе gitlab сразу для пачки раннеров?

Может, тем же ансиблом выполнить gitlab-runner register, но как мне собрать полученные токены обратно к себе на контрольную ноду?

Вроде тема горячая, а инфы по оркестрации раннеров не нашел особо.


Ответ на: комментарий от MaZy

Не, нужны теги, как минимум, для разных gpio конфигураций

Но забавно, что оно так будет работать. Как оно определяет статус такого раннера и его IP, которые отображаются в web, интересно….

zendrz ()
Последнее исправление: zendrz (всего исправлений: 1)
Ответ на: комментарий от MaZy

ммм! Интересно это используется кем-нибудь реально, или это просто следствие архитектуры, что мол решили не запрещать такое поведение специально…

zendrz ()
Последнее исправление: zendrz (всего исправлений: 1)

Я использую ansible для регистрации gitlab-runner следующим образом:

  tasks:
    - name: Register gitlab-runner
      shell:
        cmd: |
          sudo gitlab-runner register --non-interactive --url http://your/url/here \
            --registration-token your-gitlab-token \
            --name "name of your runner" \
            --executor shell --locked=false --run-untagged=false \
            --tag-list 'tag-of-you-runner'
yetanother ()
Ответ на: комментарий от yetanother

Ага, спасибо. До ансибл у нас был похожий скрипт для развертывания. К сожалению, мне часто требуется изменять config.toml у раннеров пачками (переменные окружения, pre-, post- clone hooks), + на некоторых хостах сделаны несколько отдельных раннеров (что бы отделить по тегам разные limit и priveleged). Из-за этого всего я сейчас хочу, наконец, вместо sed-костылей сделать всеобъемлющую конфигурацию всех раннеров в ансибл, иначе времени на правки в конфигурацию тратятится ппц.

zendrz ()