Фон:
Я створив додаток під назвою 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надайте обмежену команду для цієї служби для керування послугою