Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix AmazonEC2的替代工具?_Unix_Command Line_Amazon Ec2 - Fatal编程技术网

Unix AmazonEC2的替代工具?

Unix AmazonEC2的替代工具?,unix,command-line,amazon-ec2,Unix,Command Line,Amazon Ec2,Amazon与EC2交互的官方工具有点笨重,需要处理。我必须设置一组环境变量,只为EC2存储单独的私钥,向路径中添加额外的项,等等。它们都是以制表符分隔的行,有数百个字符长,没有标题,所以解释它们有点麻烦。他们关于设置SSH密钥对的说明为您提供了一个不受密码短语保护的密钥对,而不是让您使用现有的密钥对。这些程序都有点笨重,不是很好的Unix程序 那么,有没有更容易使用的命令行工具来访问EC2?我知道有ElasticFox,还有他们的基于web的控制台,这确实使这个过程更容易,但我想知道是否有其他

Amazon与EC2交互的官方工具有点笨重,需要处理。我必须设置一组环境变量,只为EC2存储单独的私钥,向路径中添加额外的项,等等。它们都是以制表符分隔的行,有数百个字符长,没有标题,所以解释它们有点麻烦。他们关于设置SSH密钥对的说明为您提供了一个不受密码短语保护的密钥对,而不是让您使用现有的密钥对。这些程序都有点笨重,不是很好的Unix程序


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

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

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

我个人使用Tim Kay的Perl,并且已经有一段时间没有使用原始的基于Java的API了。非常适合UNIX环境。

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

我发现AmazonAMI工具也存在同样的问题。它们是一个不错的参考实现,但很难使用,特别是当您有多个实例时。作为另一个项目的一部分,我编写了一个替代命令行工具,名为Rudy,它回答了您的大多数问题

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

  • rudy-ec2实例-C
  • rudy-ec2组-A-p 8080-A 11.22.33.44组名
  • rudy-ec2卷-C-s 100
  • rudy-ec2图像
所有配置都在一个文件中(
~/.rudy/config

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

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

以下是更多信息:


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

尼尔·特纳


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


备选库的问题是它们并不总是保持最新,因此如果AWS的新功能发布,那么您需要等待。您发布的文章指出,您的主要问题是环境变量的组合、向路径中添加额外的项目等。我们有这样的建议
这是我们创建所有AWS命令行工具以及预配置的Java和Ruby语言运行时的主要原因。您只需下载它,所需的一切都将安装在一个文件夹中,而无需修改您的系统配置。我们定期更新它。

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

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

市场上有不同的选择:

  • Scalr:作为托管服务提供试用版。 否则,您可以自己安装源代码,因为它是根据Apache2许可证发布的
  • RightScale:虽然它们通常被认为对小企业来说很昂贵,但它们确实提供了一个免费帐户
  • enStratus:他们提供像RightScale一样的免费模式
关于ec2 api工具:

我同意它们有点太笨重了,我特别不喜欢ec2实例的输出。 我最近转向了python boto,它为ec2提供了一个非常干净且易于使用的接口

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

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

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

关于上载您自己的ssh密钥对:

您可以使用ec2导入密钥对,如下所示:

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运行实例


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

此工具在Windows下也能正常工作,并且还支持S3和SQS。它
ssh-keygen -p -f ~/.ssh/id_rsa
for i in $(ec2-describe-regions|cut -f 2);do
  ec2-import-keypair --region $i mykey --public-key-file ~/.ssh/id_rsa.pub
done