[英]Pyrax API: Error in creating Compute/Memory flavors with boot-volumes
背景知识:Rackspace中的Compute / Memory nova实例不带有本地根卷,Rackspace制定了使用外部SSD引导卷创建它们的策略。 现在的问题是:我正在尝试使用pyrax api在Rackspace中创建Compute风格实例,其方式与Rackspace在其UI中一样( https://support.rackspace.com/how-to/boot-a-server-from -a-cloud-block-storage-volume / ),如下所示:
pyrax.cloudservers.servers.create(hostname,image.id,
flavor.id,block_device_mapping,
security_groups=security_groups,
nics=networks, key_name=key)
其中block_device_mapping = {“ vda”:“ 59fb72d5-0b33-46c2-b10b-33fed25c5f74 ::: 1”},长32位数字是我在使用服务器创建服务器之前创建的卷的volume_id
pyrax.cloud_blockstorage.create(name=volume_name, size=volume_size,
volume_type=volume_type).
我收到一条错误消息:
Policy doesn't allow memory_flavor:create:image_backed to be performed.(HTTP 403).
同样对于其他带有本地根卷的口味(不必说我没有引用带有'block_device_mapping'参数的口味),例如pyrax api可以很好地工作。 这是github上的pyrax / rackspace存储库中有关该主题的一个小话题: https : //github.com/rackspace/pyrax/issues/484 ,讨论了该问题。 我有什么想念的吗?
创建可引导卷后,应指定image_id(OS映像ID)来引导该卷:
pyrax.cloud_blockstorage.create(name=volume_name, size=volume_size,
volume_type=volume_type,image=image.id)
另外,block_device_map还需要更多参数:
block_device_map = [{
'boot_index': '0',
'source_type': 'image',
'destination_type': 'volume',
'delete_on_termination': True,
'uuid': image.id,
'volume_size': int(requested_size),
'device_name': 'vda'
}]
这实际上是没有遇到403 Forbidden错误的最后一个陷阱:创建服务器实例时,请勿在pyrax调用参数中再次指定映像ID,否则,pyrazx与引导实例的映像混淆。 因此,只需将pyrax.cloudservers.servers.create()的参数中的image_id设置为None即可:
pyrax.cloudservers.servers.create(
hostname,
image=None,
flavor=flavor.id,
block_device_mapping_v2=block_device_map,
security_groups=security_groups,
nics=networks,
key_name=key)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.