ファイルのソースプロパティにインターネットで利用可能なファイルをパペットに使用させる(簡単な)方法はありますか?
例えば:
file { "/home/text.txt":
source => [
"http://www.example.com/text.txt",
]
}
Fileリソースが実際にHTTPソースを実装していることを将来の読者に通知するために、更新された回答を書いています。
the docs から:
ソース
ローカルシステムの所定の場所にコピーされるソースファイル。この属性は、コンテンツおよびターゲットと相互に排他的です。許可される値は次のとおりです。
- puppet:モジュール内のファイルまたはPuppetファイルサーバーのマウントポイントを指すURI。
- ローカルで利用可能なファイル(NFS共有またはWindowsにマップされたドライブ上のファイルを含む)への完全修飾パス。
- file:ローカルファイルパスと同じように動作するURI。
- http:URI、一般的なWebサーバーによって提供されるファイルを指す
だから、あなたが書いたようにあなたは構造を使うことができます:
file { "/home/text.txt":
source => "http://www.example.com/text.txt",
}
機能としてリクエストされました 何年もの間...しかし、このためのカスタム関数が必要になる...またはcurl
またはwget
を使用することになります。 Puppet Forge を参照してください。
Text.txtには何がありますか?
現在のところ、そのままでは不可能です。
ソース:
...
使用可能なURIスキームは、人形とファイルです。 Puppet URIはPuppetの組み込みファイルサーバーからファイルを取得します
私はインターネットで見つけたdefine
を使用してしまいました:
define remote_file($remote_location=undef, $mode='0644'){
exec{ "retrieve_${title}":
command => "/usr/bin/wget -q ${remote_location} -O ${title}",
creates => $title,
}
file{$title:
mode => $mode,
require => Exec["retrieve_${title}"],
}
}
remote_file{'/home/text.txt':
remote_location => 'http://www.example.com/text.txt'
}