Zmień użytkownika Gitlab Ci Runner
Obecnie kiedy uruchamiam build w GitlabCI to działa pod gitlab-runner user. Chcę zmienić użytkownika wewnętrznego firmy. Nie znalazłem żadnego parametru do /etc/gitlab-runner / config.toml czyli Rozwiąż to.
Moja obecna konfiguracja:
concurrent = 1
[[runners]]
name = "deploy"
url = ""
token = ""
executor = "shell"
7 answers
Running ps aux
you can see:
/usr/bin/gitlab-ci-multi-runner run --working-directory /home/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog --user gitlab-runner
Usługa działa z opcją --user
.
Więc zmieńmy to, to zależy od tego, co distro. ty nim zarządzasz. Jeśli systemd, istnieje plik:
/ etc / systemd / system / gitlab-runner.serwis:
[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/bin/gitlab-ci-multi-runner "run" "--working-directory" "/home/gitlab-runner" "--config" "/etc/gitlab-runner/config.toml" "--se
Bingo, zmieńmy teraz ten plik:
gitlab-runner uninstall
gitlab-runner install --working-directory /home/ubuntu --user ubuntu
Zrestartuj maszynę lub przeładuj usługę (tj. systemctl daemon-reload
), i voilà!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-27 20:39:20
Zauważ, że podczas instalacji z konkretnym użytkownikiem (--user), po każdej aktualizacji, powróci on z powrotem do oryginalnego skryptu systemd, a więc z powrotem do używania gitlab-runner user.
W celu utrzymania zmiany użytkownika w różnych aktualizacjach, za pomocą przesłonięcia systemd (centos7) można użyć tych kroków (zakładając, że usługa jest na /etc/systemd/system/gitlab-runner.service
):
- Utwórz katalog
/etc/systemd/system/gitlab-runner.service.d
. -
Utwórz plik
/etc/systemd/system/gitlab-runner.service.d/exec_start.conf
o treści:[Service] ExecStart= ExecStart=/usr/lib/gitlab-runner/gitlab-runner "run" "--working-directory" "/home/ubuntu" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--syslog" "--user" "ubuntu"
Wykonaj
systemctl daemon-reload
Teraz, aby sprawdzić, czy to działa, możesz to zrobić:
Reinstall GitLab Runner package
gitlab-runner uninstall
and thengitlab-runner install
-
Sprawdź
ps aux | grep gitlab
i potwierdź, że używany jest właściwy użytkownik
Źródło: https://gitlab.com/gitlab-org/gitlab-runner/issues/3675
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-22 17:06:57
[DEPRECATED ANSWER]
Znalazłem rozwiązanie, które nie jest najlepszym pactrice, ale go rozwiązałem. Muszę użyć SSH executer i ssh do localhost. Wymagane jest dodanie gitlab-runner id_rsa.pub to the user ' s authorized_keys what you want to use. Jest mój Rozszerzony kod:
concurrent = 1
[[runners]]
name = "deploy"
url = ""
token = ""
executor = "ssh"
[runners.ssh]
user = "user"
host = "localhost"
port = "22"
identity_file = "/home/gitlab-runner/.ssh/id_rsa"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-13 14:23:41
Po zarejestrowaniu gitlab-runner
(tak, zostanie on zainstalowany w katalogu użytkownika gitlab-runner
i katalogu roboczym /home/gitlab-runner
) możesz wykonać następujące czynności, aby zmienić użytkownika runnera
gitlab-runner uninstall
gitlab-runner install --working-directory <existing-path> --user <any-existing-user>
# eg: gitlab-runner install --working-directory /home/ec2-user --user ec2-user
Następnie uruchom ponownie usługę
service gitlab-runner restart
Uwaga: nie musisz edytować
/etc/systemd/system/gitlab-runner.service
w tym celu, ponieważ jest ona aktualizowana po ponownym uruchomieniu usługi jak powyżej
Aby sprawdzić, czy konfiguracje są odzwierciedlone, Uruchom
ps aux | grep gitlab
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-03 20:58:49
Tak na przyszłość, robiłem test z sklonowaną wersją mojej konfiguracji, jeśli nazwa domeny nie wskazuje na serwer, z którym pracujesz, gitlab może uznać Twoje runnery za offline. Jeśli masz inną (skopiowaną) instancję działającą pod adresem ip, na który wskazuje Domena i nie ma blokowania zapory, polecenie gitlab-runner verify powie, że Twoje runnery żyją.
Rozwiązaniem może być dodanie domeny wskazującej na 127.0.0.1 do pliku hosts. będziesz musiał uruchom ponownie instancję gitlab i runners.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-09 09:24:26
Dla najnowszej wersji gitlab-runner należy zmodyfikować argumenty systemowe w pliku /etc/default/gitlab-runner
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-27 23:59:59
Oto przykład dla Docker gitlab-runner:
Zbuduj swój własny obraz runnera na podstawie pliku Dockerfile z następującą treścią
FROM gitlab/gitlab-runner
# add new user (if needed)
RUN useradd -u 998 gitlab-www && mkdir /home/gitlab-www && \
chown gitlab-www /home/gitlab-www && chmod u+rwx /home/gitlab-www
# need to replace entrypoint to force new created user over gitlab-runner
ENTRYPOINT /usr/bin/dumb-init /entrypoint run --user=gitlab-www --working-directory=/home/gitlab-www
(zaktualizuj -u 998
i gitlab-www
zgodnie z potrzebami)
.gitlab-ci.Skrypty yml działają teraz jako użytkownik gitlab-www
. Jeśli ten ma ten sam uid co montowanie hosta, możesz również wdrożyć bezpośrednio do folderów hosta.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-23 19:48:50