2017-11-22 7 views
1

存在を確認してください。パペットcronジョブ - ファイルは、私は次の構造を持つ人形のcronジョブを設定しようとしている

上記の
file { '/usr/local/sbin/file.py': 
    mode => '0755', 
    source => 'puppet:///modules/file.py', 
    require => File['/usr/local/sbin'] 
} 

cron { "cronjob": 
    require => "ALL_THE_FILES_ABOVE" 
    command => "...command_to_run_script..." 
    minute => '*/1' 
} 

すべてを1つのファイルrun_script.ppです。私はrequire => "ALL_THE_FILES_ABOVE"の部分をどのようにコードすることができるのだろうかと思います。

ありがとうございます!

答えて

0

あなたは複数を使用することができますが

file{'path/foo':} 
file{'path/bar':} 
file{'~/foobar': 
    require => [ File['path/foo'], File['path/bar'] ] 
} 

またはあなたが

矢印の順序付けを使用することができます必要 - >(矢印を注文し、ハイフンと大なり記号) - 上のリソースを適用します右側のリソースの前にある左。ここで

file{'path/foo':} -> 
    file{'path/bar':} -> 
    file{'~/foobar':} 

パペット

2

relationships and orderingの詳細については、あなたの質問に提供された情報に基づいており、私はrun_script.ppの内容が多くfile資源であると記載されているという仮定を作るつもりですcronリソース。 cronリソースにそのクラスのすべてのfileリソースを必要としたいと述べています。これに基づいて、ここではきれいで効率的なソリューションです。

あり、クリーンで効率的な解に到達するには、いくつかの先進的な/複雑な方法がありますが、理解するのが最も簡単で、リソースのデフォルトを使用することです:これでhttps://puppet.com/docs/puppet/5.3/lang_defaults.html

を、我々はのための属性/値ペアのデフォルトを確立することができますすべてfileリソースがそのスコープに含まれています。
File { before => Cron['cronjob'] }

注このメソッドへの警告があるでしょう:これはあなたのクラスでワンライナーを解決を簡素化しhttps://puppet.com/docs/puppet/5.3/metaparameter.html#before

:これは、簡単に代わりfileリソースにbeforeメタパラメータを使用するようになるだろうつまり、このマニフェスト内でクラスを宣言、要求、または含む場合、このデフォルトをその「有効範囲」に拡張して循環依存を引き起こす可能性があります。その場合、式ごとのリソースのデフォルト属性を使用する必要があります。https://puppet.com/docs/puppet/5.3/lang_resources_advanced.html#per-expression-default-attributes

関連する問題