如何在 nitrous io 盒上配置 git 以部署到 AWS Elastic Beanstalk?
Posted
技术标签:
【中文标题】如何在 nitrous io 盒上配置 git 以部署到 AWS Elastic Beanstalk?【英文标题】:How do I configure git on a nitrous io box to deploy to AWS Elastic Beanstalk? 【发布时间】:2014-09-15 10:24:05 【问题描述】:我有一个在 Nitrous IO 盒上开发的 ruby 应用程序,我试图将它部署到现有的 AWS Elastic Beanstalk 应用程序。在我的 Nitrous 机器上配置了 Git,运行“git status”返回:
# On branch master
# Your branch is up-to-date with 'origin/master'.
#
nothing to commit, working directory clean
我也可以运行“git push”并将我的代码推送到 github。
我已安装 Elastic Beanstalk 命令行工具 2.6.2 软件包。运行“eb status”会返回关于我的 EB 实例的正确信息。
但是运行“git aws.push”会返回:
git: 'aws.push' is not a git command.
阅读 AWS 文档,它说我需要运行 AWSDevTools-RepositorySetup.sh,但我无法在我的 Nitrous 盒子上找到此脚本。该脚本位于何处,或者是否有其他方法可以配置 git 以推送到 AWS EB?
【问题讨论】:
【参考方案1】:AWSDevTools-RepositorySetup.sh
位于AWS Elastic Beanstalk Command Line Tool
。
运行这个:
# I believe you remember where you placed the tool
$ find [PATH_TO_ELASTICBEANSTALK_CLI] -name AWSDevTools-RepositorySetup.sh
# If you don't remember
$ sudo find / -name AWSDevTools-RepositorySetup.sh
就我而言,它位于$HOME
,所以我得到了:
$ find ~/AWS-ElasticBeanstalk-CLI-2.6.3/ -name AWSDevTools-RepositorySetup.sh
AWS-ElasticBeanstalk-CLI-2.6.3/AWSDevTools/Linux/AWSDevTools-RepositorySetup.sh
也检查一下这个答案:setup AWSDevTools-RepositorySetup.sh in git repository on ubuntu
PS 不要忘记在运行AWSDevTools-RepositorySetup.sh
之前切换到你的 repo 目录
【讨论】:
抱歉,这没有帮助 - 我无法在我的 Nitrous 盒子上找到 AWSDevTools-RepositorySetup.sh。我没有 root 访问权限,因此您发送的 find 命令出错。我确实找到了一个名为 ~/.parts/packages/elasticbeanstalk/2.6.2 的目录,但它不包含脚本(命令 find ~/.parts/packages/elasticbeanstalk/ -name AWSDevTools-RepositorySetup.sh 什么都不返回)跨度> 但是你说你安装了 Elastic Beanstalk 命令行工具 2.6.2 包。也许你是在本地机器上做的?在这种情况下,您需要将它安装在您的服务器上。【参考方案2】:AWSDevTools-RepositorySetup.sh 以前未包含在 Autoparts 的 2.6.2 包中,但现在可以在安装最新版本 (2.6.3) 时找到它。
运行$ parts update
确保更新包管理器,运行$ parts install elasticbeakstalk
安装最新版本。
安装 AWS Elastic Beanstalk 2.6.3 后,您需要在每个 git 存储库中运行存储库设置工具:
$ AWSDevTools-RepositorySetup.sh
您可以从那里运行 AWS git 命令:
$ git aws.config
$ git aws.push
【讨论】:
升级到 2.6.2 包解决了这个问题,但是我还必须安装 boto 包才能成功运行 git aws.push。要在 Nitrous 上安装 boto,请运行以下命令: pip install virtualenv; virtualenv venv; 源 venv/bin/activate; pip install boto【参考方案3】:请试试这个。
$ cd ~
$ wget "https://s3.amazonaws.com/elasticbeanstalk/cli/AWS-ElasticBeanstalk-CLI-2.6.3.zip"
$ unzip AWS-ElasticBeanstalk-CLI-2.6.3.zip
$ cd workspace/your_app
$ sh ~/AWS-ElasticBeanstalk-CLI-2.6.3/AWSDevTools/Linux/AWSDevTools-RepositorySetup.sh
$ git aws.push
【讨论】:
以上是关于如何在 nitrous io 盒上配置 git 以部署到 AWS Elastic Beanstalk?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 nitrous.io Ubuntu Stack 中运行 apcahe2 localhost