バックグラウンド :
私はと呼ばれるアプリを作成myapp
してをSpring-boot
。自己実行可能なjarで構成され、systemdサービスと互換性があります。今、私はそれをジェンキンスと統合しようとしています。
私が欲しいもの:
私はジェンキンにできることをしたい:
- サービスを停止します。
- jarを交換します。
- サービスを再起動します。
問題:
今までは、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
jenkinsがとしてログインできるように、sshキーを配置しましたmyapp@myserver
。
myapp
jarファイルの所有者である、私は、ユーザーを許可するオプションがあるかもしれないと思いmyapp
コールにsystemctl start/stop myapp
。実際には、電話をかけることはできますsystemctl status myapp
が、電話をかけることはできませんstart/stop
(rootパスワードが要求されます)。
助言がありますか?
@brent 独自のサービスのみ
—
アルノーデノイエル16
myapp
を呼び出すことを許可する方法はありsudo systemctl
ますか?
sudo
面倒だと考える理由はわかりませんが、これは一般的にこのようなものを実装する方法です。グループを作成し、jenkinsユーザーをそのグループに割り当てvisudo
、サービスを管理するためにそのグループに限定されたコマンドセットを提供する