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


10

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

例えば:

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

サーバーの整合性を重視する場合は、少なくともhttpsを使用してください。そして、誰がそのドメインを制御しているのかわからない、より信頼できるドメインcosを使用します。
mc0e 2014年

回答:


4

Fileリソースが実際にHTTPソースを実装していることを将来の読者に通知するために、更新された回答を書いています。

ドキュメントから:

ソース

ローカルシステムの所定の場所にコピーされるソースファイル。この属性は、コンテンツおよびターゲットと相互に排他的です。許可される値は次のとおりです。

  • puppet:モジュール内のファイルまたはPuppetファイルサーバーのマウントポイントを指すURI。
  • ローカルで利用可能なファイル(NFS共有またはWindowsにマップされたドライブ上のファイルを含む)への完全修飾パス。
  • file:URI。ローカルファイルパスと同じように動作します。
  • http:一般的なWebサーバーによって提供されるファイルを指すURI

だから、あなたが書いたようにあなたは構造を使うことができます:

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

2
Puppetバージョン4.4.0以降(チケットticket.puppetlabs.com/browse/PUP-1072経由)
KJH

4

それはされています機能として要求された年の...しかし、あなたは、このためにカスタム関数を必要と終わるだろう...または使用しますcurlwgetPuppet Forgeを参照してください。

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


txt.txtは単なる例です。私は実際にそれを使用して、管理システムからFreeradiusクライアントをプルします。
gunwin 2014年

4

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

ソース:

...

使用可能な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'
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.