2016-05-20 4 views
3

私はバゲットプロビジョニングにPuppetを使用しています。そのリソースが適用されパペットファイルリソースにはアーカイブリソースが必要

archive { '/tmp/glassfish-4.1.1.zip': 
    ensure  => present, 
    extract  => true, 
    extract_path => '/opt/', 
    source  => 'http://download.java.net/glassfish/4.1.1/release/glassfish-4.1.1.zip', 
    cleanup  => true, 
    creates  => '/opt/glassfish4', 
} 

した後、私はこの

file { 'domain.xml': 
    ensure => file, 
    path => '/opt/glassfish4/glassfish/domains/domain1/config/domain.xml', 
    source => 'puppet:///modules/glassfish/domain.xml', 
} 

私のように、新しく作成されたGlassFishのディレクトリにファイルを移動したい:私はこのようなGlassFishのをダウンロードして抽出するためにhttps://forge.puppet.com/puppet/archive/typesでアーカイブモジュールを使用しました抽出はすでにファイルが作成されているのではなく、ディレクトリであるため、抽出がすでに完了しているファイル移動リソースで必要とします。何かのように

require => FILE['..'] 

が機能しません。

+0

もしあなたが 'File'リソースでそれを行うことができるなら、構文は' require => File ['/ full/path/to/managed/file'] 'でしょう。大文字に注意してください。また、名前やタイトルでリソースを参照する必要があります。さらに、これはPuppet管理下にあるリソースに対してのみ機能します。これは実際には当てはまるかもしれませんが、確かに分かりにくいので、代わりに 'Archive'リソースとの関係を確立することが、フレデリック・アンリが提案した の方がはるかに良いアプローチです。 –

答えて

5

domain.xmlのファイルのコピー、アーカイブタスクの後に行われますように、あなたのファイルタスクが

file { 'domain.xml': 
    ensure => file, 
    path => '/opt/glassfish4/glassfish/domains/domain1/config/domain.xml', 
    source => 'puppet:///modules/glassfish/domain.xml', 
    require => Archive['/tmp/glassfish-4.1.1.zip'], 
    } 

のようなものになりますので、あなたは、アーカイブタスクにrequireを追加する必要があります。

関連する問題