【问题标题】:block device mappings for Amazon aws/ec2 imagesAmazon aws/ec2 映像的块设备映射
【发布时间】:2013-05-09 16:42:31
【问题描述】:

我有两个与 Amazon ec2 API 相关的问题。 虽然我真的很想使用 python 和 boto 包,但我就是这样 呈现下面的代码,我得到完全相同的结果 等效的 shell ec2-* 命令。

首先,我想从基于 Debian 的公共 AMI 映像中生成一个实例, 但我想要一个更大的根“分区”(因为我想安装额外的 图像中没有的 Debian 软件包)。文档引导我 相信我应该这样做:

import boto.ec2 as BE
import boto.ec2.blockdevicemapping as BEM

conn=BE.connect_to_region('us-east-1')
bdt=BEM.BlockDeviceType()
# I want a 10G root device, not a 1G 
bdt.size=10
bdm=BEM.BlockDeviceMapping()
bdm['/dev/sda1']=bdt
reservations=conn.run_instances('ami-1234abcd', key_name='mykey',
                                instance_type='m1.medium', block_device_map=bdm)

但是,这似乎完全没有效果。实例生成良好, 正确的图像和一切,但根设备仍然只有 1G :-(

那么,我想也许我需要以某种方式初始化 BlockDeviceMapping 在我修改它之前的图像。我试过这样:

bdm=conn.get_image_attribute('ami-1234abcd', attribute='blockDeviceMapping')

这会导致一些奇怪的异常跟踪显示“已尝试” 未经授权的操作'或类似的。即使是图像也会发生这种情况 我自己通过冻结另一个实例创建的!

在创建设备时修改设备配置很容易 可怕的网络界面中的实例。请告诉我怎么做 以编程方式!谢谢。

【问题讨论】:

  • 您是否在启动实例后尝试调整文件系统的大小?

标签: python amazon-ec2 amazon boto


【解决方案1】:

您的代码看起来正确。

尝试使用相同的代码启动 Ubuntu AMI(您可以在这里找到它们:http://cloud-images.ubuntu.com/locator/ec2/

当 Ubuntu AMI 启动时,它将查看根块设备。如果设备大于根文件系统,它将自动调整根文件系统的大小以填充根块设备。不用大惊小怪 - 其他一切都一样。

这几乎总是你想要发生的。

如果它适用于 Ubuntu,至少你知道你的代码是正确的。然后你只需要弄清楚如何调整 Debian rootfs 的大小(或者只使用 Ubuntu)。

【讨论】:

    猜你喜欢
    • 2012-01-01
    • 2011-03-30
    • 1970-01-01
    • 2016-09-19
    • 2011-07-05
    • 1970-01-01
    • 2014-01-17
    • 2021-06-10
    • 1970-01-01
    相关资源
    最近更新 更多