Я использую puppet open source 3.1.0 из репозиториев puppetlabs на RedHat Enterprise Linux 6 и использую hiera 1.1.2. Я сталкиваюсь с ошибкой или фундаментальным непониманием с моей стороны того, как hiera работает с параметризованными классами. Я установил параметризованный подкласс со значением по умолчанию. Я пытаюсь установить другое значение на конкретном узле. Узел объявлен в одном из основных манифестов без классов, и у меня в нем есть hiera_include ('classes'). Пытаюсь изменить значение параметра «активировать» в классе «my_firewall». Когда мой файл узла hiera выглядит так:
---
classes:
- puppetmaster
rel::auth_users: ['puppet']
rel::my_firewall::activate: false
rel :: my_firewall даже не загружается (у меня есть уведомления для двух логических значений «активировать», но я их не вижу). Параметр rel :: auth_users передается нормально. Класс rel определен в родительском элементе hiera.
Когда я меняю его на это:
---
classes:
- puppetmaster
- rel::my_firewall
rel::auth_users: ['puppet']
rel::my_firewall::activate: false
Он загружает класс rel :: my_firewall, но использует значение по умолчанию, а не значение false.
В качестве проверки работоспособности, когда я определяю вещи обычным способом в манифесте узла, все работает нормально:
node 'puppet.my.domain' {
class { 'rel::my_firewall':
activate => false,
}
}
правильно объявляет класс и устанавливает активировать значение false.
Я что-то делаю неправильно? Мой синтаксис отключен? Любая помощь была бы потрясающей.
Синтаксис выглядит неплохо. Выглядит как ошибка 17474 - ложное значение загружается неправильно.
Как обходной путь до выхода 3.2, может быть, использовать строку?