繁体   English   中英

以编程方式启动OpenStack实例

[英]Starting OpenStack instances programmatically

我正在使用OpenStack4J与OpenStack进行交互。 我目前的目标只是启动一个实例。 我可以使用租户Rosemend手动进行此操作。 当我这样做时,我选择了一个名为Rosemond的网络(Id:a9b097b3-af47-4222-b98e-f1b631f9ec45),并将其作为实例的一部分。

但是,使用OpenStack4J,我无法取得任何进展。 OpenStack4j需要一个网络端口,我似乎无法弄清楚该如何设置。 设置该网络端口的调用如下所示:

 serverCreateBuilder.addNetworkPort("0a44eedc-8298-4544-87d7-094c7b34708e")

首先,我尝试了Rosemond网络本身的ID(a9b097b3-af47-4222-b98e-f1b631f9ec45)。 在这种情况下的错误消息是:

 Port id a9b097b3-af47-4222-b98e-f1b631f9ec45 could not be found.

接下来,在OpenStack中,当我单击Rosemond网络时,我看到称为端口的5个项目的列表。 然后,我尝试使用它们中的每一个导致每个错误消息:

Port 0a44eedc-8298-4544-87d7-094c7b34708e is still in use.

当我根本不通过网络端口时,出现错误:

It is not allowed to create an interface on external network c6fb539b-2013-405c-903a-4700a00d954b

我的问题是我应该在这里使用什么值?

我建议您改为使用JClouds。 我认为更容易使用,文档也更好。

请参阅我在Openstack cloud(身份服务,nova服务和swift服务)vs Java应用程序中的回答。 GitHub中有一些示例代码可以检查。

1)要使用现有端口创建虚拟机,则需要端口ID。 2)用于引导虚拟机实例的端口必须处于DOWN状态(已分离)。 如果端口连接到实例(活动),则Openstack将报告冲突。 对于Openstack4j,它将引发ClientResponseException异常并显示一条消息:端口xxx仍在使用中。

参见https://developer.openstack.org/api-ref/compute/?expanded=create-server-detail

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM