Arka fon :
Aradım bir uygulama oluşturdu myapp
ile 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ı:
myapp
Bir /home/myapp
klasörü olan bir kullanıcı var . Üretilen kavanoz çağırılır myapp
ve yerleştirilir /home/myapp
. Kullanıcı myapp
oluş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
.
myapp
Kavanozun sahibi olduğu gibi kullanıcının myapp
aramasına izin veren bir seçenek olabileceğini düşünüyorum systemctl start/stop myapp
. Aslında arayabilirim systemctl status myapp
ama arayamıyorum start/stop
(root şifresi soruluyor).
Baska öneri?
myapp
için arama yapmanın bir yolu var mı sudo systemctl
?
sudo
Dağı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ınvisudo
ve hizmetini yönetmek için bu gruba sınırlı bir komut sağlayın kullanarak