Arka fon :
Aradım bir uygulama oluşturdu myappile Spring-boot. Kendiliğinden çalıştırılabilen bir kavanozdan oluşur ve sistem servisleri ile uyumludur. Şimdi, onu jenkins ile bütünleştirmeye çalışıyorum.
İstediğim:
Jenkins’in şunları yapabilmesini istiyorum:
- Hizmeti durdur.
- kavanozu değiştirin.
- servisi yeniden başlatın.
Sorun:
Şimdiye kadar sadece sudo'lar hizmetleri başlatabilir / durdurabilir. Jenkins'in bir sudoer olmasını istemiyorum (dağınık görünüyor).
Mevcut yapı:
myappBir /home/myappklasörü olan bir kullanıcı var . Üretilen kavanoz çağırılır myappve yerleştirilir /home/myapp. Kullanıcı myappoluşturulan kavanozun sahibi:
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 olarak giriş yapabilmek için bir ssh anahtarı yerleştirdim myapp@myserver.
myappKavanozun sahibi olduğu gibi kullanıcının myapparamasına izin veren bir seçenek olabileceğini düşünüyorum systemctl start/stop myapp. Aslında arayabilirim systemctl status myappama arayamıyorum start/stop(root şifresi soruluyor).
Baska öneri?
myappiçin arama yapmanın bir yolu var mı sudo systemctl?
sudoDağınıklığı düşünmenin nedenini görmüyorum , genellikle böyle bir şeyi uygulamanız gerekir. Bir grup oluşturun, jenkins kullanıcınızı ona atayınvisudove hizmetini yönetmek için bu gruba sınırlı bir komut sağlayın kullanarak