web-dev-qa-db-ja.com

アクティブなパペットエージェントは、ダウンしたパペットマスターをどのように処理しますか?

操り人形エージェントが更新の最中であり、操り人形マスターサービスを停止するとします。以下で説明するように、不完全または破損したセットアップが押し出される可能性があるという点はありますか?

背景:

Puppet構成ファイルに継続的インテグレーションとバージョン管理(BambooとStash)を使用しています。

再デプロイプロセス中に問題が発生しました。実稼働ブランチに対してプルリクエストを実行すると最も目立ちますが、他の場所でも発生します。 puppetエージェントが、プッシュバックされる前に削除されたリソースファイルにアクセスしようとしている可能性があります。非常にまれですが、これはあらゆる種類の大混乱を引き起こしました。特に、ファイルステートメントを使用してディレクトリ全体をプッシュするモジュールではそうです。

私が思いついた最も賢明なことは、デプロイ中にパペットマスターサービスを停止してからキックバックすることですが、パペットマスターを停止した場合の影響については何も表示されていません。中古。

3
Tim Brigham

再帰的デプロイの場合、前回の実行中に変更されたファイルがないと仮定しても問題はないはずです。したがって、前から設定されたファイルは後から同じになりますか?

正しい。ファイルを置き換える決定は、クライアントとサーバーからのmd5ハッシュの比較に基づいて行われます。実行中にマスターを停止すると、残りのすべてのファイルリソースでエラーが発生するはずです。ファイルの部分的なコピーが配置されることはありません。

3
Shane Madden

操り人形の実行にはいくつかの異なる部分があります。

  1. ノードは自分自身からファクトを取得し、それらをパペットマスターサーバーに送信します
  2. Puppet masterサーバーは、サーバーからこれらのファクトを受け入れ、ファクトを報告したノードで実行する必要があるカタログをコンパイルします。これには、管理されるファイルの内容が含まれます。
  3. カタログはノードに送信され、ノードはそのカタログをローカルに適用します。
  4. ノードはその実行を報告します

したがって、このプロセスのどこにいるかに応じて、実行が完全に失敗するか、ノードの実行が続行されてレポートに失敗します。

あなたが言及しているような破損したファイルに問題はないはずです。

1
Adam Henderson