Поиск одинаковых ключей в нескольких файлах hiera в марионетке с помощью команды поиска - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь прочитать ключ, присутствующий в нескольких файлах hiera, и объединить значения. Мой файл hiera содержит:

hierarchy:
  - name: "Per-env secrets"
    paths:
      - "puppet/hiera/dict-1.yaml"
      - "puppet/hiera/dict-2.yaml"

и скрипт My puppet содержит:

lookup(dictionaries,Hash).each |String $keyDico, Hash $valueDico| {
  notify{"The value of dictionary is: ${keyDico}": }

Ключевые словари присутствуют как в dict-1.yaml, так и в dict-2.yaml. Тем не менее, он всегда читает и печатает ключ из первого соответствующего файла hiera.
Я попытался изменить 'Hash' в аргументе функции поиска на 'Unique' или 'Deep'. Но это не сработало.

Получение ошибки: Error: Evaluation Error: Resource type not found: Deep и Error: Evaluation Error: Resource type not found: Unique
Есть ли способ достичь этого?

Заранее спасибо.

1 Ответ

0 голосов
/ 12 ноября 2018

Если вы посмотрите на документы для определения поведения слияния ( ref ), вы увидите, что вам нужно указать необязательный третий аргумент для lookup, и вы получаете эту ошибку, потому что "уникально" интерпретируется как тип данных.

Попробуйте либо:

lookup(dictionaries, Hash, 'unique')

или

lookup(dictionaries, Hash, {'strategy' => 'unique'})

в зависимости от того, что вы найдете более читабельным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...