1

我想知道ec2-run-instances命令行中是否有等效的“--block-device-mapping”选项来将AWS实例上的临时磁盘与雾库连接起来。

BlockDeviceMappings雾源代码中有关于的参考。但由于文档有点简洁,而且我不是 ruby​​ 专家,因此欢迎任何帮助!

4

1 回答 1

2

看起来命令行等同于<devicename>=<blockdevice>. 因此,我们应该能够通过以下几种方式之一在雾中做到这一点。使用您的值的模型版本将类似于:

计算 = Fog::Compute.new(...)

计算.servers.create(
  :block_device_mapping => [
    { 'deviceName' => '/dev/sdb', 'virtualName' => 'ephemeral0' },
    { 'deviceName' => '/dev/sdc', 'virtualName' => 'ephemeral1' },
    { 'deviceName' => '/dev/sdd', 'virtualName' => 'ephemeral2' },
    { 'deviceName' => '/dev/sde', 'virtualName' => 'ephemeral3' },
  ],
  :image_id => 'ami-xxxxxxxx'
)

或者较低级别、更直接的路径可能如下所示:

计算.run_instances(
  'ami-xxxxxxxxx',
  1、
  1、
  :block_device_mapping => [
    { 'deviceName' => '/dev/sdb', 'virtualName' => 'ephemeral0' },
    { 'deviceName' => '/dev/sdc', 'virtualName' => 'ephemeral1' },
    { 'deviceName' => '/dev/sdd', 'virtualName' => 'ephemeral2' },
    { 'deviceName' => '/dev/sde', 'virtualName' => 'ephemeral3' },
  ]
)

我会推荐更高级别的,因为它更容易使用/理解(并为您设置一些不错的默认值)。希望这对您来说更接近一个好的解决方案,但很高兴继续讨论。

于 2013-06-20T21:59:39.063 回答