Puppet 检查类是否存在

Puppet 检查类是否存在,puppet,Puppet,如果给定类存在,是否有方法签入清单文件 我想这样做: class foo { if exists( Class["foo::${lsbdistcodename}"] ) { include foo::${lsbdistcodename} } } 因此,我可以很容易地添加发行版/版本特定的类,然后这些类会自动包含进去。您应该使用defined而不是exists语句。 以下代码片段对我很有用: class foo { if defined( "foo::${

如果给定类存在,是否有方法签入清单文件

我想这样做:

class foo {
    if exists( Class["foo::${lsbdistcodename}"] ) {
        include foo::${lsbdistcodename}
    }
}

因此,我可以很容易地添加发行版/版本特定的类,然后这些类会自动包含进去。

您应该使用defined而不是exists语句。 以下代码片段对我很有用:

class foo {
    if defined( "foo::${lsbdistcodename}") {
            notify {'defined':}             
            include "foo::${lsbdistcodename}"
    }
}

class foo::precise {
    notify{'precise':}
}

[假设您运行的是puppet version>2.6.0]

很好,谢谢,但这不起作用,因为类尚未定义。这就是我问题的全部要点。我想检查这个类是否存在,并且我可以包含它。你发布的代码实际上什么也做不了。如果该类未包含,则条件为false,如果该类已包含,则包含将不再包含它…对我不起作用。我正在运行puppet 2.7.18:
如果定义(Class['common']){notice('yes')}
将不输出任何内容,而
包括common
如果定义(Class['common']){notice('yes')}
输出'yes'好的,
定义的(“Class”)
检查类是否存在,以及
定义的(Class[“Class”])
检查是否已加载。谢谢你的帮助!