Puppet のプロビジョニング、新しいノード、マスターの設定の更新

Puppet のプロビジョニング、新しいノード、マスターの設定の更新

新しいノードをプロビジョニングするときに、1 つのノードの構成を更新する推奨される方法は何でしょうか?

例えば、クラスターのような環境があるとします

ノードをプロビジョニングしています。これらのノードは、他のノード(これも Puppet によって管理されます)上の memcached または MySQL サーバーにアクセスする必要があるとします。

新しいノードを追加するときに、新しいノードがジョブを開始できるようにするために、別のノードで必要な iptables 構成またはその他の初期構成手順を更新するにはどうすればよいですか?

現在、これらのタスクには自作の「プロビジョニング」システムを使用していますが、このような場合に Puppet を使用する便利な方法はありますか?

答え1

特に簡単ではありませんが、標準の Puppet リソースを使用すれば可能です。

次のような構成の場合ファイアウォールルール監視も簡単に行えます輸出された資源次のようなstoredconfigsバックエンドと組み合わせてパペットDB

エクスポートされたリソースの背後にある考え方は、Puppet マニフェストがターゲット ノードで実行されると、いくつかのリソースが「エクスポート」されて保存されるというものです。他のノードを構成してこれらのリソースを収集し、独自のマニフェストに適用することができます。

他の設定では、より巧妙に、連結エクスポートされたリソースに加えてモジュールを使用できます。たとえば、理論的にはエクスポートされた concat::fragment リソースを使用して、データベースの資格情報やロード バランサーの IP など、情報が必要なリソースを収集できます。

答え2

これはPuppetでは十分にサポートされていません。この種の情報を取得するには、PuppetDB をクエリする私の知る限り、Puppetにはこれを実行する機能はありませんが、パペット-puppetdbクエリと付け加える。チュートリアルはこちらこれら 2 つを組み合わせて、PuppetDB のデータを含む構成ファイルを生成します。

関連情報