Doporučil bych proti spuštění uživatele jenkins jako root. To by mohlo odhalit operační systém a všechna úložiště, která mohou jenkins sestavit.
Spuštění libovolného skriptu jako root představuje bezpečnostní riziko, ale o něco bezpečnější metodou by bylo udělit uživateli jenkins sudo přístup, aby spustil pouze jeden skript, aniž by potřeboval heslo.
sudo visudo
a přidejte následující:
jenkins ALL = NOPASSWD: /var/lib/jenkins/jobs/[job name]/workspace/script
Znovu zkontrolujte svou cestu prostřednictvím protokolu konzoly se skriptem, který selhal. Zde zobrazený je výchozí.
Nyní v rámci úkolu jenkins můžete zavolat sudo $WORKSPACE/your script
Musíte upravit oprávnění pro jenkins
uživatele, abyste mohli spouštět příkazy shellu. Jenkins můžete nainstalovat jako službu (stáhněte si balíček rpm), možná budete muset změnit porty, protože ve výchozím nastavení běží http na 8080 a AJP na portu 8009.
Následující proces je pro CentOS
1. Otevřete tento skript (pomocí VIM nebo jiného editoru):
vim /etc/sysconfig/jenkins
2. Najděte toto $JENKINS_USER
a změnit na „root“:
$JENKINS_USER="root"
3. Poté změňte vlastnictví Jenkins home, webroot a logs:
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
4) Restartujte Jenkinse a zkontrolujte, zda byl uživatel změněn:
service jenkins restart
ps -ef | grep jenkins