3

我是新来的Elastic Beanstalk,我正在尝试启动一个Rails 4应用程序。我在这里遵循的指导http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-reference-get-started.html但是当我去做错误的第一个git aws.push弹性beanstalk

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:28375 [INFO]运行configSet红外线WriteApplication2 2014年9月22日05:31:28376 [INFO]运行配置红外线WriteApplication2 2014年9月22日5点31分:28,376 [DEBUG]没有指定包 2014-09-22 05:31:28,376 [DEBUG]没有指定组 2014-09-22 05:31:28,377 [调试]没有用户指定 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]检索内容from 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/downlo的设置模式ad_source_bundle改为000750 2014-09-22 05:31:28,625 [DEBUG]为/ opt/elasticbeanstalk/bin/download_source_bundle设置所有者0和组0 0 2014-09-22 05:31:28,625 [DEBUG]运行命令01下载版本 2014-09-22 05:31:28,626 [DEBUG]没有测试命令01downloadVersion 2014-09-22 05:31:29,354 [INFO] Command 01downloadVersion succeeded 2014-09-22 05:31:29,355 [DEBUG] Command 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] Command 02deleteVersionDownloadScriptFile succeeded 2014-09-22 05:31:29,371 [DEBUG] Command 02deleteVers ionDownloadScriptFile输出: 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]正在运行配置Hook-PreAppDeploy 2014-09-22 05:31:29,389 [调试]没有指定包 2014-09-22 05:31:29,389 [调试]没有指定组 2014-09-22 05:31:29,389 [调试]未指定用户 2014-09-22 05:31:29,390 [调试]未指定源 2014-09- 22 05:31:29,390 [调试]没有指定文件 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 [ERROR]在生成Hook-PreAppDeploy期间遇到错误:命令钩子失败 回溯(最近调用最后一次): 文件“/ 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行,在build changes ['commands'] = CommandTool()。apply(self._config。命令) 文件“/usr/lib/python2.6/site-packages/cfnbootstrap/command_tool.py”,行113,in apply raise ToolError(u“Command%s failed”%name) ToolError:命令挂钩失败 2014-09-22 05:31:41,369 [错误]构建期间未处理的异常:命令挂钩失败 回溯(最近调用最后一次): 文件“/ opt/aws/bin/cfn-init”,第122行,in worklog.build(detail.metadata,configSets) 文件“/usr/lib/python2.6/site-packages/cfnbootstrap/construction.py”,行117,in build Contractor(m (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” usr/lib/python2.6/site-packages/cfnbootstrap/construction.py“,第511行,在run_config中 CloudFormationCarpenter(config,self._auth_config).build(worklog) 文件”/usr/lib/python2.6/更改['commands'] = CommandTool()。apply(self._config.commands) 文件“/usr/lib/python2.6/site-packages/cfnbootstrap/training.py”,第247行,构建 更改[ packages/cfnbootstrap/command_tool.py“,行113,in apply raise ToolError(u”Command%s failed“%name)

  2. 这是另一个看起来非常糟糕的领域。我让Git安装,我不知道为什么它被询问包...

    • 捆绑安装 不要运行捆扎机为根。 Bundler可以询问sudo是否需要,并且 以root用户身份安装捆绑软件将会中断该应用程序,以查找该机器上的所有非root用户 用户。 从https://rubygems.org/获取宝石元数据........ 您需要安装git才能够使用git存储库中的宝石。如需帮助 安装的git,请参阅GitHub的教程在 https://help.github.com/articles/set-up-git

    2014年9月22日05:31:41280 [错误](4868 MainThread)directoryHooksExecutor.py-33] [根directoryHooksExecutor错误]脚本/opt/elasticbeanstalk/hooks/appdeploy/pre/10_bundle_install.sh失败,返回码11

我的代码段为奇数道歉,我只是今天不能取胜!

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

回答

7

你的ec2实例上安装了git吗?

您可以使用ebextension进行安装。创建一个名为.ebextensions/01-git.config的文件。文件名应该有.config扩展名。

文件的内容可以如下:

packages: 
    yum: 
    git: [] 

此文件是YAML格式,以便缩进是非常重要的。 你可以阅读更多关于ebextensions here的软件包部分。 提交此文件并再次运行git aws.push。它将为您的环境部署一个新的应用程序版本,并将在您的EC2实例上安装git。

最有可能你的Gemfile有源作为git网址。这就是bundler试图使用git获取的原因。 您也可以考虑在Elastic Beanstalk中使用商品化的宝石。阅读更多here

另外关于python文件,这些是Elastic Beanstalk运行的用于在您的实例上部署应用程序版本的python脚本。