Поиск кукол не может найти значение ключа hiera - PullRequest
0 голосов
/ 16 января 2019

Я вижу эту ошибку при вызове поиска марионетки (базовый тест с использованием hiera):

puppet lookup --explain foo

Searching for "lookup_options"
  Global Data Provider (hiera configuration version 5)
    No such key: "lookup_options"
Searching for "foo"
  Global Data Provider (hiera configuration version 5)
    No such key: "foo"
Function lookup() did not find a value for the name 'foo'

Попытка прямого поиска в hiera работает:

hiera -d foo
DEBUG: 2019-01-16 11:53:39 +0000: Hiera YAML backend starting
DEBUG: 2019-01-16 11:53:39 +0000: Looking up foo in YAML backend
DEBUG: 2019-01-16 11:53:39 +0000: Looking for data source common
DEBUG: 2019-01-16 11:53:39 +0000: Found foo in common
bar

Мой файл hiera.yaml (находится в / etc):

---
version: 5
hierarchy:
  - name: Common
    path: common.yaml
defaults:
  data_hash: yaml_data
  datadir: data

Мой файл common.yaml (находится в / var / lib / hiera):

---
foo: bar

Может кто-нибудь объяснить, почему я вижу эту ошибку (довольно плохо знакомую с Puppet) ...

1 Ответ

0 голосов
/ 16 января 2019

Это проблема с расположением файла.

У меня есть:

▶ cat spec/fixtures/hiera/hiera.yaml 
---
version: 5
hierarchy:
  - name: Common
    path: common.yaml
defaults:
  data_hash: yaml_data
  datadir: data

Состав:

▶ tree spec/fixtures/hiera
spec/fixtures/hiera
├── data
│   └── common.yaml
└── hiera.yaml

Командная строка:

▶ puppet lookup --hiera_config=spec/fixtures/hiera/hiera.yaml foo 
--- bar

Обратите внимание, что каталог data, на который ссылается hiera.yaml в defaults.datadir, должен относиться к каталогу, в котором находится hiera.yaml. Ссылка :

datadir - каталог, в котором хранятся файлы данных; может быть опущено, если вы установите значение по умолчанию.

Этот путь относится к каталогу hiera.yaml: если файл конфигурации находится в /etc/puppetlabs/code/environments/production/hiera.yaml, а для datadir задан data, полный путь к каталогу данных будет / и т.д. / puppetlabs / код / ​​окружающая среда / производство / данные. * * тысяче двадцать-три

В глобальном слое вы можете установить абсолютный путь к datadir; в других слоях оно всегда должно быть относительным.

...