0

我正在尝试在 OpenStack (Liberty) setup 上使用 Apache Brooklyn 0.8 启动一个非常基本的 VM。我已经提到了这个选项

自动创建浮动 IP 真

在 YAML 中,但我看到以下错误-

java.lang.IllegalArgumentException:选项需要浮动 IP,但扩展不可用!

使用的蓝图:

location:
  jclouds:openstack-nova:
    endpoint: https://myurl
    identity: tenant-name:username
    credential: "My-password"
    jclouds.openstack-nova.auto-create-floating-ips: true
name: VM
services:
- type: brooklyn.entity.basic.EmptySoftwareProcess
  name: Empty software process
  provisioning.properties:
    imageId: RegionOne/image-id
    keyPair: my-keypair-name
    securityGroups: my-security-group
    privateKeyFile: /path/to/my-key/in/brooklyn-machine
    loginUser: ubuntu
    templateOptions: 
      availabilityZone: nova

有什么帮助吗?提前致谢 。

4

2 回答 2

1

此错误通常意味着以下两种情况之一:

  1. 您所针对的 OpenStack 端点不支持 Nova 浮动 IP 扩展;或者
  2. 命名空间不同于“正常”的 OpenStack 设置,因此 jclouds 无法正确检索可用的扩展(例如,这目前发生在 OpenStack devtest 中)。

您可以手动使用浮动 IP 配置虚拟机吗?如果不是,很可能是上述 (1) - 请参阅云提供商的文档,或询问管理员应该改用哪个扩展。

如果是,很可能 (2) - 请参阅jira 问题 JCLOUDS-1013。您可以使用 nova python 客户端检查这一点,运行以下命令:

nova list-extensions | grep FloatingIps
nova --debug list-extensions 2>&1 | grep namespace

如果命名空间等于http://docs.openstack.org/compute/ext/fake_xml,那么您将需要一个特殊的 jclouds “提供者”用于 openstack-devtest,以告诉 jclouds 期待这个备用命名空间。

Cloudsoft 的Andrea Turli已为此工作。代码在https://github.com/cloudsoft/jclouds-openstack-devtest ,在https://drive.google.com/a/cloudsoftcorp.com/file/d/0Bxv4hWMwaFRKRWtsMFdhZlZnek0有一个预建的 jar /view?usp=drive_web。随着时间的推移,这段代码很可能会移入 github jclouds org。

请注意,此代码是针对 jclouds 1.9.2 编写的。这意味着您必须升级到 Brooklyn 0.9.0。或者,如果您真的想坚持使用 Brooklyn 0.8.0,请创建一个 jclouds-openstack-devtest 的分支,以便您可以更新 pom/code 以针对 jclouds 1.9.1。

要使用 jclouds-openstack-devtest jar,请将其放入$BROOKLYN_HOME/lib/patch/,重新启动 Brooklyn,并将您的位置定义更改为jclouds:openstack-devtest-compute(而不是jclouds:openstack-nova)。

于 2016-06-06T10:40:33.847 回答
0

带有 Brooklyn 0.10 的 jclouds-openstack-devtest jar 解决了上述问题

于 2017-02-03T14:58:26.610 回答