Ожидается найти карту по пути '/ instance_groups / name = bosh / jobs / uaa', но найдено '[] interface {}' - PullRequest
0 голосов
/ 26 ноября 2018

Попытка развернуть BOSH Director, интегрированную с LDAP и столкнуться с проблемами.Вот мои шаги.

  1. Клон последнего хранилища:

git clone https://github.com/cloudfoundry/bosh-deployment

Создать файл vars и заполнить его.

Изменить opsfile для ldap

Файл: ldap.yml

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.enabled?
  value: "true"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.profile_type
  value: "search-and-bind"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.url
  value: "ldap://XXXX.XXXXXXX.XXX"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.userDNPatternDelimiter
  value:  ";"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.userDN
  value: "XXXXX\\XXXXXXXXX"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.userPassword
  value: "XXXXXXXXXX"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.searchBase
  value: "dc=XXX,dc=XXXXXXX,dc=XXX"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.searchFilter
  value: "cn={0}"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.passwordAttributeName
  value: "userPassword"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.passwordEncoder
  value: "org.cloudfoundry.identity.uaa.ldap.DynamicPasswordComparator"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.sslCertificate
  value: ""

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.ssl.skipVerification?
  value: "true"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.ssl.tls
  value: "none"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.mailAttributeName
  value: "mail"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.mailSubstitute
  value: ""

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.mailSubstituteOverrridesLdap?
  value: "false"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.referral
  value: "follow"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.groups.profile_type
  value: "groups-map-to-scopes"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.groups.searchBase
  value: "dc=XXX,dc=XXXXXXXXX,dc=XXX"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.groups.groupRoleAttribute
  value: "member"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.groupSearchFilter
  value: "member={0}"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.searchSubtree?
  value: "true"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.maxSearchDepth
  value: "1"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.emailDomain
  value: ""

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.attributeMappings
  value:
    user.attribute.name-of-attribute-in-uaa-id-token: name-of-attribute-in-ldap-record
    user.attribute.name-of-other-attribute-in-uaa-id-token: name-of-other-attribute-in-ldap-record

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.storeCustomAttributes?
  value: "true"

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.externalGroupWhitelist?
  value: ""

- type: replace
  path: /instance_groups/name=bosh/jobs/uaa/properties/uaa.ldap.add_shadow_user_on_login?
  value: "true"

Запустите сценарий развертывания:

#!/bin/bash
bosh create-env bosh-deployment/bosh.yml \
    --state=state.json \
    --vars-store=creds.yml \
    --vars-file=vars.yml \
    -o bosh-deployment/vsphere/cpi.yml \
    -o bosh-deployment/uaa.yml \
    -o bosh-deployment/ldap.yml \
    -o bosh-deployment/misc/dns.yml \
    -o bosh-deployment/misc/ntp.yml \
    -o bosh-deployment/jumpbox-user.yml

Получение ошибки:

Deployment manifest: '/Users/user1/workarea/bosh-1/bosh-deployment/bosh.yml'
Deployment state: 'state.json'

Started validating
Failed validating (00:00:00)

Parsing release set manifest '/Users/user1/workarea/bosh-1/bosh-deployment/bosh.yml':
  Evaluating manifest:
    Expected to find a map at path '/instance_groups/name=bosh/jobs/uaa' but found '[]interface {}'

Exit code 1

Все работает хорошо, если я удаляю файл ops для интеграции с LDAP (bosh-deployment/ldap.yml) - BOSH, UAA и т. Д. Развернуты.Я не понимаю, почему это будет жаловаться.UAA создает работу в BOSH, и я передаю файл ops после файла uaa.yml.Он должен был уже иметь возможность создавать задания UAA в развертывании BOSH.

Есть какие-нибудь подсказки?

Большое спасибо !!

1 Ответ

0 голосов
/ 10 декабря 2018

Отвечая на мой собственный вопрос.Мне пришлось ввести в путь ?/-, чтобы можно было создать новый элемент в ldap.После этого я смог развернуть среду с новым OpsFile.

- type: replace
  path: /instance_groups/name=bosh/jobs/name=uaa/properties/ldap?/-
  value:
    enabled: true
    profile_type: "search-and-bind"
    url: "ldap://ldap.localnet.com"
    userDN: 'XXXX\\XXXXXXX'
    userPassword: 'XXXXXXXXXX'
    searchBase: "dc=local,dc=localnet,dc=com"
    searchFilter: "cn={0}"
    passwordAttributeName: "userPassword"
    passwordEncoder: "org.cloudfoundry.identity.DynamicPasswordComparator"
    sslCertificate: ""
    ssl:
     skipVerification: "true"
     tls: "none"
    mailAttributeName: "mail"
    mailSubstitute: ""
    mailSubstituteOverrridesLdap: "false"
    referral: "follow"
    groups:
     profile_type: "groups-map-to-scopes"
     searchBase: "dc=local,dc=localnet,dc=com"
     groupRoleAttribute: "member"
    groupSearchFilter: "member={0}"
    searchSubtree: "true"
    maxSearchDepth: "10"
    emailDomain: ""
    storeCustomAttributes: "true"
    externalGroupWhitelist: ""
    add_shadow_user_on_login: "true"
...