พื้นหลัง :
ฉันสร้าง app ที่เรียกว่ามีmyapp Spring-bootประกอบด้วย jar ที่สามารถเรียกใช้งานได้ด้วยตนเองและเข้ากันได้กับบริการ systemd ตอนนี้ฉันกำลังพยายามรวมเข้ากับเจนกินส์
สิ่งที่ฉันต้องการ:
ฉันต้องการให้เจนกินส์สามารถ:
- หยุดบริการ
- แทนที่โถ
- เริ่มบริการใหม่
ปัญหา:
ถึงตอนนี้เฉพาะ sudoers เท่านั้นที่สามารถเริ่ม / หยุดบริการได้ ฉันไม่ต้องการให้เจนกินส์เป็นคนโง่ (ดูเหมือนว่ายุ่ง)
โครงสร้างปัจจุบัน:
ฉันมีผู้ใช้myappที่มี/home/myappโฟลเดอร์ โถสร้างขึ้นเรียกว่าและถูกวางไว้ที่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
ฉันวางกุญแจ ssh เพื่อให้เจนกินส์สามารถเข้าสู่ระบบmyapp@myserverได้
ในฐานะที่myappเป็นเจ้าของโถผมคิดว่าอาจจะมีตัวเลือกที่ช่วยให้ผู้ที่จะโทรmyapp systemctl start/stop myappที่จริงแล้วฉันสามารถโทรsystemctl status myappแต่ไม่ได้start/stop(ถามรหัสผ่านรูท)
ข้อเสนอแนะใด ๆ
myappโทรsudo systemctlสำหรับบริการของตัวเองเท่านั้นหรือไม่
sudoยุ่งเหยิงโดยทั่วไปแล้ววิธีที่คุณควรนำสิ่งนี้ไปใช้ สร้างกลุ่มกำหนดผู้ใช้ jenkins ให้กับกลุ่มนั้นและใช้visudoคำสั่งที่ จำกัด ให้กับกลุ่มนั้นเพื่อจัดการบริการ