Фон:
Я створив додаток під назвою myapp
з Spring-boot
. Він складається з самостійно виконуваної банки та сумісний із системними службами. Зараз я намагаюся інтегрувати це з джинкінами.
Що я хочу:
Я хочу, щоб дженкіни вміли:
- зупинити послугу.
- замініть банку.
- перезапустити послугу.
Проблема:
На сьогоднішній день лише судорожники можуть запускати та зупиняти послуги. Я не хочу, щоб джинкіни були судором (це здається безладним).
Поточна структура:
У мене є користувач, myapp
який має /home/myapp
папку. Сформована банка викликається myapp
і розміщується на /home/myapp
. Користувач myapp
є власником створеної банки:
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, щоб jenkins міг увійти як myapp@myserver
.
Оскільки myapp
є власником банки, я думаю, що може бути варіант, який дозволяє користувачеві myapp
телефонувати systemctl start/stop myapp
. Насправді я можу дзвонити, systemctl status myapp
але ні start/stop
(запитується пароль користувача).
Будь-які пропозиції?
myapp
телефонувати sudo systemctl
лише за власну службу?
sudo
безладним, це, як правило, так, як вам слід реалізувати щось подібне. Створіть групу, призначте її своєму користувачеві jenkins та за допомогоюvisudo
надайте обмежену команду для цієї служби для керування послугою