使用pythonb启动Openstack实例

2024-09-29 23:33:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在opensatck设置上启动实例,使用python boto配置多个网络。在

但我犯了以下错误

EC2ResponseError: EC2ResponseError: 400 Bad Request <?xml version="1.0"?> <Response><Errors><Error><Code>NetworkAmbiguous</Code><Message>Multiple possible networks found, use a Network ID to be more specific.</Message></Error></Errors><RequestID>req-28b5a4e8-3838-4111-95db-337c5048716d</RequestID></Response>

我的密码是这样的

from boto import ec2
ostack = ec2.connection.EC2Connection(
    ec2_access_key, ec2_secret_key, is_secure=False, port=8773, region='nova',
    path='/services/Cloud'
)

ostack.run_instances('ami-xxxxx', key_name='BotoTest')

对于配置为openstack的单个网络,上述方法可以很好地工作。在

注意:run_实例没有network-id的关键字参数

我在哪里犯了错误,或者如何改正?还是python boto中的bug?在

提前致谢。在


Tags: 实例keyrun网络messageresponse错误code
2条回答

你试过了吗?公司名称:

from boto import ec2
ostack = ec2.connection.EC2Connection(
   ec2_access_key, ec2_secret_key, is_secure=False, port=8773, region='nova',
   path='/services/Cloud', debug=1
)

那么

^{pr2}$

亚马逊把这个用于专有网络?你在运行专有网络吗?在

我相信这不是boto的bug,boto是用来与AWS-API通信的。虽然EC2-AWS的大部分功能都能很好地与EC2 OpenStack API配合使用,但是有些特性没有实现,并且会返回HTTP错误500或400。在

AWS使用VPC(虚拟私有云)作为网络,可用区作为子网。两者都有一个默认设置,如果在创建新实例时没有进一步的规范,则采用该设置。但在OpenStack中,我看不到将网络和子网标记为默认值的可能性。在

在我的尝试中,private_ip_address和{}都不能在OpenStack上指定一个网络/子网,run_instances()上有多个网络/子网。在

编辑:如果您只有一个网络/子网,下面的代码可以很好地用于boto attrystack.org网站公司名称:

import boto
conn = boto.connect_ec2_endpoint("http://8.21.28.222:8773/services/Cloud",aws_access_key_id='...',aws_secret_access_key='...')
new_instance = conn.run_instances("ami-00000020", key_name="trystack", security_groups=["default"], instance_type="m1.small")

相关问题 更多 >

    热门问题