Я использую хеш-символ Hiera для хранения некоторых значений токена, которые зависят от узла. ключи в хеш соответствуют имени хоста/certname узла (ов), которые будут классифицированы с модулем профиля, который вызывает хеш-значение. Однако, когда я применяю модуль, значение, соответствующее хэш-ключу для хоста, всегда равно нулю. Вот код, с которым я работаю.Куколка: ключи хеширования на основе имени хоста никогда не извлекают значение
в hiera-file.yaml
token_lookup:
host-name1: 'abcdef123'
host-name2: 'abbcde456'
и profile.pp
$_tokens = hiera_hash('token_lookup', undef, 'hiera-file')
$_specific_token = $_tokens["${::hostname}"] <== never gets a value
Я уверен, что имя хоста соответствует ключу в хэш. Вопрос в том, какой правильный синтаксис здесь для правильного заполнения значения из файла hiera? Заранее благодарю вас за совет.
Редактировать: Я считаю, что я обнаружил проблему, когда хэш-ключ имеет буквальный символ «-» в нем, как это делают многие имена хостов. Я обновил хэш, чтобы показать ключи с тире в нем, и теперь должен задать более конкретный вопрос: я вижу десятки статей о том, как избежать символов в значениях хэшей, используя двойные кавычки, но я ничего не вижу - даже на yaml.org - о том, как избежать символа, если он отображается как часть ключа. Любые советы по этой проблеме? Парсер YAML показывает, что это допустимо синтаксически, но я считаю, что он обрабатывает «-» как маркер коллекции, а не буквенный символ.
вы убедились, что файл используется на всех? Что вы собираете * любые * данные? Вы запускали с включенным режимом отладки? Использовал CLI 'hiera' для отладки? –
Да, остальные функции нормального поиска отлично работают; это только тот, который не заполняется, как я ожидал. Попробуем hier CLI - оцените подсказку – Patrick
Вы пробовали процитировать хеш-ключи? –