Compania mea a schimbat Autoritatea de Certificare (era un singur CA și acum avem un CA rădăcină și un CA intermediar). Am schimbat cu succes configurația în instanța GitLab și am trecut la runner (adică pe un Ubuntu 18.04.5 LTS). Am încercat să urmăresc Documente GitLab fara succes.
Am urmat abordarea implicită Aici care spune „Implicit - Citiți certificatul de sistem”, așa că am adăugat certificatele (CA și Intermediar) la lista CA Ubuntu. Totul părea să funcționeze, deoarece alergătorul apare în GitLab.
Încep un loc de muncă și primesc:
Rulează cu gitlab-runner 11.5.0 (3afdaba6)
pe RUN01 12ccbb74
Folosind Docker executor cu imagine node:latest...
Se trage nodul de imagine docker: cel mai recent...
Se utilizează imaginea docker sha256:ab773999a02271b25a9f3bce46018fc3ad46a7f922a5e3e8712b6d1c7087c415 pentru node:latest...
Rulează pe runner-12ccbb74-project-73-concurrent-0 prin (...)...
00:02
Se preiau modificări...
00:01
HEAD este acum la 60b6860 Actualizați dependența mocha la v9
fatal: nu se poate accesa „https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@(...).git/”: problemă cu certificatul SSL: nu se poate obține certificatul emitentului
EROARE: Lucrarea eșuată: codul de ieșire 1
Apoi am adăugat (pe instanța GitLab) lanțul complet la fișierul de certificat, iar eroarea s-a schimbat în Problemă cu certificatul SSL: certificat autosemnat în lanțul de certificate
.
Logica mea*: Funcționează pentru Ubuntu, dar nu pentru Docker. Așa că m-am mutat la Certificatele TLS de încredere pentru executanții Docker și Kubernetes secțiune.
Ce am incercat pana acum, fara succes:
- Am adăugat certificatul Root CA la
/etc/gitlab-runner/certs/ca.crt
.
- Am încercat și cu un fișier cu CA rădăcină și CA intermediară în lanț.
- Am adăugat
volumes = ["/cache", "/path/to-ca-cert-dir/ca.crt:/etc/gitlab-runner/certs/ca.crt:ro"]
la config.toml
fişier. Dar sunt aproape sigur că ar trebui să înlocuiesc /cale/la-ca-cert-dir
cu ceva. Doar că nu știu ce.
*Actualizare: Când am instalat GitLab Runner, l-am urmărit Instalați folosind depozitul GitLab pentru Debian/Ubuntu/CentOS/RedHat, așa că instrucțiunile Docker/K8s nu aveau sens. Am postat un Răspuns despre cum am reușit să rezolv asta.