Ansibleによるアップグレードがしばしば「冪等性」と見なされるのはなぜですか?

Ansibleによるアップグレードがしばしば「冪等性」と見なされるのはなぜですか?

私は、等級関数がアプリケーションを本質的に変更せずに(数字に0を追加したり、その数に1を掛けるなど)、複数回返すことができる結果を返すことを知っています。

some_package_manager upgrade X -yこの意味で、Ansible+cron スケジューリングを介して実行される操作は、等しくstate=latestありません。結果が本質的にアプリケーションを変更するためです。それぞれの新しいアップグレードには新機能があります。

では、「等級Ansible Ad Hoc Command/Playbook」という概念はいつ、なぜ、いつ登場したのでしょうか。

答え1

「勃起不全」は構成管理システムの属性であり、Ansibleはそのうちの1つにすぎません。人形また、Ansible と同様に、自分を冪等性として説明します。どちらも厳格な冪等性を破る方法を提供するので、「準冪等性」と言う方が正確です。

私はあなたの問題が部分的に冪等性のより正式な意味についての誤解から生じると思います。これは、何度も適用しても同じ結果を提供する操作です。

ゼロを加えるか、または1を掛けることはすべて等級の定義を満たしますが、私たちはそれを冪等性と呼びます。些細等級。これは無動作であり、一般に冪等性は必ずしも無動作ではありません。

いくつかの例は、等級のより一般的な直感を得るのに役立ちます。

  • 数字を数字で割ります。
  • それ自体から数字を引く。
  • 3D オブジェクトをサーフェスに平坦化: 一旦平坦化した後、さらに平坦化しても形状は変更されなくなります。
  • 燃える丸太:完全に燃焼したら、より多くの炎を加えると、もう燃えるのを防ぐことができます。
  • コーヒーをお湯に溶かすには、スプーンを使用してください。コーヒーが溶けたら、もう混ぜてもコーヒーは「より溶けません」。
  • 犬に「座って」と尋ねる:このコマンドは最初は機能しますが、その後の「座って」コマンドは機能しません。
  • あるコンピュータから別のコンピュータに設定ファイルをコピーする:最初のコピー後にファイルを再コピーすると、ターゲットファイルは変更されなくなります。

最後の 2 つの例は、構成管理システムの文脈で冪等性が意味するものに最も近いものです。最も簡単な方法は、ファイルをコピーするか、コマンドを実行してリモートコンピュータを希望の状態にすることです。リモコンがその状態にある場合は、ファイルをコピーしたりコマンドを再実行したりしても効果はありません。

冪等性がAnsibleやPuppetなどの構成管理システムの望ましい属性として奨励されるのは、多数のサーバーを管理するときに、同じ構成をできるだけ多くのサーバーが持つことが最も便利なためです。一貫性を高めるには、必要な設定ファイルをコピーし、ファイアウォールなどを同じ方法で設定します。しかし、これを繰り返し実行できることは良いことです。これは、大規模なサーバーファームを運用するときに、一部のメンテナンスやアップグレードによってどの部分が少しずれたのかを計算するのに時間を無駄にしたくないからです。すべてのサーバーに「好みの構成を採用してください」と一度に通知できるようにしたいだけです。

それは、犬の家を管理しようとしたときに犬がすべて座ることを望むのと同じです。犬のいくつかはすでに座っていましたが、他の犬は立っていました。 「座って」コマンドを出すことは、すでに座っている人には影響しませんが、部屋全体を目的の統合構成にインポートします。

関連情報