2016-10-19 10 views
0

私は外部の事実を設定しようとしていて、hiera yamlファイルの値が入力されたテンプレートファイルをコピーしようとしています。テンプレートファイルは、外部ファクトファイルによって設定される特定のファクト(テンプレートファイルの所有者やグループなど)に依存します。以下は人形のコードです。パペット:依存関係のチェーンが順番に実行されない

file {['/etc/facter/','/etc/facter/facts.d']: 
      ensure => directory, 
      owner => 'root', 
      group => 'root', 
      mode => '0755', 
    } 

    file {"/etc/facter/facts.d/domain_facts.sh": 
      ensure => present, 
      owner => 'root', 
      group => 'root', 
      mode => '0755', 
      source => $::hostname?{ 
        'hostname1' => 'puppet:///modules/vfecare/hostname1.sh', 
        }, 
      require => File['/etc/facter/','/etc/facter/facts.d'], 
    } 

    file {"/tmp/testing123": 
      ensure => present, 
      owner => "${::remoteuser}", 
      group => "${::remotegroup}", 
      content => template("vfecare/testscript.erb"), 
      require => File["/etc/facter/facts.d/domain_facts.sh"] 
    } 

しかし、実行時に、私はテンプレートが人形のエージェントマシンに最初にコピーされると、テンプレートは、それが外部の事実ファイルから必要ないくつかの値を有しているので、それは見つけることができないと、それは「無効というエラーをスローしていることがわかり所有者とグループの値 "となります。以下は

外部事実の内容が

#!/bin/bash 

echo "remoteuser=tempuser" 
echo "remotegroup=tempuser" 

を提出されたのはなぜ人形は、ここで依存サイクルを無視するように見えるのでしょうか?

答えて

3

ファクトは、ファイル・リソースを含むカタログが実行される前に、Puppet実行の開始時にエージェントによって収集されます。実行中に外部ファクトをデプロイすることはできません。ファクトが欠落しているため、このように使用することはできません。

代わりに、ファクトを収集する前に、外部ファクトをマスターからエージェントにコピーするPuppetの "pluginsync"メカニズムに依存する必要があります。

モジュール内のファクトファイルvfecare/facts.d/hostname1.shに移動し、/ etc/facterにあるファイルリソースを削除し、外部ファクトをコピーしてから、エージェントを再実行します。最初にhostname1.shファクトファイルをダウンロードしてから、/ tmp/testing123ファイルリソースをremoteuser/group値で正しく評価する必要があります。

詳細については、Auto-download of agent-side pluginsのドキュメントを参照してください。

+0

しかし、プラグインシンクは単にマシンのホスト名に基づいてファイルをコピーするのではなく、すべてのファクトファイルをコピーするだけです。これを達成する方法はありますか? – Iowa

+3

私はそれがダミーの例であると思っていました、ごめんなさい。私はあなたがHieraなどを使用してホスト名ごとの設定を行うほうがはるかに良いと思います。事実はホストからの情報の発見に関するものですが、ホストごとの事実をエージェントにこのように展開してから、それらをマスターに戻すことはほとんど意味がありません。 –

+1

良い説明ですが、彼は外部の事実を使用しようとしており、実際の事実は使用しようとしていません。また、Hieraは設計上の観点からは理にかなっていますが、PuppetがアクセスできるENCやCMDBのようなものは、さらに効率的できれいです。 –

関連する問題