배경 :
나는라는 응용 프로그램 생성 myapp
과를 Spring-boot
. 자체 실행 가능한 jar로 구성되며 시스템 서비스와 호환됩니다. 이제 젠킨스와 통합하려고합니다.
내가 원하는 것 :
젠킨스가 할 수 있기를 바랍니다.
- 서비스를 중지하십시오.
- 병을 교체하십시오.
- 서비스를 다시 시작하십시오.
문제:
지금까지 sudoers만이 서비스를 시작 / 중지 할 수 있습니다. 젠킨스가 sudoer가되는 것을 원하지 않습니다 (지저분 해 보입니다).
현재 구조 :
폴더 가있는 사용자 myapp
가 있습니다 /home/myapp
. 생성 된 jar이 호출 myapp
되고에 배치됩니다 /home/myapp
. 사용자 myapp
는 생성 된 jar의 소유자입니다.
myapp@myserver:~/backend$ ll
total 53900
drwxrwxr-x 2 myapp myapp 4096 Apr 25 17:09 ./
drwxr-xr-x 6 myapp myapp 4096 Apr 25 17:08 ../
-rw-rw-r-- 1 myapp myapp 511 Apr 20 16:13 application.properties
-rwxr--r-- 1 myapp myapp 55175294 Apr 20 19:06 backend-1.0-SNAPSHOT.jar*
lrwxrwxrwx 1 myapp myapp 24 Apr 20 19:20 myapp -> backend-1.0-SNAPSHOT.jar*
-rw-r--r-- 1 myapp myapp 179 Apr 20 19:26 myapp.service
jenkins가로 로그인 할 수 있도록 ssh 키를 배치했습니다 myapp@myserver
.
myapp
항아리의 소유자와 마찬가지로 사용자 myapp
가 전화를 걸 수있는 옵션이 있다고 생각합니다 systemctl start/stop myapp
. 실제로 전화를 걸 수는 systemctl status myapp
없지만 start/stop
루트 암호를 묻습니다.
어떤 제안?
@brent 자체 서비스로만
—
Arnaud Denoyelle
myapp
전화를 걸 수있는 방법이 sudo systemctl
있습니까?
sudo
지저분한 것을 고려해야 할 이유를 보지 못합니다. 일반적으로 이와 같은 것을 구현해야합니다. 그룹을 생성하고, 젠킨스 사용자를 그룹에 할당visudo
하고 서비스 관리를 위해 해당 그룹에 제한된 명령 세트를 제공하십시오