背景 :
我创建了一个叫做应用程序myapp
与Spring-boot
。它包含一个可自我执行的jar,并且与systemd服务兼容。现在,我正在尝试将其与詹金斯集成。
我想要的是:
我希望詹金斯能够:
- 停止服务。
- 更换罐子。
- 重新启动服务。
问题:
到目前为止,只有sudoer可以启动/停止服务。我不希望詹金斯成为一个傻瓜(这看起来很混乱)。
当前结构:
我有一个myapp
有/home/myapp
文件夹的用户。生成的jar被调用myapp
并放在/home/myapp
。用户myapp
是生成的jar的所有者:
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
(要求输入root密码)。
有什么建议么?
@brent有没有办法允许仅针对自己的服务
—
Arnaud Denoyelle
myapp
调用sudo systemctl
?
sudo
凌乱的原因,通常这是您应该实现这种方式的方式。创建一个组,您的詹金斯用户分配到它,并使用visudo
用于管理服务提供有限的命令集,以该组