Ruby on rails Beanstalk:使用新版本更新环境时出错

Ruby on rails Beanstalk:使用新版本更新环境时出错,ruby-on-rails,amazon-ec2,amazon-web-services,Ruby On Rails,Amazon Ec2,Amazon Web Services,我正在尝试将RubyonRails应用程序部署到AWS Beanstalk。war是使用Jenkins中的warble生成的,然后war文件被复制到我们的AWS S3存储桶中 我正在使用AWS Beanstalk命令行工具创建Beanstalk应用程序、应用程序版本和环境。第一个版本已正确部署 然后我创建一个新的应用程序版本,并尝试用新版本更新环境。未部署新版本。在事件中,引发以下错误: Encountered errors while attempting to deploy version

我正在尝试将RubyonRails应用程序部署到AWS Beanstalk。war是使用Jenkins中的warble生成的,然后war文件被复制到我们的AWS S3存储桶中

我正在使用AWS Beanstalk命令行工具创建Beanstalk应用程序、应用程序版本和环境。第一个版本已正确部署

然后我创建一个新的应用程序版本,并尝试用新版本更新环境。未部署新版本。在事件中,引发以下错误:

Encountered errors while attempting to deploy version to 1 running EC2 instances
我也尝试从头开始创建所有内容,但仍然抛出了上面的第二个版本错误

注意:我们使用的是自定义AMI,这是我们调整并创建图像以供使用的BS AMI

有人能帮我吗

谢谢


Noman A.

我是在测试的基础上回答这个问题的,因此任何寻求解决方案的人都可能会发现它很有用

正如问题中提到的,我使用的是定制beanstalk ami[Tomcat7堆栈]。自定义是按照以下步骤完成的:

  • 创建Beanstalk应用程序,创建此应用程序的版本,并通过传递诸如KeyPair之类的选项来启动Beanstalk环境(不是自定义的,默认情况下由AWS提供),这样您就可以使用相同的选项来ssh到实例中

  • 注意上面实例的AMI id,并启动此AMI的常规EC2(不是Beanstalk)实例

  • 根据您的需要定制EC2实例,并在完成后创建此实例的EBS映像。停止此实例,您可以在对图像满意后终止它

  • 同时终止Beanstalk实例

  • 启动新的Beanstalk环境,但这次传递在步骤3中创建的映像的ami id

  • 我已经为Tomcat6和7创建了定制的beanstalk图像。对于我的问题,我发现问题发生在我为Tomcat7使用定制的ami时。更新不起作用。但是当我使用beanstalk默认实例(不是我的自定义映像)时,更新工作正常

    然而,对于Tomcat6定制的图像,更新工作正常。因此,问题似乎是针对Tomcat7定制的AWS Beanstalk默认AMI

    我现在把这个标记为已回答


    -Noman A.

    我对PHP实例也有同样的问题。除了nr2,我尝试了一个来自AMAZON的可用实例phpbeanstackami之外,其他步骤都没有进行。我认为问题是由“yum update”引起的。我将从头开始尝试并分享将要发生的事情,让我们知道会发生什么,并看看这里的人是否能提供帮助。我实际上也做了同样的步骤,但我没有做完整的“yum update”,而是只更新了PHP。成功了!!!这表明更新整个系统会打破Beanstalk的hostmanager所需的一些依赖关系。希望这对一些人有帮助,甜心!感谢分享您的经验和解决方案!在自定义AMI上运行“yum update”时,我遇到了类似的问题。运行更新后,AMI不再与EBS一起工作。