Próbuję zautomatyzować rejestrację biegaczy, które prowadzone w lokalnym otoczeniu dokująca, za pomocą skryptu. Skrypty prowadzi rejestrację nie-interaktywnie w następujący sposób:

gitlab-runner -l debug register --non-interactive --url $GITLAB_URL --registration-token $TOEKN \
  --executor docker --docker-image python3 --name TestRunner --docker-pull-policy always \
  --locked=false --run-untagged=false --docker-privileged=false \
  --limit 0 \
  --tag-list general,test

Nadal nie mogłem zarejestrować biegacza za pomocą tego skryptu podczas wykonywania interaktywnie zakończenia pomyślnie. Błąd, który otrzymuję podczas rejestracji biegacza za pomocą polecenia powyżej:

Runtime platform                                    arch=amd64 os=linux pid=57 revision=05161b14 version=12.4.1
Checking runtime mode                               GOOS=linux uid=0
Running in system-mode.                            

Dialing: tcp gitlab.com:443 ...                    
ERROR: Registering runner... forbidden (check registration token)  runner=--execut
PANIC: Failed to register this runner. Perhaps you are having network problems 

Jaka jest różnica, która powoduje, że rejestracja zawiedzie podczas korzystania z nieinteractorycznego skryptu zamiast metody interaktywnej?

0
Badr 2 grudzień 2019, 12:40

1 odpowiedź

Najlepsza odpowiedź

Problemem czytał samą zmienną tokena rejestracji. Więc najpierw czytając go do cytowanej zmiennej staje się użyteczny:

t="$TOKEN"
gitlab-runner -l debug register --non-interactive --url ${GITLAB_URL} --registration-token ${t} \
  --executor docker --docker-image python3 --name TestRunner --docker-pull-policy always \
  --locked=false --run-untagged=false --docker-privileged=false \
  --limit 0 \
  --tag-list general,test
0
Badr 2 grudzień 2019, 10:12