web-dev-qa-db-ja.com

Puppet:命名規則に基づく条件付きファイルソース

私の環境では、パペットでボールが転がっています。モジュール自体に命名規則に基づくファイルが含まれているかどうかに基づいて、条件付きのfileリソースが必要です。

したがって、視覚的には、「mysql」という名前のモジュールとそのレイアウトを想定します。

mysql/
    /files
        /etc/
            my.cnf
            my.hostname1.cnf
            my.hostname2.cnf
     /manifests
            init.pp
...

そのため、モジュールのリソースが存在するかどうかをブロックで確認し、それに応じて疑似用語でアクションを実行する必要があります。

file { '/etc/my.cnf':

  if -f 'puppet:///mysql/etc/my.$hostname.cnf' {
      source => 'puppet:///mysql/etc/my.$hostname.cnf'
  }
  else {
      source => 'puppet:///mysql/etc/my.cnf'
  }
}

この方法では、ホスト固有のcaseステートメントを使用してcsvファイルまたは.ppファイルを管理する必要はありません-これは可能ですか?

3
thinice

現在の リソースファイルタイプのドキュメント は、file{'/etc/my.cnf': source => [ "puppet:///mysql/etc/my.$hostname.cnf" , "puppet:///mysql/etc/my.cnf" ] }を実行できることを指定しています

7
becomingwisest