พื้นหลัง :
ฉันสร้าง 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
คำสั่งที่ จำกัด ให้กับกลุ่มนั้นเพื่อจัดการบริการ