-1

CD过程假设我必须做以下工作: 1:检测有S3上一个新的WAR文件。 2:将它从S3存储桶中取出。 3:停止Wildfly服务器 4:替换Wildfly服务器 5上WAR文件:重新启动Wildfly服务器 enter image description hereCI /与詹金斯或厨师

该图使用詹金斯作为一个例子。 Wildfly和Appeon在EC2实例上。由于某些许可问题,我们不能每次都使用CFT创建一个新实例,因此我必须假设在此EC2实例中完成所有这些步骤。

让我们假设故障切换不是问题。

两条路线完成这件事,一种是采用詹金斯,詹金斯一样会让看表的S3桶,停止,更换,重新启动服务器和WAR,不用每次都创建一个新的实例。

另一种是在该实例使用厨师,它将检查S3存储每5分钟,例如,如果有一个新的WAR文件,把它拉下来。 (假设WAR文件名不会更改...),使用一些魔术脚本来停止服务器,替换WAR文件,重新启动服务器,所有这些都在同一个实例上运行。

因为我不知道CI/CD,詹金斯或厨师。

所以,任何建议或例子都会有很大帮助!提前致谢!

+0

>我们有插件Wildfly插件“https://wiki.jenkins.io/display/JENKINS/WildFly+Deployer+Plugin”就像我们为Tomcat,你可以配置你有配置Wildfly。 >>但我正在考虑进行本地回购检查,我们已经配置了Git Repository以检查是否发生更改。 >> –

+0

我有些怀疑 1)如果War先部署在Tomcat中,它会停止服务器并取消部署和重新部署新的战争..这个过程与WildFly不同吗? 2)你如何能够生成WAR文件?(你正在使用maven/ant的代码) 3)你为什么需要这里的厨师? –

+0

@ChandraSekhar 1)我不知道Tomcat和Wildfly,但我认为它是一样的。 2)我将使用PowerBuilder + Appeon在另一个EC2实例中生成WAR文件并上传到S3。 3)我想从S3 bucket上开始重新部署,自动完成以下所有步骤。 –

回答

1

如果这真的是你在做什么,厨师会waaaaaay矫枉过正。从cron运行一个简单的bash脚本(或者一个systemd定时器单元,如果你想成为超级花式的话)可能会很好。我会从小处着手,尽量不要使事情过度复杂化,部署流水线中越是动人的部分,越有可能破坏(通常是在最糟糕的时候)。

+0

但是,如何启动执行魔术的脚本,当它检测到S3桶上的对象被覆盖或存在新创建的对象时。 –

+0

可能只是一个cron工作。 – coderanger

1

怎么看,它会将war文件的过程中,而不是看一个S3桶。将部署设置为上传过程的下游。然后,您的停止服务和部署可以通过jenkins成为一堆shell脚本。它应该只是停止你的服务,可能会使用ssh。 Ssh和新的战争卷曲/ wget(通过删除旧战争)& ssh开始服务......你不要让事情变得复杂,让厨师参与其中。