Как установить плавающий IP-адрес для виртуальной машины с помощью Apache Brooklyn? - Плавающие IP-адреса требуются для параметров, но расширение недоступно Ошибка

Я пытаюсь запустить очень простую виртуальную машину, используя Apache Brooklyn 0.8 на установке OpenStack (Liberty). я упомянул вариант

автоматическое создание плавающего 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

Любая помощь ? Заранее спасибо .


person Gwr    schedule 06.06.2016    source источник


Ответы (2)


Эта ошибка обычно означает одну из двух вещей:

  1. что конечная точка OpenStack, на которую вы ориентируетесь, не поддерживает расширение Nova с плавающим IP-адресом; или
  2. пространство имен отличается от «обычной» установки OpenStack, поэтому jclouds не может правильно получить доступные расширения (например, в настоящее время это происходит для OpenStack devtest).

Можете ли вы подготовить виртуальную машину с помощью плавающего IP-адреса вручную? Если нет, скорее всего (1) выше — см. документацию облачного провайдера или спросите администратора, какое расширение следует использовать вместо этого.

Если да, то скорее всего (2) — см. Jira issue 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 ожидать это альтернативное пространство имен.

Над этим работала Andrea Turli из Cloudsoft. Код находится по адресу https://github.com/cloudsoft/jclouds-openstack-devtest и есть готовый jar-файл по адресу https://drive.google.com/a/cloudsoftcorp.com/file/d/0Bxv4hWMwaFRKRWtsMFdhZlZnek0/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.

Чтобы использовать jar-файл jclouds-openstack-devtest, поместите его в $BROOKLYN_HOME/lib/patch/, перезапустите Brooklyn и измените определение местоположения на jclouds:openstack-devtest-compute (вместо jclouds:openstack-nova).

person Aled Sage    schedule 06.06.2016
comment
Спасибо @Aled Sage. Я могу предоставить виртуальную машину с плавающим IP-адресом в моей настройке OpenSTack-Liberty. - person Gwr; 07.06.2016
comment
Спасибо @Aled Sage. Я могу выделить виртуальную машину с плавающим IP-адресом в OpenStack. nova list-extensions | grep FloatingIps выдал вывод выходную ссылку. Я не смог получить доступ к URL-адрес пространства имен . Вы можете помочь ? - person Gwr; 07.06.2016
comment
@ user3796119, не могли бы вы поделиться выводом nova --debug list-extensions. Мы не ожидали, что сможем получить доступ к docs.openstack.org/compute/ext/fake_xml< /а>. Это просто говорит нам об используемом пространстве имен XML. Мы хотим знать, содержит ли он fake_xml. - person Aled Sage; 10.06.2016
comment
Я попробовал по предложению. Но приложение завершается с ошибкой ошибка. Пытается ли он подключиться к 127.0.0.1 вместо предоставленной конечной точки? Есть предложения? - person Gwr; 20.06.2016
comment
Привет, Любые предложения? Я обновился до Brooklyn 0.9, но проблема осталась. - person Gwr; 15.11.2016
comment
@ user3796119 Ошибка Connection отказала в подключении к POST 127.0.0.1/identity/v2.0/tokens HTTP/1.1 — это интересно. Я предполагаю, что URL-адрес вашей конечной точки был примерно таким: openstack.example.com:5000/v2.0. Ошибка означает, что openstack вернул нам ключевой URL-адрес 127.0.0.1/identity/v2.0, который мы затем пытаемся использовать. Это говорит мне о том, что OpenStack неправильно настроен (он должен возвращать доступный извне URL-адрес). Можете ли вы проверить конфигурацию OpenStack? - person Aled Sage; 04.12.2016
comment
Привет, я настроил openstack для доступа через внешний URL-адрес, и это решило проблему. Но у меня до сих пор нет успешного развертывания. Пример yaml: yaml. Развертывание застревает на начальном этапе (внутренний диспетчер DST) и завершается сбоем с ошибкой: AuthorizationException на узле. - person Gwr; 06.12.2016
comment
Я также заметил, что если у меня есть плавающий IP-адрес, выделенный (но не связанный) для проекта, я не вижу упомянутой ошибки. Но Бруклин сам по себе не выделяет и не связывает плавающий IP-адрес в моем случае. - person Gwr; 06.12.2016

jclouds-openstack-devtest jar с Brooklyn 0.10 решил указанную выше проблему

person Gwr    schedule 03.02.2017