第一个git aws.push到弹性beanstalk时出错

时间:2014-09-22 05:51:38

标签: git ruby-on-rails-4 amazon-web-services deployment elastic-beanstalk

我是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日志只是挤满了我不熟悉的许多令人困惑的项目。很难说分享什么,但这两个领域脱颖而出

  1. 很多不在这里,所以这不是一个好兆头。还调用了一堆令人困惑的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失败"%名称)

  2. 这是另一个看起来非常糟糕的领域。我安装了git,并且不确定为什么要询问捆绑...

    • 捆绑安装 不要以root身份运行Bundler。如果需要,Bundler可以要求sudo,并且 以root用户身份安装捆绑包会破坏所有非root用户的应用程序 这台机器上的用户。 从https://rubygems.org/获取宝石元数据........ 您需要安装git才能使用git存储库中的gem。求助 安装git,请参阅GitHub的教程 https://help.github.com/articles/set-up-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

  3. 我为代码片段奇怪而道歉,我今天无法获胜!

    有没有人有AWS / Elastic Beanstalk经验可以指导我如何解决这个问题?

1 个答案:

答案 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脚本,用于在您的实例上部署应用程序版本。