Как использовать подсети в схемах Apache Brooklyn

Я пытаюсь использовать подсеть (предварительно созданную в AWS) в своем проекте, чтобы запустить ее в Apache Brooklyn.

У меня есть следующий план без подсети, который работает правильно. (Сервер Ambari с кластером из двух узлов Hadoop)

name: IDA Ambari All Services without Security Group
description: This Application is used to build one Ambari Server and a Cluster of Ambari Agents
origin: vendor
location: 
  jclouds:aws-ec2:
    region: eu-central-1
    identity: identity
    credential: credential
    osFamily: RHEL
    osVersionRegex: 6.*
    hardwareId: m3.medium
services:
- type: io.brooklyn.ambari.AmbariCluster
  brooklyn.config:
    initialSize: 2
    install.version: 2.1.0
    services:
      - FALCON

И в тот момент, когда я добавляю новое имя подсети (последние строки следующего плана), происходит сбой развертывания в Apache Brooklyn.

name: IDA Ambari All Services without Security Group
description: This Application is used to build one Ambari Server and a Cluster of Ambari Agents
origin: vendor
location: 
  jclouds:aws-ec2:
    region: eu-central-1
    identity: identity
    credential: credential
    osFamily: RHEL
    osVersionRegex: 6.*
    hardwareId: m3.medium
services:
- type: io.brooklyn.ambari.AmbariCluster
  brooklyn.config:
    initialSize: 2
    install.version: 2.1.0
    services:
      - FALCON
    provisioning.properties:
      networkName: subnet-003dfb7b

Я предполагаю, что проблема связана с настройкой jclouds в Blueprint. Но я не знаю.

Ошибки:

В узлах

На сервере Амбари

Есть идеи??

Трассировка стека немного плотная, но в ее середине мы видим:

Это указывает на то, что jclouds пытается подключиться к новому узлу, но не может этого сделать.


person Iker Aguayo    schedule 10.08.2015    source источник
comment
Ах, я подумал, что эта проблема звучит знакомо — я уже сообщал о ней в прошлом! @IkerAguayo Я почти уверен, что нашел обходной путь для этой проблемы, позвольте мне проверить свои заметки ...   -  person Richard Downer    schedule 10.08.2015
comment
@IgnasiBarrera да, похоже, проблема в этом. Не могли бы вы открыть тикет в jclouds, чтобы решить проблему (пожалуйста, опубликуйте URL)   -  person Ignasi Barrera    schedule 10.08.2015
comment
@RichardDowner, это было бы здорово!   -  person Richard Downer    schedule 11.08.2015
comment
@RichardDowner, если есть исправление для этого, поделитесь им или, что еще лучше, отправьте патч в jclouds! Это затронет не только Бруклин, и было бы здорово иметь исправление, которое уже активно тестировалось.   -  person Iker Aguayo    schedule 11.08.2015
comment
@IgnasiBarrera подойдет, это в моем списке (довольно длинный список, хотя мне жаль, что я еще не поделился им ...)   -  person Iker Aguayo    schedule 11.08.2015
comment
сбой запуска с ошибкой: java.lang.IllegalStateException: сбой узла в кластере DynamicClusterImpl{id=tEESwAU9}: сбой 2 из 2 параллельных дочерних задач, 2 ошибки, в том числе: ошибка при запуске в AmbariAgentImpl{id=AS9jZ9AC}: org.jclouds.compute .RunNodesException: ошибка при запуске 1 группы узлов (brooklyn-gaho-root-ida-ambar-xydd-ambariagent-as9j-as9j) расположение (eu-central-1) изображение (ami-6cd3ee71) размер (m3.medium) параметры ({ inboundPorts=[22, 2], scriptPresent=true, userMetadata={Name=brooklyn-gaho-root-ida-ambar-xydd-ambariagent-as9j-as9j-jn19, brooklyn-user=root, brooklyn-app-id=XYDdTpTx , brooklyn-app-name=IDA Ambari All Services без группы безопасности, brooklyn-entity-id=AS9jZ9AC, brooklyn-entity-name=AmbariAgent:AS9j, brooklyn-server-creation-date=2015-08-10-1421}, userDataCksum=2f4a740b, subnetId=subnet-003dfb7b}) Ошибки выполнения: 0 error[s] Сбои узлов: 1) NoSuchElementException на узле eu-central-1/i-4af7818b: java.util.NoSuchElementException: не удалось выполнить подключиться к любому порту 22 IP-адреса на узле {id=eu-central-1/i-4af7818b, providerId=i-4af7818b, location={scope=ZONE, id=eu-central-1b, description=eu-central-1b , parent=eu-central-1, iso3166Codes=[DE-HE]}, group=brooklyn-gaho-root-ida-ambar-xydd-ambariagent-as9j-as9j, imageId=eu-central-1/ami-6cd3ee71, os={family=rhel, arch=hvm, version=6.6, description=411009282317/RightImage_RHEL_6.6_x64_v14.2.1_HVM_EBS, is64Bit=true}, status=RUNNING[running], loginPort=22, hostname=ip-172-31- 17-195, privateAddresses=[172.31.17.195], publicAddresses=[52.28.233.226], hardware={id=m3.medium, providerId=m3.medium, процессоры=[{cores=1.0, speed=3.0}], ram =3840, volumes=[{type=LOCAL, size=4.0, device=/dev/sdb, bootDevice=false, durable=false}, {id=vol-e940020b, type=SAN, device=/dev/sda1, bootDevice =true, durable=true}], гипервизор=xen, supportsImage=Predicates.and(Predicates.alwaysTrue(),Predicates.or(requiresVirtualizationType(hvm),requiresVirtualizationType(paravirtual)),Predic ates.alwaysTrue(),Predicates.alwaysTrue())}, loginUser=root} в org.jclouds.compute.util.ConcurrentOpenSocketFinder.findOpenSocketOnNode(ConcurrentOpenSocketFinder.java:107) в org.jclouds.compute.functions.CreateSshClientOncePortIsListeningOnNode.apply( CreateSshClientOncePortIsListeningOnNode.java:66) в org.jclouds.compute.functions.CreateSshClientOncePortIsListeningOnNode.apply(CreateSshClientOncePortIsListeningOnNode.java:40) в org.jclouds.compute.callables. SudoAwareInitManager.init (SudoAwareInitManager.java:67) при org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.init (RunScriptOnNodeAsInitScriptUsingSsh.java:64) при org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.init (RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:77) в орг .jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.init (RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:38) при org.jclouds.compute.strategy.InitializeRunScriptOnNodeOrPlaceInBadMap.call (InitializeRunScriptOnNodeOrPlaceInBadMap.java:61) в org.jclouds.compute.strategy.InitializeRunScriptOnNodeOrPlaceInBadMap.call (InitializeRunScriptOnNodeOrPlaceInBadMap .java:34) в org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:119) в org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutE xceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:49) в java.util.concurrent.FutureTask.run(FutureTask.java:262) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) в java.util.concurrent .ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) на java.lang.Thread.run(Thread.java:745) 1 ошибка [s] Ошибка запуска задачи при запуске 2 узлов (параллельно) (OnIRxglV): 2 из 2 параллельных сбой дочерних задач, 2 ошибки, в том числе: ошибка при запуске в AmbariAgentImpl{id=AS9jZ9AC}: org.jclouds.compute.RunNodesException: ошибка при запуске 1 группы узлов (brooklyn-gaho-root-ida-ambar-xydd-ambariagent-as9j-as9j ) местоположение (eu-central-1) изображение (ami-6cd3ee71) размер (m3.medium) параметры ({inboundPorts = [22, 2], scriptPresent = true, userMetadata = {Name = brooklyn-gaho-root-ida-ambar -xydd-ambariagent-as9j-as9j-jn19, brooklyn-user=root, brooklyn-app-id=XYDdTpTx, brooklyn-app-name=IDA Все службы Ambari без группы безопасности, brookly n-entity-id=AS9jZ9AC, brooklyn-entity-name=AmbariAgent:AS9j, brooklyn-server-creation-date=2015-08-10-1421}, userDataCksum=2f4a740b, subnetId=subnet-003dfb7b}) Ошибки выполнения: 0 error[s] Сбои узлов: 1) NoSuchElementException на узле eu-central-1/i-4af7818b: java.util.NoSuchElementException: не удалось подключиться к порту 22 любого IP-адреса на узле {id=eu-central-1/i- 4af7818b, providerId=i-4af7818b, location={scope=ZONE, id=eu-central-1b, description=eu-central-1b, parent=eu-central-1, iso3166Codes=[DE-HE]}, group= brooklyn-gaho-root-ida-ambar-xydd-ambariagent-as9j-as9j, imageId=eu-central-1/ami-6cd3ee71, os={family=rhel, arch=hvm, version=6. 6, description=411009282317/RightImage_RHEL_6.6_x64_v14.2.1_HVM_EBS, is64Bit=true}, status=RUNNING[работает], loginPort=22, hostname=ip-172-31-17-195, privateAddresses=[172.31.17.195], publicAddresses =[52.28.233.226], аппаратное обеспечение={id=m3.medium, providerId=m3.medium, процессоры=[{ядра=1.0, скорость=3.0}], оперативная память=3840, объемы=[{type=LOCAL, size= 4.0, устройство=/dev/sdb, bootDevice=false, durable=false}, {id=vol-e940020b, type=SAN, device=/dev/sda1, bootDevice=true, durable=true}], гипервизор=xen, supportsImage=Predicates.and(Predicates.alwaysTrue(),Predicates.or(requiresVirtualizationType(hvm),requiresVirtualizationType(paravirtual)),Predicates.alwaysTrue(),Predicates.alwaysTrue())}, loginUser=root} в org.jclouds. Compute.util.ConcurrentOpenSocketFinder.findOpenSocketOnNode(ConcurrentOpenSocketFinder.java:107) в org.jclouds.compute.functions.CreateSshClientOncePortIsListeningOnNode.apply(CreateSshClientOncePortIsListeningOnNode.java:66) в org.jclouds.compute.functions .CREATESSHCLIENTONCEPLESPLESSINGONDONDONCEPORTISLISTINGONDODESHONSCEPAPORTISLISTERSODESODESAWAWAREONITMPUTES. callables.sudoawareInitmanager.init (sudoawareinitmanager.init (sudoaawareinitmanager.java:67) на org.jclouds.compute. callables.runscriptonnoDeasinitsSctussscriptsscriptssh.java: 64) org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.init (RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:77) при org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.init (RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:38) при org.jclouds.compute.strategy.InitializeRunScriptOnNodeOrPlaceInBadMap.call ( InitializeRunScriptOnNodeOrPlaceInBadMap.java:61) в org.jclouds.compute.strategy.InitializeRunScriptOnNodeOrPlaceInBadMap.call(InitializeRunScriptOnNodeOrPlaceInBadMap.java:34) в org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodcalOrPutException.IntoBadMap l(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:119) в org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:49) в java.util.concurrent.FutureTask.run(java.62) at .ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) в java.lang.Thread.run(Thread.java:745) 1 ошибка[s]   -  person Ignasi Barrera    schedule 11.08.2015
comment
сбой запуска с ошибкой: java.lang.IllegalStateException: сбой узла в кластере DynamicClusterImpl{id=tEESwAU9}: сбой 2 из 2 параллельных дочерних задач, 2 ошибки, в том числе: ошибка при запуске в AmbariAgentImpl{id=AS9jZ9AC}: org.jclouds.compute .RunNodesException: ошибка при запуске 1 группы узлов (brooklyn-gaho-root-ida-ambar-xydd-ambariagent-as9j-as9j) расположение (eu-central-1) изображение (ami-6cd3ee71) размер (m3.medium) параметры ({ inboundPorts=[22, 2], scriptPresent=true, userMetadata={Name=brooklyn-gaho-root-ida-ambar-xydd-ambariagent-as9j-as9j-jn19, brooklyn-user=root, brooklyn-app-id=XYDdTpTx , brooklyn-app-name=IDA Ambari All Services без группы безопасности, brooklyn-entity-id=AS9jZ9AC, brooklyn-entity-name=AmbariAgent:AS9j, brooklyn-server-creation-date=2015-08-10-1421}, userDataCksum=2f4a740b, subnetId=subnet-003dfb7b}) Ошибки выполнения: 0 error[s] Сбои узлов: 1) NoSuchElementException на узле eu-central-1/i-4af7818b: java.util.NoSuchElementException: не удалось выполнить подключиться к любому порту 22 IP-адреса на узле {id=eu-central-1/i-4af7818b, providerId=i-4af7818b, location={scope=ZONE, id=eu-central-1b, description=eu-central-1b , parent=eu-central-1, iso3166Codes=[DE-HE]}, group=brooklyn-gaho-root-ida-ambar-xydd-ambariagent-as9j-as9j, imageId=eu-central-1/ami-6cd3ee71, os={family=rhel, arch=hvm, version=6.6, description=411009282317/RightImage_RHEL_6.6_x64_v14.2.1_HVM_EBS, is64Bit=true}, status=RUNNING[running], loginPort=22, hostname=ip-172-31- 17-195, privateAddresses=[172.31.17.195], publicAddresses=[52.28.233.226], hardware={id=m3.medium, providerId=m3.medium, процессоры=[{cores=1.0, speed=3.0}], ram =3840, volumes=[{type=LOCAL, size=4.0, device=/dev/sdb, bootDevice=false, durable=false}, {id=vol-e940020b, type=SAN, device=/dev/sda1, bootDevice =true, durable=true}], гипервизор=xen, supportsImage=Predicates.and(Predicates.alwaysTrue(),Predicates.or(requiresVirtualizationType(hvm),requiresVirtualizationType(paravirtual)),Predic ates.alwaysTrue(),Predicates.alwaysTrue())}, loginUser=root} в org.jclouds.compute.util.ConcurrentOpenSocketFinder.findOpenSocketOnNode(ConcurrentOpenSocketFinder.java:107) в org.jclouds.compute.functions.CreateSshClientOncePortIsListeningOnNode.apply( CreateSshClientOncePortIsListeningOnNode.java:66) в org.jclouds.compute.functions.CreateSshClientOncePortIsListeningOnNode.apply(CreateSshClientOncePortIsListeningOnNode.java:40) в org.jclouds.compute.callables. SudoAwareInitManager.init (SudoAwareInitManager.java:67) при org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.init (RunScriptOnNodeAsInitScriptUsingSsh.java:64) при org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.init (RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:77) в орг .jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.init (RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:38) при org.jclouds.compute.strategy.InitializeRunScriptOnNodeOrPlaceInBadMap.call (InitializeRunScriptOnNodeOrPlaceInBadMap.java:61) в org.jclouds.compute.strategy.InitializeRunScriptOnNodeOrPlaceInBadMap.call (InitializeRunScriptOnNodeOrPlaceInBadMap .java:34) в org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:119) в org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutE xceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:49) в java.util.concurrent.FutureTask.run(FutureTask.java:262) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) в java.util.concurrent .ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) на java.lang.Thread.run(Thread.java:745) 1 ошибка [s] Ошибка запуска задачи при запуске 2 узлов (параллельно) (OnIRxglV): 2 из 2 параллельных сбой дочерних задач, 2 ошибки, в том числе: ошибка при запуске в AmbariAgentImpl{id=AS9jZ9AC}: org.jclouds.compute.RunNodesException: ошибка при запуске 1 группы узлов (brooklyn-gaho-root-ida-ambar-xydd-ambariagent-as9j-as9j ) местоположение (eu-central-1) изображение (ami-6cd3ee71) размер (m3.medium) параметры ({inboundPorts = [22, 2], scriptPresent = true, userMetadata = {Name = brooklyn-gaho-root-ida-ambar -xydd-ambariagent-as9j-as9j-jn19, brooklyn-user=root, brooklyn-app-id=XYDdTpTx, brooklyn-app-name=IDA Все службы Ambari без группы безопасности, brookly n-entity-id=AS9jZ9AC, brooklyn-entity-name=AmbariAgent:AS9j, brooklyn-server-creation-date=2015-08-10-1421}, userDataCksum=2f4a740b, subnetId=subnet-003dfb7b}) Ошибки выполнения: 0 error[s] Сбои узла: 1) NoSuchElementException на узле eu-central-1/i-4af7818b: java.util.NoSuchElementException: не удалось подключиться к порту 22 любого IP-адреса на узле {id=eu-central-1/i- 4af7818b, providerId=i-4af7818b, location={scope=ZONE, id=eu-central-1b, description=eu-central-1b, parent=eu-central-1, iso3166Codes=[DE-HE]}, group= brooklyn-gaho-root-ida-ambar-xydd-ambariagent-as9j-as9j, imageId=eu-central-1/ami-6cd3ee71, os={family=rhel, arch=hvm, version=6. 6, description=411009282317/RightImage_RHEL_6.6_x64_v14.2.1_HVM_EBS, is64Bit=true}, status=RUNNING[работает], loginPort=22, hostname=ip-172-31-17-195, privateAddresses=[172.31.17.195], publicAddresses =[52.28.233.226], аппаратное обеспечение={id=m3.medium, providerId=m3.medium, процессоры=[{ядра=1.0, скорость=3.0}], оперативная память=3840, объемы=[{type=LOCAL, size= 4.0, устройство=/dev/sdb, bootDevice=false, durable=false}, {id=vol-e940020b, type=SAN, device=/dev/sda1, bootDevice=true, durable=true}], гипервизор=xen, supportsImage=Predicates.and(Predicates.alwaysTrue(),Predicates.or(requiresVirtualizationType(hvm),requiresVirtualizationType(paravirtual)),Predicates.alwaysTrue(),Predicates.alwaysTrue())}, loginUser=root} в org.jclouds. Compute.util.ConcurrentOpenSocketFinder.findOpenSocketOnNode(ConcurrentOpenSocketFinder.java:107) в org.jclouds.compute.functions.CreateSshClientOncePortIsListeningOnNode.apply(CreateSshClientOncePortIsListeningOnNode.java:66) в org.jclouds.compute.functions .CREATESSHCLIENTONCEPLESPLESSINGONDONDONCEPORTISLISTINGONDODESHONSCEPAPORTISLISTERSODESODESAWAWAREONITMPUTES. callables.sudoawareInitmanager.init (sudoawareinitmanager.init (sudoaawareinitmanager.java:67) на org.jclouds.compute. callables.runscriptonnoDeasinitsSctussscriptsscriptssh.java: 64) org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.init (RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:77) при org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.init (RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:38) при org.jclouds.compute.strategy.InitializeRunScriptOnNodeOrPlaceInBadMap.call ( InitializeRunScriptOnNodeOrPlaceInBadMap.java:61) в org.jclouds.compute.strategy.InitializeRunScriptOnNodeOrPlaceInBadMap.call(InitializeRunScriptOnNodeOrPlaceInBadMap.java:34) в org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodcalOrPutException.IntoBadMap l(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:119) в org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:49) в java.util.concurrent.FutureTask.run(java.62) at .ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) в java.lang.Thread.run(Thread.java:745) 1 ошибка[s]   -  person Richard Downer    schedule 11.08.2015


Ответы (1)


Наиболее вероятная причина заключается в том, что в экземпляре неправильно настроены группы безопасности.

could not connect to any ip address port 22 on node

В jclouds есть ошибка, которая не позволяет ему создавать группы безопасности, если указан идентификатор подсети: см. JCLOUDS- 987: AWS EC2: при указании идентификатора подсети группы безопасности не создаются.

Вы можете обойти это, заранее создав группу безопасности, которая открывает необходимые порты — это будет порт 22 плюс любые порты, необходимые объекту (в данном случае Ambari). Затем вы передаете это в jclouds, используя свойство Brooklyn templateOptions в схеме.

Например:

Какова природа провала в Бруклине? Обзор устранения неполадок на странице brooklyn.incubator.apache. org/v/0.7.0-incubating/ops/ описывает, как использовать панель действий для определения неудачной операции и ее ошибки. Если вы сможете найти эту информацию и добавить ее к своему вопросу, это поможет диагностировать проблему.

Я не знаю подробностей о том, как Brooklyn использует опцию

could not connect to any ip address port 22 on node
, но ошибка говорит о том, что он не может подключиться к порту 22 ни одного из адресов узла (172.31.17.195, 52.28.233.226). Похоже, вы столкнулись с этой проблемой, упомянутой в списке рассылки jclouds? Если это так, мы должны создать правильную JIRA в jclouds, чтобы она была правильно исправлена.

name: IDA Ambari All Services with explicit Security Group
description: This Application is used to build one Ambari Server and a Cluster of Ambari Agents
origin: vendor
location: 
  jclouds:aws-ec2:
    region: eu-central-1
    identity: identity
    credential: credential
    osFamily: RHEL
    osVersionRegex: 6.*
    hardwareId: m3.medium
services:
- type: io.brooklyn.ambari.AmbariCluster
  brooklyn.config:
    initialSize: 2
    install.version: 2.1.0
    services:
      - FALCON
    provisioning.properties:
      networkName: subnet-003dfb7b
      templateOptions:
        securityGroupIds: sg-12345678
person Richard Downer    schedule 11.08.2015