【发布时间】:2017-08-17 14:27:51
【问题描述】:
假设我必须做以下工作: 1:检测到 S3 上有一个新的 WAR 文件。 2:将其从 S3 存储桶中拉出。 3:停止 Wildfly 服务器 4:替换Wildfly服务器上的WAR文件 5:重启 Wildfly 服务器
该图以 Jenkins 为例。 Wildfly 和 Appeon 位于 EC2 实例上。由于一些许可问题,我们不能每次都使用 CFT 创建一个新实例,所以我必须假设所有这些步骤都在这个 EC2 实例中完成。
让我们假设故障转移不是问题。
有两种方法可以完成这项工作,一种是使用 Jenkins,就像 Jenkins 会监视 S3 存储桶,并停止、替换、重新启动服务器和 WAR,而无需每次都创建新实例。
另一个在那个Instance上使用Chef,它会每5分钟检查一次S3存储桶,例如,如果有一个新的WAR文件,就把它拉下来。 (假设 WAR 文件名没有改变......),使用一些魔法脚本停止服务器,替换 WAR 文件,重新启动服务器,都在同一个实例上运行。
因为我不了解 CI/CD、Jenkins 或 Chef。
因此,任何建议或示例都会有很大帮助!提前致谢!
【问题讨论】:
-
> 我们有 Wildfly 插件 'wiki.jenkins.io/display/JENKINS/WildFly+Deployer+Plugin' 就像我们的 Tomcat 一样,你可以在那里配置你的 Wildfly 配置。 >> 但我正在考虑本地回购检查,我们有 Git 存储库的配置,用于检查是否发生更改。 >>
-
我有一些疑问 1)如果War首先部署在Tomcat中,它将停止服务器并取消部署并重新部署新的war..这个过程在WildFly中是否有所不同? 2)你是如何生成WAR文件的?(你正在使用maven/ant的代码)3)你为什么需要厨师?
-
@ChandraSekhar 1) 我既不知道 Tomcat 也不知道 Wildfly,但我认为它是一样的。 2) 我将使用 PowerBuilder + Appeon 在另一个 EC2 实例中生成 WAR 文件并上传到 S3。 3)我想从上传的S3存储桶开始重新部署,自动执行以下所有步骤。
-
这充其量是基于意见的,因此根据 StackOverflow 自己的规则,这不是一个好问题:-/ 如果关闭,可能希望交叉发布到 DevOps stackexchange。
标签: amazon-web-services jenkins continuous-integration chef-infra continuous-deployment