Latar Belakang :
Saya membuat aplikasi bernama myappwith Spring-boot. Ini terdiri dari toples yang dapat dieksekusi sendiri dan kompatibel dengan layanan systemd. Sekarang, saya mencoba mengintegrasikannya dengan jenkins.
Apa yang saya inginkan:
Saya ingin jenkins dapat:
- hentikan layanan.
- ganti toples.
- mulai ulang layanan.
Masalah:
Hingga kini, hanya sudoer yang dapat memulai / menghentikan layanan. Saya tidak ingin jenkins menjadi sudoer (sepertinya berantakan).
Struktur saat ini:
Saya memiliki pengguna myappyang memiliki /home/myappfolder. Guci yang dihasilkan disebut myappdan ditempatkan di /home/myapp. Pengguna myappadalah pemilik toples yang dibuat:
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
Saya menempatkan kunci ssh sehingga jenkins dapat login sebagai myapp@myserver.
Seperti myapppemilik toples, saya pikir mungkin ada opsi yang memungkinkan pengguna myappuntuk menelepon systemctl start/stop myapp. Sebenarnya, saya bisa menelepon systemctl status myapptetapi tidak start/stop(kata sandi root diminta).
Ada saran?
myapppanggilan sudo systemctlhanya untuk layanannya sendiri?
sudoberantakan, umumnya Anda harus menerapkan sesuatu seperti ini. Buat grup, tetapkan pengguna jenkins Anda ke dalamnya dan gunakanvisudomenyediakan perintah terbatas yang ditetapkan untuk grup itu untuk mengelola layanan