2012-05-06 28 views
3

我有一個AMI與Windows Server 2008作爲EBS根設備。我可以使用boto和遠程桌面啓動它,但似乎無法安裝它的臨時存儲。我的BlockDeviceMapping有問題嗎?如何使用boto在windows ec2實例上掛載臨時存儲?

這裏是我的代碼:

import boto 
from boto.ec2.connection import EC2Connection 
conn = EC2Connection(mykey, mysecretkey) 
bdm = boto.ec2.blockdevicemapping.BlockDeviceMapping({'/dev/xvdb':'ephemeral0'}) 
conn.run_instances(myami, key_name=mykeyname,security_groups=[mysecgroup],block_device_map=bdm) 

當我運行這段代碼,一個實例激發了,我可以上網,但我只看到安裝的根設備。

+0

我不知道博託,但這看起來像是將設備名稱映射到設備驅動程序 - 但沒有做任何事情來格式化或掛載設備到名稱空間。 – sarnold

+0

@sarnold hmmmmm。我對文檔的閱讀似乎表明,aws會爲你提供幫助,但我可能是錯的。請參閱「在Amazon EBS支持的Windows實例上訪問實例存儲」一節:http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/InstanceStorage.html – oob

回答

5

我想通了。我看過一些例子,這些例子讓我相信塊設備映射應該是一個字符串到字符串映射,但它實際上應該是一個到BlockDeviceType映射的字符串。以下是我如何工作:

from boto.ec2.connection import EC2Connection 
from boto.ec2.blockdevicemapping import BlockDeviceType, BlockDeviceMapping 
conn = EC2Connection(mykey, mysecretkey) 
xvdb = BlockDeviceType() 
xvdb.ephemeral_name='ephemeral0' 
bdm = BlockDeviceMapping() 
bdm['/dev/xvdb'] = xvdb 
conn.run_instances(myami, key_name=mykeyname,security_groups=[mysecgroup],block_device_map=bdm) 

當我登錄時,我可以看到我的臨時驅動器。並不是它不會作爲塊設備顯示在AWS管理控制檯中。你仍然只能看到你的根設備。

Here是一個代碼示例/論壇問題,幫助我弄明白了。

相關問題