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, но как мне собрать полученные токены обратно к себе на контрольную ноду?

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

★★

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

Может, тем же ансиблом выполнить gitlab-runner register

This

как мне собрать полученные токены обратно к себе на контрольную ноду?

Нахрена?

dhameoelin ★★★★★
()
Ответ на: комментарий от dhameoelin

Нахрена?

хочу сделать шабло config.toml.j2 , и хочу что бы в ансибле хранились все конфигурации (включая все токены для хостов), а не непойми что

zendrz ★★
() автор топика

можно юзать один токен для всех, если некритично

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

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

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

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

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

раннеры опрашивают гитлаб на наличие pending билдов, какой первый возьмет тот и будет выполнять

MaZy ★★★★★
()
Ответ на: комментарий от 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 ★★
() автор топика
Ответ на: комментарий от MaZy

Вообще я тоже подумал, что это удобно для масштабирования, спасибо за идею

zendrz ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.