Puppet incluem condicional baseado em fato selinux não funciona

3

Eu tenho uma turma em um módulo:

# File: modules/selinux/tools.pp
class selinux::tools {
        $packages = ['policycoreutils-python',]

        package { $packages:
                ensure => installed
        }
}

Então, meu nó padrão:

# File: manifests/nodes/default.pp
node default {
        if $selinux {
                include selinux::tools
        }
}

Eu reinicio o puppetmaster e o puppet agent. No entanto, o pacote é instalado no nó mesmo que selinux fact seja falso:

$ facter -p selinux
false

O que estou perdendo aqui?

    
por Belmin Fernandez 04.12.2011 / 03:30

1 resposta

8

O "verdadeiro" ou "falso" no selinux fact é apenas uma string para o Puppet, ele não trata o conteúdo da string como booleano. A coisa certa a fazer é apenas compará-lo a outra string:

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

Há uma solicitação de recurso para alterar o comportamento de modo que os booleanos do Facter sejam tratados adequadamente como booleanos fantoches.

    
por 04.12.2011 / 11:10