9

亚马逊用于与 EC2 交互的官方工具有点笨重,而且很难处理。我必须设置一堆环境变量,为 EC2 存储单独的私钥,向我的 PATH 添加额外的项目,等等。它们都输出了数百个字符长且没有标题的制表符分隔行,因此解释它们有点痛苦。他们设置 SSH 密钥对的说明为您提供了一个不受密码保护的密钥对,而不是让您使用现有的密钥对。这些程序都只是有点笨拙,不是很好的 Unix 程序。

那么,有没有更容易使用的命令行工具来访问 EC2 呢?我知道有 ElasticFox,还有他们的基于 Web 的控制台,这确实使过程更容易,但我想知道是否还有其他人编写了更好的命令行工具来与 EC2 交互。

4

9 回答 9

11

我有点晚了,但我有一个解决方案!

我在 Amazon AMI 工具中发现了同样的问题。它们是一个不错的参考实现,但很难使用,尤其是当您有多个实例时。我写了一个替代命令行工具作为另一个项目的一部分,叫做 Rudy,它回答了你的大部分问题

这些命令比 Amazon 的 AMI 工具更直观:

  • rudy-ec2 instances -C
  • rudy-ec2 groups -A -p 8080 -a 11.22.33.44 group-name
  • rudy-ec2 volumes -C -s 100
  • rudy-ec2 images
  • ...

所有配置都在一个文件中 ( ~/.rudy/config)。

它可以输出多种格式(yaml、json、csv、tsv,当然还有常规文本):

rudy-ec2 -f yaml snapshots
--- 
:awsid: snap-2457b24d
:progress: 100%
:created: "2009-05-08T15:24:17.000Z"
:volid: vol-4ee10427
:status: completed

关于私钥,没有 EC2 工具允许使用密码创建私钥以启动公共实例,因为 API 不支持它。但是,如果您创建自己的图像,则可以使用您的私钥。

这里有更多信息:

于 2009-05-09T13:30:17.523 回答
4

ElasticFox 对于大多数任务都很方便。尽管命令行工具更适合它们,但它们是场合。我个人将boto库用于 python。编写所有必需操作的脚本非常容易。您还可以使用它从 S3 上传/下载文件。一般来说,我会说像 Python 或 RUby 这样的脚本语言以及 AWS 库是最好的解决方案。

于 2009-04-09T06:21:12.323 回答
4

我个人使用 Tim Kay 的 Perl命令行工具,并且很长一段时间没有使用基于 Java 的原始 API。非常适合 UNIX 环境。

于 2009-04-26T20:47:06.257 回答
3

不是命令行,而是看看免费的RightScale帐户会给您带来什么 - 比命令行或 ElasticFox IMO 容易得多。

于 2009-04-10T01:52:13.123 回答
1

关于 ec2-api-tools:

我同意它们有点太笨重,我特别不喜欢 ec2-describe-instances 的输出。我最近切换到 python-boto,它为 ec2 提供了一个非常干净且易于使用的界面。

关于无法为 EC2 生成的 ssh 密钥指定密码:

事实并非如此。您可以随时使用以下方法更改任何 ssh 私钥的密码:

ssh-keygen -p -f /path/to/keyfile

例如

ssh-keygen -p -f ~/.ssh/id_rsa

关于上传自己的 ssh 密钥对:

您可以使用 ec2-import-keypair,如下所示:

for i in $(ec2-describe-regions|cut -f 2);do
  ec2-import-keypair --region $i mykey --public-key-file ~/.ssh/id_rsa.pub
done

上面的示例会将 ~/.ssh/id_rsa.pub 中的公钥上传到名为“mykey”的每个区域。请记住,每个区域都有自己的密钥对。

为了在您的 ec2 实例中安装密钥,您必须将“-k mykey”选项传递给 ec2-run-instances。

顺便说一句,上传您自己的密钥对是使用相同密钥登录所有区域的所有实例的唯一方法。如果您从 Web 界面创建密钥对,您将在每个区域拥有不同的密钥。

于 2012-11-03T23:30:01.627 回答
0

我有一个名为 EC2Dream 的开源图形系统管理工具,它取代了命令行工具。它安装在 windows、linux 和 Mac OS 客户端上,并使用 Ruby 和 FXRuby 编写。请参阅 www.ec2dream.com。

尼尔·特纳

www.ec2dream.com

于 2009-08-14T10:20:35.527 回答
0

如果您使用 Windows,请尝试下面链接的工具(O2 平台的一部分),它为您提供了一种简单的方法来启动和停止 Amazon EC2 映像(如果您需要扩展该工具,您可以轻松添加新功能(因为它只是动态编译和执行的 C# 脚本)

于 2011-04-10T03:43:14.240 回答
0

替代库的问题在于它们并不总是保持最新,因此如果发布了 AWS 的新功能,那么您需要等待。您发布了您的主要问题是一堆环境变量,向您的 PATH 添加额外的项目等。我们在BitNami遇到了这个问题,这也是我们创建BitNami Cloud Tools的主要原因,该工具将所有 AWS 命令​​行工具与预配置的 Java 和 Ruby 语言运行时。您只需下载它,您需要的所有内容都将安装在一个文件夹中,而无需修改您的系统配置。我们会定期更新。

于 2011-08-23T13:21:46.163 回答
0

有一个名为云管理的整个行业试图解决这类问题。ScalrRightScale以及该领域的领导者(免责声明:我在 Scalr 工作)。

云管理软件构建在 Amazon EC2 API 之上(通常在其他公共 IaaS 上,如 Rackspace),并提供改进的用户界面以及您提到的备份或 SSH 管理等自动化工具。他们不提供更简单的命令行工具严格意义上的。他们的目标是让与 Amazon EC2 的交互更容易。

市场上有不同的选择:

  • ScalrScalr可作为托管服务提供试用版。否则,您可以自己下载并安装源代码,因为它是在 Apache 2 许可下发布的。
  • RightScale:虽然它们通常被认为对小型企业来说很昂贵,但它们确实提供免费帐户。
  • enStratus:他们提供像 RightScale 这样的免费增值模式。
于 2012-03-26T23:09:32.743 回答