UmY*_*eah 8 deployment automation
我需要创建一些方法来获取在Linux服务器上部署的本地WAR文件.到目前为止我一直在做的是以下过程:
tail确保服务器正确停止. tail确保服务器正确启动. 这些东西都相对简单.而且我确信有一百万种不同的方法可以做到这一点.我想听听一些选择.我的第一个想法是Bash脚本.我对脚本编写的经验很少,但认为这是一种很好的学习方法.我也有兴趣用Ruby/Python或类似这样的东西来做这件事,因为我几乎没有这些语言的经验.我认为作为一个年轻的开发人员,我绝对应该得到某种脚本语言.我可能也对某些可以为我做这些事情的软件解决方案感兴趣,虽然我认为脚本编写是一种更好的方式,为了简单和可定制性(我可能刚刚提出这个词).
对于那些使其成为现实的人的一些实际问题.您建议使用哪种语言来自动执行上面列出的流程?这对我来说是一个学习Bash/Ruby/Python /其他东西的好机会,还是我应该花10分钟的时间每周手工操作2-3次?我认为答案显然不是.我可以从计算机中自动执行这些操作,还是需要设置脚本以在Linux服务器中运行?电子邮件是我可以自动化的,还是我最好自己做这个部分?
我会这样做几乎肯定会出现更多的问题,所以提前做好准备.
我应该提一下,我正在使用Maven来构建WAR.所以如果我能用Maven完成所有这些,请告诉我.
这对您的需求来说可能过于繁重,但您是否看过CruiseControl或Hudson等构建自动化工具?您可能还想查看Integrity,它更轻量级并且使用Ruby编写(而不是像我提到的其他两个那样使用Java).这些工具可以完成您在问题中所需的所有内容以及更多方式.
编辑
既然你希望这更像是脚本语言的学习练习,而不是实际的解决方案,那么这就是你的想法.不用手动上传每次你的服务器你的战争,建立一个水银服务器上的存储库,并创建一个钩子(见这里,这里,尤其是这里的每个时间)执行一个Ruby(或蚂蚁或Maven)脚本变更从远程计算机(即您的本地工作站)推送.您可以编写脚本,以便它执行上面列表中的所有操作项.这样,您将学习三个新东西:分布式版本控制范例,如何自定义所述工具,以及如何编写Ruby脚本以与您的操作系统进行交互(因为您的操作非常庞大).