У меня есть класс в модуле:
# File: modules/selinux/tools.pp
class selinux::tools {
$packages = ['policycoreutils-python',]
package { $packages:
ensure => installed
}
}
Затем мой узел по умолчанию:
# File: manifests/nodes/default.pp
node default {
if $selinux {
include selinux::tools
}
}
Я перезапускаю puppetmaster
и puppet
агент. Однако пакет устанавливается на узел, даже если selinux
факт ложен:
$ facter -p selinux
false
Что мне здесь не хватает?
"Истина" или "ложь" в selinux
fact - это просто строка для Puppet, он не обрабатывает содержимое строки как логическое значение. Правильнее всего просто сравнить его с другой строкой:
if $selinux == "true" {
include selinux::tools
}
Есть запрос функции , чтобы изменить поведение, чтобы логические значения Facter правильно обрабатывались как логические значения Puppet.