如何从Jenkins发布Play Framework应用程序以加载平衡环境

Mar*_*kku 6 load-balancing centos nightly-build playframework playframework-2.0

我刚开始为基于Play的应用程序设置防弹夜间构建环境.到目前为止,我还没有找到关于这个主题的好教程.您能否查看我正在设置的当前解决方案?谢谢.

将Play Framework设置为Jenkins服务器并创建一个作业,该作业每隔24小时从git/svn存储库创建一个分发包.

play dist
Run Code Online (Sandbox Code Playgroud)

上面的命令创建app-1.0.zip文件.文件被复制并解压缩到多个节点.我们正在使用负载均衡器.最终将文件解压缩到/home/play/webapp/app-1.0文件夹.

解压缩后,我更改了symlink/home/play/webapp/app => /home/play/webapp/app-1.0并重新加载项目.这个符号链接真的需要吗?我可以在旧文件上解压缩文件吗?我真的需要解压缩项目吗?我可以创建一个jar文件并在服务器上运行吗?

play reload
Run Code Online (Sandbox Code Playgroud)

最后删除旧的应用程序.

rm -rf /home/play/webapp/app-0.9
Run Code Online (Sandbox Code Playgroud)

版本app-0.9最初是通过运行以下脚本启动的.

/etc/init.d/play start
Run Code Online (Sandbox Code Playgroud)

脚本是以下脚本的修改:

http://monocaffe.blogspot.fr/2012/09/a-play-framework-server-setup.html

基本上脚本运行以下命令,我从app-xxx.zip文件中的启动文件中找到了该命令.

exec java $* -cp "`dirname $0`/lib/*" play.core.server.NettyServer `dirname $0`
Run Code Online (Sandbox Code Playgroud)

我还想过创建一个重载脚本,它验证播放应用程序是否正在运行,如果没有,播放应用程序启动,而不是重新启动.

/etc/init.d/play reload
Run Code Online (Sandbox Code Playgroud)

最好的问候,Markku

mch*_*chv 1

我创建了一个python 脚本来从 Jenkins 持续部署一个 play 应用程序。基本上该脚本的作用如下:

  • 轮询 Jenkins 以检查新版本是否可用
  • 如果有的话
    • 查看commit对应的代码
    • 编译
    • 创建一个包。
    • 重启播放服务器
  • 否则在下次轮询之前先休眠一段时间

重启策略目前是基本的,但您可以修改脚本以很容易地实现另一种策略。没有更多的文档,但代码配置文件是可读的和注释的。