我是Elastic Beanstalk的新手,正在尝试推出Rails 4应用。我在这里遵循了指南http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-reference-get-started.html但是当我去做
时git aws.push
它告诉我我的更新有错误。
[Instance: i-a6482b8b Module: AWSEBAutoScalingGroup ConfigSet: null] Command failed on instance. Return code: 1 Output: Error occurred during build: Command hooks failed .
ebs日志只是挤满了我不熟悉的许多令人困惑的项目。很难说分享什么,但这两个领域脱颖而出
很多不在这里,所以这不是一个好兆头。还调用了一堆令人困惑的python文件,因为我应该运行运行Ruby 2.0(Passenger Standalone)的64位Amazon Linux 2014.03 v1.0.4。
14-09-22 05:31:28,375 [INFO]运行configSet Infra-WriteApplication2 2014-09-22 05:31:28,376 [INFO]运行config Infra-WriteApplication2 2014-09-22 05:31:28,376 [DEBUG]未指定包裹 2014-09-22 05:31:28,376 [DEBUG]未指定任何团体 2014-09-22 05:31:28,377 [DEBUG]未指定用户 2014-09-22 05:31:28,377 [DEBUG]未指定来源 2014-09-22 05:31:28,377 [DEBUG]将内容写入/ opt / elasticbeanstalk / bin / download_source_bundle 2014-09-22 05:31:28,377 [DEBUG]从https://s3.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/eb_patching_resources/download_source_bundle.py检索内容 2014-09-22 05:31:28,624 [DEBUG] / opt / elasticbeanstalk / bin / download_source_bundle设置模式为000750 2014-09-22 05:31:28,625 [DEBUG]为/ opt / elasticbeanstalk / bin / download_source_bundle设置所有者0和组0 2014-09-22 05:31:28,625 [DEBUG]运行命令01downloadVersion 2014-09-22 05:31:28,626 [DEBUG]没有测试命令01downloadVersion 2014-09-22 05:31:29,354 [INFO]命令01downloadVersion成功 2014-09-22 05:31:29,355 [DEBUG]命令01downloadVersion输出: 2014-09-22 05:31:29,355 [DEBUG]运行命令02deleteVersionDownloadScriptFile 2014-09-22 05:31:29,356 [DEBUG]没有测试命令02deleteVersionDownloadScriptFile 2014-09-22 05:31:29,370 [INFO]命令02deleteVersionDownloadScriptFile成功 2014-09-22 05:31:29,371 [DEBUG]命令02deleteVersionDownloadScriptFile输出: 2014-09-22 05:31:29,371 [DEBUG]未指定任何服务 2014-09-22 05:31:29,384 [INFO]运行configSet Infra-EmbeddedPreBuild 2014-09-22 05:31:29,388 [INFO]运行configSet Hook-PreAppDeploy 2014-09-22 05:31:29,389 [INFO]运行config Hook-PreAppDeploy 2014-09-22 05:31:29,389 [DEBUG]未指定包裹 2014-09-22 05:31:29,389 [DEBUG]未指定任何团体 2014-09-22 05:31:29,389 [DEBUG]没有指定用户 2014-09-22 05:31:29,390 [DEBUG]没有指明来源 2014-09-22 05:31:29,390 [DEBUG]未指定文件 2014-09-22 05:31:29,390 [DEBUG]运行命令钩子 2014-09-22 05:31:29,390 [DEBUG]没有测试命令挂钩 2014-09-22 05:31:41,367 [ERROR]命令挂钩(directoryHooksExecutor.py --path / opt / elasticbeanstalk / hooks / appdeploy / pre /)失败 2014-09-22 05:31:41,367 [DEBUG]命令挂钩输出: 2014-09-22 05:31:41,368 [错误]构建Hook-PreAppDeploy时遇到错误:命令挂钩失败 Traceback(最近一次调用最后一次): 文件" /usr/lib/python2.6/site-packages/cfnbootstrap/construction.py",第511行,在run_config中 CloudFormationCarpenter(config,self._auth_config).build(worklog) 文件" /usr/lib/python2.6/site-packages/cfnbootstrap/construction.py" ;,第247行,在构建中 更改['命令'] = CommandTool()。apply(self._config.commands) 文件" /usr/lib/python2.6/site-packages/cfnbootstrap/command_tool.py" ;,第113行,在申请中 引发ToolError(u"命令%s失败"%名称) ToolError:命令挂钩失败 2014-09-22 05:31:41,369 [ERROR]构建期间未处理的异常:命令挂钩失败 Traceback(最近一次调用最后一次): 文件" / opt / aws / bin / cfn-init",第122行,in worklog.build(detail.metadata,configSets) 文件" /usr/lib/python2.6/site-packages/cfnbootstrap/construction.py" ;,第117行,在构建中 承包商(元数据).build(configSets,self) 文件" /usr/lib/python2.6/site-packages/cfnbootstrap/construction.py" ;,第502行,在构建中 self.run_config(config,worklog) 文件" /usr/lib/python2.6/site-packages/cfnbootstrap/construction.py",第511行,在run_config中 CloudFormationCarpenter(config,self._auth_config).build(worklog) 文件" /usr/lib/python2.6/site-packages/cfnbootstrap/construction.py" ;,第247行,在构建中 更改['命令'] = CommandTool()。apply(self._config.commands) 文件" /usr/lib/python2.6/site-packages/cfnbootstrap/command_tool.py" ;,第113行,在申请中 引发ToolError(你"命令%s失败"%名称)
这是另一个看起来非常糟糕的领域。我安装了git,并且不确定为什么要询问捆绑...
2014-09-22 05:31:41,280 [ERROR](4868 MainThread)[directoryHooksExecutor.py-33] [root directoryHooksExecutor error]脚本/opt/elasticbeanstalk/hooks/appdeploy/pre/10_bundle_install.sh因返回码而失败11
我为代码片段奇怪而道歉,我今天无法获胜!
有没有人有AWS / Elastic Beanstalk经验可以指导我如何解决这个问题?
答案 0 :(得分:7)
你的ec2实例上安装了git吗?
您可以使用ebextension安装它。创建一个名为.ebextensions/01-git.config
的文件。文件名应具有.config
扩展名。
文件内容如下:
packages:
yum:
git: []
此文件采用YAML格式,因此缩进非常重要。 您可以阅读有关ebextensions here的包部分的更多信息。 提交此文件并再次运行git aws.push。它将为您的环境部署一个新的应用程序版本,并将在您的EC2实例上安装git。
您的Gemfile很可能将源代码作为git urls。这就是bundler尝试使用git获取的原因。 您还可以考虑使用带有Elastic Beanstalk的vendored gem。阅读更多here。
关于python文件,这些是Elastic Beanstalk运行的python脚本,用于在您的实例上部署应用程序版本。