使用boto在EC2上运行一个shell命令?

我试图find一种方法将shell命令传递给Linux EC2实例。

基本上我有一个创buildEBS卷的脚本,启动一个CloudFormation堆栈,然后将新卷附加到堆栈中的EC2实例。

我想要做的是把这个音量作为脚本的一部分进行格式化和安装,但是我似乎在这一点上遇到了障碍。

我的python不是很棒,但我已经设法通过了大部分的这一点,同时学习一堆。 我考虑使用Paramiko,但是我需要通过几个服务器隧道到达实例的子网。

# Attach an EBS volume to the EC2 Server instance def attach_ebs(stack_id, results_volume): resources = cfn.list_stack_resources(stack_id) for r in resources: if r.resource_type == "AWS::EC2::Instance" and "Server" in r.logical_resource_id: ec2.attach_volume(results_volume, r.physical_resource_id, "/dev/sdh") 

您可以使用python subprocess模块通过目标实例中的ssh执行命令。

为了避免jumphost混乱,请考虑使用正确的IAMangular色从EC2实例执行您的python脚本。 或者使用ssh-chain 。