1

1) Контекст

Я запускаю конвейер сборки, используя Gitlab VirtualBox Runner (версия Gitlab 10.6.3). Когда я вручную создаю базовый образ (например, my-base-vm), тогда сборка отлично работает на 1-n клонах, которые создает Gitlab-CI.

2) Наблюдаемая ошибка

Однако, когда я хочу подготовить базовый образ с помощью Vagrant (версия 2.2.2), вывод сборки Gitlab CI для моей работы показывает следующее:

Running with gitlab-runner 11.2.0 (35e8515d)
  on myproject-build-machine 1c8ab769
Using VirtualBox version 5.2.18_Ubuntur123745 executor...
Creating new VM...
ERROR: Preparation failed: ssh: handshake failed: read tcp 127.0.0.1:35542->127.0.0.1:34963: read: connection reset by peer
Will be retried in 3s ...
Using VirtualBox version 5.2.18_Ubuntur123745 executor...
Creating new VM...
ERROR: Job failed: execution took longer than 1h0m0s seconds

Изображение основано на базовом изображении ubuntu/bionic64 .

3) Конфигурация

Хотя у бегуна (клон из my-base-vm) есть правильные правила NAT (вывод VBoxManage showvminfo my-base-vm-runner-1c8ab769-concurrent-0):

NIC 1 Rule(0):   name = guestssh, protocol = tcp, host ip = 127.0.0.1, host port = 32805, guest ip = , guest port = 22
NIC 1 Rule(1):   name = ssh, protocol = tcp, host ip = 127.0.0.1, host port = 2222, guest ip = , guest port = 22

Gitlab config.toml настроен с правильным именем пользователя и паролем (vagrant:vagrant), а файл Vagrant позволяет компьютеру принимать имя пользователя и пароль в качестве средства аутентификации (выдержка из Vagrantfile):

config.vm.provision "shell", inline: <<-SHELL
        sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/g' /etc/ssh/sshd_config
        sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
        service ssh restart
    SHELL

0