Я зарегистрировал gitlab runner, и он подключается к моему экземпляру gitlab из моей офисной сети. Однако дома по VPN это не происходит.
Если я помещаю коммит в мой экземпляр gitlab, бегун начинает выполнять .gitlab-ci.yml
и возникает следующая ошибка:
Это проблема с прокси-сервером, которую легко устранить, перейдя в настройки Docker и настроив ее на использование интернет-прокси для всего, кроме адресов интрасети, например, моего экземпляра gitlab.
Однако, когда я перезапускаю Docker и отправляю изменения в gitlab, мой бегун gitlab не запускает конвейер. Конвейер зависает в состоянии «Ожидание»:
Если перейти к настройкам CI / CD, можно увидеть, что бегун выглядит в автономном режиме:
Я пытаюсь свернуть mygitlab.com из контейнера gitlab-runner:
root@2a0773f7a6e4:/# curl -v --noproxy '*' https://mygitlab.com/
* Trying xxx.xxx.xxx.xxx...
* TCP_NODELAY set
* Connected to mygitlab.com (xxx.xxx.xxx.xxx) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/cert.pem
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
и зависает, в конечном итоге выходя из:
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to mygitlab.com:443
* stopped the pause stream!
* Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to mygitlab.com:443
Это действительно достигает gitlab, но кое-что заставляет это сломаться. Например, если я сверну https://google.com,, это удастся.
На моем хосте я запускаю ту же команду для доступа к gitlab, и она успешно выполняется, и использует те же сертификаты.
silvas@md2e1hnc ~ $ curl -v --noproxy '*' https://mygitlab.com/
* Trying xxx.xxx.xxx.xxx...
* TCP_NODELAY set
* Connected to mygitlab.com (xxx.xxx.xxx.xxx) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /etc/ssl/cert.pem
CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
Итак, ни в одном из случаев я не использую прокси, я использую тот же сертификат, но один зависает, а другой успешно.
Если я удаляю настройки прокси (которые я не использую для curl!) Из докера, gitlab-runner подключается к mygitlab.com! А из моего офиса первая проблема (подключение к интернету) не существует, так что все в порядке.
Может кто-нибудь уточнить, что мне не хватает? Как конфигурация прокси мешает моему бегуну подключиться к gitlab?
Заранее спасибо.