web-dev-qa-db-ja.com

クラスが存在するかどうかを確認します

特定のクラスが存在する場合にマニフェストファイルをチェックインする方法はありますか?

私はこのようなことをしたい:

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

そのため、配布/バージョン固有のクラスを簡単に追加して、自動的に含めることができます。

14
Michael Krupp

存在ステートメントの代わりに定義済みステートメントを使用する必要があります。次のスニペットは私のために機能します:

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

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

[puppetバージョン> 2.6.0を実行していると仮定]

13
LiorH