我用Spring-boot创建了一个名为myapp的应用程序.它由一个自执行jar组成,与systemd服务兼容.现在,我正在尝试将其与jenkins整合.
我想要的是:
我希望jenkins能够:
>停止服务.
>更换罐子.
>重启服务.
问题:
到目前为止,只有sudoers可以启动/停止服务.我不希望jenkins成为一个sudoer(它看起来很混乱).
目前的结构:
我有一个用户myapp,它有一个/ home / myapp文件夹.生成的jar称为myapp,位于/ home / myapp.用户myapp是生成的jar的所有者:
myapp@myserver:~/backend$lltotal 53900drwxrwxr-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是jar的所有者,我认为可能有一个选项允许用户myapp调用systemctl启动/停止myapp.实际上,我可以调用systemctl status myapp但不能启动/停止(询问root密码).
有什么建议?
解决方法 sudo是要走的路.创建一个新组(例如appadmin),将jenkins用户放入其中,并使用visudo添加一个包含有限命令列表的新条目,例如:Cmnd_Alias MYAPP_CMNDS = /bin/systemctl start myapp,/bin/systemctl stop myapp%appadmin ALL=(ALL) MYAPP_CMNDS
如果您希望appadmin组能够在不输入密码的情况下 *** 作服务(例如,如果用户仅通过SSH密钥进行身份验证,则非常有用),
Cmnd_Alias MYAPP_CMNDS = /bin/systemctl start myapp,/bin/systemctl stop myapp%appadmin ALL=(ALL) nopASSWD: MYAPP_CMNDS总结
以上是内存溢出为你收集整理的systemd – 允许非root用户重新启动服务全部内容,希望文章能够帮你解决systemd – 允许非root用户重新启动服务所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)