Uruchomić polecenie powłoki w jenkins jako użytkownik root?


Niedawno zacząłem używać Jenkinsa do integracji. Wszystko było w porządku, dopóki nie uruchomiłem zadań w węźle głównym bez polecenia powłoki, ale muszę uruchamiać zadania zarówno na węźle głównym, jak i podrzędnym, który zawiera polecenia powłoki. Nie mogę uruchomić tych poleceń powłoki jako root. próbowałem
  • Korzystanie z
    kluczy SSH
    .
  • Ustawianie nazwy użytkownika w poleceniach powłoki.
  • Korzystanie z
    sudo
    .

Za każdym razem, gdy używam którejkolwiek z powyższych metod, pojawia się błąd
Odmowa uprawnień
.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Radziłbym nie uruchamiać użytkownika jenkins jako root. Może to narazić system operacyjny i całe repozytorium, które może zbudować Jenkins.
Uruchamianie dowolnego skryptu jako root jest zagrożeniem dla bezpieczeństwa, ale nieco bezpieczniejszym sposobem byłoby udostępnienie użytkownikowi sudo jenkinsa dostępu tylko do jednego skryptu bez konieczności podawania hasła.
sudo visudo

i dodaj:
jenkins ALL = NOPASSWD:/var/lib/jenkins/jobs/[job name]/workspace/script

Dokładnie sprawdź ścieżkę w dzienniku konsoli nieudanego skryptu kompilacji. Ten pokazany tutaj jest domyślny.
Teraz w zadaniu jenkins możesz wywołać
sudo $ WORKSPACE/swój skrypt
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Musisz zmienić uprawnienia użytkownika
jenkins
, aby móc uruchamiać polecenia powłoki.
Możesz zainstalować usługę jenkins jako (pobierz pakiet rpm), być może będziesz musiał zmienić porty, ponieważ domyślnie uruchamia http na 8080 i AJP na portach 8009.
Poniższy proces dotyczy
CentOS

1. Otwórz ten skrypt (za pomocą VIM lub innego edytora):
vim/etc/sysconfig/jenkins

2. Znajdź
$ JENKINS_USER
i zmień „root”:
$JENKINS_USER="root"

3. Po zmianie właściciela Jenkins home, Webroot i logi:
chown -R root:root/var/lib/jenkins
chown -R root:root/var/cache/jenkins
chown -R root:root/var/log/jenkins

4) zrestartuj Jenkins i sprawdź, czy użytkownik się zmienił:
service jenkins restart
ps -ef | grep jenkins


Powinieneś teraz móc uruchamiać zadania Jenkinsa jako root, a wszystkie polecenia powłoki będą działać jako
root
.
>
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:


W systemie Linux spróbuj wykonać następujące czynności

:-
To zadziałało dla mnie.
  • sudo vi/etc/default/jenkins
  • $JENKINS_USER="root"
  • sudo chaun -R root: root/var/lib/jenkins sudo chaun -R root: root/var/cache/jenkins sudo chaun-R root: root/var/log/jenkins
  • Uruchom ponownie usługę jenkins ps-ef | grep jenkins
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Inną opcją jest skonfigurowanie jenkinsa „Slave”, który faktycznie działa jako root na serwerze głównym, i ograniczenie go do powiązanych zadań, a następnie skierowanie zadania do tego niewolnika. Daleko od ideału, ale zdecydowanie szybka naprawa.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wystarczy uruchomić polecenie powłoki na komputerze z systemem Linux, korzystając z uprawnień Jenkins Root.
Kroki :
1)
sudo vi/etc/sudoers
2) dodaj wiersz:
jenkins ALL=NOPASSWD:/path of script/

3) z Jenkinsa, uruchom skrypt na zdalnej powłoce za pomocą sudo.
na przykład:
sudo ps -ef
4) Zbuduj teraz pracę Jenkinsa.
To zadanie uruchamia skrypt na komputerze z systemem Linux z uprawnieniami superużytkownika.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się