systemd和Jenkins CI的Java可执行jar位置最佳实践?

时间:2018-04-23 16:51:06

标签: linux spring spring-boot systemd

我有Spring Boot 2可执行jar(运行命令java -jar myapp.jar ),我需要将其作为systemd服务部署到远程 linux 服务器。 Jenkins CI将管理从源构建此jar并将其复制到正确的位置并重新启动与myapp.jar关联的Java服务。 Linux服务器只有一个用户' jonas '使用 sudo特权,以及 jenkins 用户。在生产环境中,从安全最佳实践的角度来看,我需要在{strong> linux 服务器上放置myapp.jar?可能的位置:

 /var/myapplications/myapp.jar 
 /home/jona/myapplications/myapp.jar
 /opt//myapplications/myapp.jar

同样位于myapp.jar生成的日志文件的位置?

1 个答案:

答案 0 :(得分:1)

根据我的经验,我建议将所有第三方和应用程序保留在/opt/{{ app_name }}

如果您喜欢以下结构,您可以关注,这样可以更轻松地部署新工件,并可根据需要快速回滚。

/opt/{{ app_name }}/releases/{{ app_version }}

/opt/{{ app_name }}/current< - 上面的符号链接

/opt/{{ app_name }}/current/logs< - 将成为releases/{{ app_version }}

一部分的日志目录

您的部署脚本可以为此创建相应的文件夹,管理权限和符号链接。

我个人喜欢的是确保它在具有适当权限的非特权用户下运行,以确保只有特定用户可以递归地读取/执行/写入目录,其中包括可能包含某些敏感信息的日志被列为例外的一部分,但这完全取决于您的记录方式。