PuppetとHieraを使用してWindowsマシンでホストファイルを管理しようとしています。私の問題は、私が実際にHieraを使用したことがないことです。データコンテンツを適切なフォーマットに解析することに苦労しています。Puppetを使用してWindows上でhostsファイルを管理する
hieradata/hiera.yaml
の関連するセクションは次のようになります。
myhosts : [
'host1 1.2.3.4',
'host2 2.3.4.5',
'host3 3.4.5.6']
は私がホストモジュールを使用するコードを持っているが、それはまた、私が持っていないクラスに依存するので、当然それは動作しません。 。
class hosts::module (
$myhosts = hiera('myhosts'),
)
{
define update_hosts {
$value = split($name,' ')
host {
"${value[0]}" : ip => "${value[1]}",
}
}
update_hosts { $myhosts :; }
}
私は、代わりにhost
リソースのfile
リソースを使用してみました、また、任意のクラスなしでそれをやってみましたが、何らかの理由で私は、このエラー
Error: Could not retrieve catalog from remote server: Error 500 on SERVER:
Server Error: Evaluation Error: Error while evaluating a Resource Statement,
Evaluation Error: Error while evaluating a Resource Statement, Duplicate
declaration: File[C:\Temp\tmp.txt] is already declared in file
/etc/puppetlabs/code/environments/production/manifests/site.pp:4; cannot redeclare
at /etc/puppetlabs/code/environments/production/manifests/site.pp:4
at /etc/puppetlabs/code/environments/production/manifests/site.pp:4:1
at /etc/puppetlabs/code/environments/production/manifests/site.pp:10 on node puppet-agent
あなたが見ることができるように取得していています私は宣言が重複していると主張していますが、奇妙なのは同じ行に問題があると言います。何らかの理由で同じことを2回宣言していると考えています。
これは私が今持っているコード(私はそれが動作しません知っているが、エラーが本当に関連鳴りません)
define hosts_update($content) {
file { 'C:\Temp\tmp.txt' :
ensure => file,
content => $content,
}
}
hosts_update{ hiera('myhosts'):
content => split($name," "),
}
この権利を行うにはどのように任意のアイデア?
これはコードです。 – Ori
'site.pp'の中にクラスの中に定義を入れますか? –