使用Fabric或Boto ssh到AWS实例并运行Shell命令的简单方法

时间:2015-08-05 09:13:19

标签: amazon-web-services ssh amazon-ec2 boto fabric

您好我跟随This Tutorial关于使用EC2实例运行shell命令,但后来我尝试了This Method(第一个答案)。

它仍然无法运作。首先我得到了错误     意外关键字参数keypath

然后错误     '保留'对象没有属性dns_name

所以现在我真的很困惑。我将实例假脱机,并且我也使用了正确的实例ID。

如果有直观的方法在AWS实例上运行shell命令,我想知道。我已经设置了帐户和密钥,并且我已通过CLI运行shell命令,但我希望自动执行此过程。织物正在证明是一个挑战。

2 个答案:

答案 0 :(得分:4)

您可以尝试kitten,这是一个在 aws 上自动化/管理多个服务器的 Python 工具。

例如

kitten run uptime ubuntu 18.105.107.20

您还可以同时在多个服务器上运行命令。 e.克

kitten run uptime ubuntu 18.105.107.20 34.229.135.48

答案 1 :(得分:2)

我为你提到的第二种方法提供了示例代码中的一个错误。我已经更正了示例代码,但基本上你需要更改它:

# Find the instance object related to my instanceId
instance = conn.get_all_instances(['i-12345678'])[0]

到此:

# Find the instance object related to my instanceId
instance = conn.get_all_instances(['i-12345678'])[0].instances[0]

感谢您找到问题所在。我很惊讶以前没有人提到它。