基于 selinux 的 Puppet 条件包含实际上不起作用

基于 selinux 的 Puppet 条件包含实际上不起作用

我有一个模块中的类:

# 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

我在这里遗漏了什么?

答案1

事实上,对于 Puppet 来说,“true”或“false”selinux只是一个字符串,它不会将字符串的内容视为布尔值。正确的做法是将其与另一个字符串进行比较:

if $selinux == "true" {
    include selinux::tools
}

有功能请求改变行为以便 Facter 布尔值被正确地处理为 Puppet 布尔值。

相关内容