Amazon web services 与Jenkins或Chef合作的CI/CD流程

Amazon web services 与Jenkins或Chef合作的CI/CD流程,amazon-web-services,jenkins,continuous-integration,chef-infra,continuous-deployment,Amazon Web Services,Jenkins,Continuous Integration,Chef Infra,Continuous Deployment,假设我必须做以下工作: 1:检测S3上是否有新的WAR文件。 2:从S3铲斗中拔出。 3:停止Wildfly服务器 4:替换Wildfly服务器上的WAR文件 5:重新启动Wildfly服务器 该图以詹金斯为例。Wildfly和Appeon位于EC2实例上。由于一些许可问题,我们不能每次都使用CFT创建一个新实例,因此我必须假设所有这些步骤都在这个EC2实例中完成 让我们假设故障转移不是问题 有两种方法可以实现这一点,一种是使用Jenkins,就像Jenkins会监视S3存储桶一样,停止、替换

假设我必须做以下工作: 1:检测S3上是否有新的WAR文件。 2:从S3铲斗中拔出。 3:停止Wildfly服务器 4:替换Wildfly服务器上的WAR文件 5:重新启动Wildfly服务器

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

让我们假设故障转移不是问题

有两种方法可以实现这一点,一种是使用Jenkins,就像Jenkins会监视S3存储桶一样,停止、替换、重新启动服务器和WAR,而每次都不创建新实例

另一个是在该实例上使用Chef,它将每5分钟检查一次S3 bucket,例如,如果有一个新的WAR文件,将其下拉。(假设WAR文件名没有更改…),使用一些魔术脚本停止服务器,替换WAR文件,重新启动服务器,所有这些都在同一个实例上运行

因为我不认识CI/CD、詹金斯或厨师


因此,任何建议或例子都会大有帮助!提前谢谢

如果这真的是你要做的全部,厨师就太过分了。从cron运行一个简单的bash脚本(或者如果您想变得非常花哨,可以使用systemd定时器)可能就可以了。我会从小事做起,尽量不让事情过于复杂,部署管道中移动的部分越多,可能发生的故障就越多(通常是在最糟糕的时候)。

不如看上传war文件的过程,而不是看s3存储桶。将部署设置为上载进程的下游。然后,通过jenkins,停止服务和部署可以是一堆shell脚本。它应该停止您的服务,可能是使用ssh。Ssh和do curl/wget的新war(通过删除旧war)&Ssh来启动服务。。。你不需要通过让厨师参与来让事情变得复杂

>我们为Wildfly插件“”提供了插件,就像我们为Tomcat提供的插件一样,您可以在那里配置您的Wildfly配置。>>但我认为对于本地回购检查,我们有Git存储库的配置,用于检查是否发生了更改。>>我有一些疑问1)如果首先在Tomcat中部署War,它将停止服务器并取消部署并重新部署新的War。。WildFly的这个过程不同吗??2) 你是如何生成WAR文件的?(使用maven/ant的代码)3)你为什么需要chef来这里?@ChandraSekhar 1)我既不知道Tomcat也不知道Wildfly,但我认为是一样的。2) 我将使用PowerBuilder+Appeon在另一个EC2实例中生成WAR文件并上传到S3。3) 我想从上传到重新部署的S3 bucket开始,自动执行以下所有步骤。这充其量是基于意见的,因此根据StackOverflow自身的规则,对StackOverflow来说不是一个好问题:-/如果关闭,可能希望交叉发布到DevOps stackexchange。但是如何启动执行此神奇操作的脚本,当它检测到S3 bucket上的对象被覆盖或有一个新创建的对象时。可能只是一个cron作业。