web-dev-qa-db-ja.com

PuppetファイルソースはWebサービスからのものですか?

ファイルのソースプロパティにインターネットで利用可能なファイルをパペットに使用させる(簡単な)方法はありますか?

例えば:

file { "/home/text.txt":
  source => [
    "http://www.example.com/text.txt",
  ]
}
10
gunwin

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",
}
4
dr_

機能としてリクエストされました 何年もの間...しかし、このためのカスタム関数が必要になる...またはcurlまたはwgetを使用することになります。 Puppet Forge を参照してください。

Text.txtには何がありますか?

4
ewwhite

現在のところ、そのままでは不可能です。

ソース:

...

使用可能な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'
}
4
Glueon