2017-01-16 4 views
2

Puppet 4で問題を解決する方法について何時間も考えていました。ここで人形で正しくエクスポートされたリソースを使用する方法

は、私の場合です:

私はモジュール "カサンドラ" を持っている、と私は3機

  • クラスタ1(ホスト名:CassandraCluster1)持って
  • クラスタ2(ホスト名:CassandraCluster1を
  • Cluster3(ホスト名:CassandraCluster1

私は、配列内の3つのクラスタのホスト名を集めたいので、私は(私はテンプレートEPPとして使用しています)カサンドラ・コンフィギュレーション・ファイルに渡すことができます。

cassandra.yaml。 EPP

- seeds: "<%= $cluster::hostnames %>

だから、解決策がエクスポートされるリソースは、私は:)

思い付きました

私は一日中遊んできましたが、この作業をどのように補うか考えていません。私はホスト名を収集するために、このコードを追加し、各クラスタに

:ここで私が試したものです

@@file {"${hostname}": 
     content => 'epp(puppet://modules/cassandra/cassandra.yaml.epp)', 
} 
    # Collect: 
File <<| |>> 

しかし、これは良いアイデアである場合、私はわかりません?!

+0

を添付見つけるために、このクエリを使用するには、あなたがやろうとしているものです:1.バックPuppetDB 2にごカサンドラ・マシンのホストをエクスポートします。ホストを収集する3.ホストを変数に割り当てる4.テンプレートで変数を使用するか? –

+0

こんにちは、これはまさに私がやりたいことです! – user2841703

答えて

1

私は私が今使っている一時的な解決策を見つけた:

私は各マシンに追加している役割の事実を持っています。 puppetdbqueryモジュールを使用してpuppetdbからホストを取り戻しています。

、その後人形コードに私は役割を持つノードが

$hosts = query_nodes("role=apache") 
関連する問題