August 19

S2E09

  • Отдельный сервер lf-runner под раннеры сделал в прошлых лабах.
  • Поудалял старые раннеры из гитлаба и с серверов прода и стейджа. Оставил пока докер и шелл раннер на выделенном. Сделал композ файл и под пользователем gitlab-runner его запустил. Зарегистрировал shell и docker раннеры в докере.
  • В volumes в dind в config.toml добавил в volumes путь к сокету докера
    volumes = ["/cache","/var/run/docker.sock:/var/run/docker.sock"], лампочка у dind загорелась
  • В логах контейнера увидел варнинги и поправил конфиги. Текст предупреждений вполне понятно объяснил, что и как.
    request_concurrency = 4 поставил для каждого раннера.
    concurrent = 3 на весь конфиг.
  • Заменил в пайлайне для Питонера теги.

Проверяю: упала джоба деплоя (shell docker runner), т.к. в контейнере не установлен докер.

  docker exec -it gitlab-runner sh
   apk updateapk add docker docker-compose
  docker commit gitlab-runner gitlab-runner-updated

Это мне дало новый, раздутый контейнер с докером.

Следующие запуски дали "host verification failed" на вытягивании контейнера из регистри. Поступил аналогично пайпу выноса для инфры - добавил в переменную ssh ключ, для которого есть доступ к гитлабу. И перед деплоем этот ключ размещаю в раннере.

После внимательного прочтения логов при следующих "host verification failed" добавил сканирование хостов и добавление их в known_hosts.

Теперь падает третья джоба. Нету архиватора потому что в контейнере. Ну такое мы чинить умеем.

Образ получился 530 Мб. Попробовал сделать свой раннер с помощью:

[lgc@localhost dind]$ cat Dockerfile
FROM gitlab/gitlab-runner:alpine
RUN apk add --no-cache docker docker-compose

Получил те же 530 Мб. Любопытно

  • Питонер работает с докер раннерами. По его образу и подобию адаптирую для инфры. Заработала с первой попытки, из проблем только - забыл сделать assign раннеров и долго тупил на надпись pending.

Все условия домашки выполнил.

https://gitlab.com/littlegreencat/devops