Сбой поиска источника данных на новом узле

Я пытаюсь настроить новый узел, используя puppet, но он терпит неудачу с ошибкой, которая заставляет меня поверить, что hiera не находит правильный источник данных:

Server Error: Evaluation Error: Error while evaluating a Function Call, undefined method `empty?' for nil:NilClass at ${line 4 in some selfwritten class}

Я также получил эту ошибку, но я не помню, что я изменил (если что-нибудь), что привело к этому:

Server Error: Evaluation Error: Error while evaluating a Function Call, Unknown alias: 3B4007E7596ADF847ECA510D57069DBF2B3DB006 at ${line 4 in the same selfwritten class}

Строка в классе, на которую жалуется кукла, выглядит так:

$network = hiera("network")

Это первая строка в классе. Этот же поиск работает на другом узле.

Мой /etc/puppetlabs/puppet/hiera.yaml выглядит так

---
:backends:
  - yaml
:hierarchy:
  - "nodes/%{::trusted.certname}"
  - "customer/%{customer}"
  - "preview/%{preview}"
  - "test/%{test}"
  - common

:yaml:
# datadir is empty here, so hiera uses its defaults:
# - /etc/puppetlabs/code/environments/%{environment}/hieradata on *nix
# - %CommonAppData%\PuppetLabs\code\environments\%{environment}\hieradata on Windows
# When specifying a datadir, make sure the directory exists.
  :datadir:

Этот новый узел имеет в своем манифесте

$customer='foo'

Пока рабочий узел имеет

$customer='bar'

У меня есть файл yaml для каждого, и yamllint показывает ошибки или предупреждения для hiera.yaml или двух ниже.

ls /etc/puppetlabs/code/environments/production/hieradata/customer/

foo.yaml    bar.yaml

Первая строка в соответствующем файле yaml определяет строку для этой сети значений:

network: "172.28.11"

Я пытался использовать поиск кукол для устранения этой проблемы, но пока безуспешно

puppet lookup --environment production --debug --explain --node foo-app1.domain.tld --compile network 

<snip lots of unrelated stuff>
Debug: hiera(): Looking for data source customer/foo
Error: Could not run: Evaluation Error: Error while evaluating a Function Call, Unknown alias: 3B4007E7596ADF847ECA510D57069DBF2B3DB006 at {same class and line}

Если я запускаю эту команду без --compile, она завершается без ошибок, но также без поиска источника данных клиента

  • Все узлы работают под управлением Debian Jessie (8)
  • Puppetserver является версией 2.5.0 от официального репо Puppetlabs для Джесси
  • Я попробовал версию агента-марионетки из Джесси (3.7.2) и из Backports (4.8.2) - без разницы

Итак: Почему этот узел не выполняет поиск по иерархии? Как мне это исправить? Как правильно использовать поиск кукол для извлечения этого значения из рабочего узла? (чтобы помочь в отладке)

0 ответов

Другие вопросы по тегам