MCollective による瞬時の Puppet デプロイメント

MCollective による瞬時の Puppet デプロイメント

注: この質問がどこに属するかわかりません。おそらく、サーバー障害ですが、私は主にハッキングとホームネットワークの目的で質問しているので、ここで質問しています。さらに、おそらく 10 秒から100秒以内にサイトから炎上して削除されるでしょう。そのため、私は Server Fault の使用を避けています。

私は、実際のマスターで Puppet を操作する感覚をつかむために、Puppet マスターと複数の Puppet クライアントを設定して、いろいろ試してみようと思っています。デフォルトでは、Puppet クライアント インスタンスは (私の知る限り) 30 分ごとに更新され、マスターに最新の構成を要求し、それが下りてきたらそれを適用します。

MCollective はメッセージ キューと並列処理を使用してコマンドをリアルタイムでクライアントにプッシュするため、これらの変更を実質的に瞬時に実行できると聞いています。

私は、Puppet マスターと Puppet クライアントを使用してこれを実行する方法を見つけようとしてきましたが、MCollective は、Puppet マスター用の単なるリアルタイム プラグインよりもずっと大きなプロジェクトのようです。

Puppet 構成の変更をリアルタイムで取得するには、シンプルな Puppet マスター、MCollective サーバー (およびメッセージ キュー)、および Puppet クライアントをどのように設定すればよいですか?

(私は大まかな方法​​は理解していますapt-get install redis-server puppetmaster mcollectiveが、MCollective と Puppet Master の統合が実際にどのように機能するかを理解したいと考えています。)

答え1

私はこれを試したことはありませんが、これはあなたが探しているもののように思えます:

抜粋

このエージェントは Puppet エージェントを管理します。古い puppetd ​​プラグインとは異なり、このエージェントは Puppet 3 と、そのロック ファイルおよびステータス ファイルに加えられた最近の変更をサポートします。

Puppet 3 の基本的なサポートに加えて、いくつかの新しい機能が追加されており、そのほとんどは Puppet 2.7 と 3 の両方で使用できます。

  • noop実行またはno-noop実行をサポート
  • 特定のタグへの実行の制限をサポート
  • スプレイ、スプレイなし、スプレイ制限をサポート
  • カスタム環境の指定をサポート
  • カスタムマスターホストとポートの指定をサポート
  • 無効化時のロックメッセージなどのPuppet 3機能をサポート
  • 新しい要約プラグインを使用して、適切な場所に便利な要約を提供します
  • 新しい検証プラグインを使用して、より豊富な入力検証とより優れたエラーを提供します。
  • 現在のパペットエージェントのステータスと最新の実行のステータスのデータソース

また、次のような抜粋もあります:

有効なすべてのPuppetノードを実行する

多くの場合、変更をコミットした後、インフラストラクチャのパフォーマンス制約の範囲内で、できるだけ早くその変更をインフラストラクチャに展開する必要があります。

Puppet マスターのパフォーマンスは、通常、維持できるカタログを適用している同時 Puppet ノードの最大数によって決まります。

MCollective インフラストラクチャを使用すると、現在有効になっていてカタログを適用しているマシンの数を判断できます。

したがって、インフラストラクチャ全体の Puppet 実行を、同時に実行される Puppet を可能な限り 10 ノードに近づけながら実行するには、次のようにします。

  $ mco puppet runall 10

関連情報