我正在尝试将Ruby-on-Rails应用程序部署到AWS Beanstalk。使用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。
答案 0 :(得分:2)
我在测试的基础上回答这个问题,所以任何寻找解决方案的人都会发现它很有用。
正如问题所述,我使用的是自定义beanstalk ami [Tomcat 7堆栈]。按照以下步骤完成定制:
创建Beanstalk应用程序,为此应用程序创建一个版本,并通过传递KeyPair等选项启动beanstalk环境(未自定义,默认为AWS提供),以便您可以使用相同的方法将ssh引入实例。 / p>
请注意上述实例的AMI-id并启动此AMI的常规EC2(Not Beanstalk)实例。
根据需要定制EC2实例,并在完成后创建此实例的EBS图像。停止此实例,您可以在对图像感到满意后终止它。
也终止Beanstalk实例。
启动新的Beanstalk环境,但这次会传递在步骤3中创建的图像的ami-id。
我已经为tomcat 6和7创建了自定义beanstalk映像。对于我的问题,我发现当我使用tomcat 7的自定义ami时问题就出现了。更新只是不起作用。但是当我使用beanstalk默认实例(不是我的自定义图像)时,更新工作正常。
但是,使用tomcat 6自定义图像,更新工作正常。因此,问题似乎是针对Tomcat 7自定义的AWS Beanstalk默认AMI。
我现在正在回答这个问题。
-Noman A。