如何使用ruby aws-sdk列出与ec2实例关联的所有volume-id?

时间:2014-04-09 05:50:34

标签: ruby amazon-web-services amazon-ec2 chef ohai-gem

我坚持列出与ec2实例相关的所有卷和volume-id。 我正在寻找列出附加到它的ebs优化卷。

ec2 = AWS::EC2.new(
 :access_key_id => 'QWERTYUIOPASD',
 :secret_access_key => 'qwertyuiasdfghzxcvbn1234567'
)

ec2.instances["i-qwerty1"].block_device_mappings

它只返回根卷的id。

{"/dev/sda1"=><AWS::EC2::Attachment volume_id:vol-123456 instance_id:i-qwerty1 device:/dev/sda1>} ```

是否有任何方法可以列出所有相关的volume-id。

我甚至尝试过使用ec2内部元数据,这只提供了ami卷细节

$ curl -L http://169.254.169.254/latest/meta-data/block-device-mapping
$ ami

此外,该实例正在Chef中进行管理。我甚至检查了ohai数据的实例。我无法找到附加到其上的卷列表。

请帮忙!! :)

1 个答案:

答案 0 :(得分:0)

我已经解决了。

我们可以使用

ec2.instances[JSON.parse(<Node>.to_s).automatic.ec2.instance_id].block_device_mappings["/dev/sda1"].volume.id