9

Chef または Puppet で設定ファイルの行を変更するとアンチパターンと見なされるのはなぜですか? 悪い癖のようなものだと、私は理解していました。このファイル編集は、冪等な方法と高度なツール (たとえば augeas) を使用して行われると想定しています。

ERB テンプレートを使用してファイル全体を展開することが推奨される方法と見なされるのはなぜですか?

dev-ops がファイル編集の代わりにテンプレートの使用を提案している多くの例を見つけることができます。たとえば、こちらこちらこちらなど。

4

2 に答える 2

13

実際、DevOps コミュニティの大部分は、構成ファイルのシステム/パッケージのデフォルトを受け入れ、必要なもののみを変更することをaugeas優先する方法として見ています。 )。

常にテンプレートを使用するというデフォルトのパターンを使用すると、メンテナンス負荷が高くなりすぎて、ほとんどの場合、スタック全体のすべてに対して特定のバージョンをロックする必要があるか、そのリソースの新しいバージョンに対して互換性のないテンプレートを使用するリスクがあると思います。

両方のオプションの使用例がありますが、一般的に、「所有する必要がない場合でもすべてを所有する」よりも、「できるだけ所有しない」方を好みます。

于 2013-02-14T22:56:53.623 に答える
5

システムを既知の状態に設定するという点では、ファイル全体を展開するほうが編集よりも優れています。

問題の潜在的な解決策を見つけようとしていて、構成ファイルを手動で編集している場合、手動で編集したものが環境の制御されていない部分として残り続けることを心配する必要はありません。次回chef-clientを実行すると、状態がChefレシピで指定されたとおりになり、編集が含まれないことがわかります。

また、ファイルを生成するよりも、ファイルを堅牢に編集する方が一般的に難しく複雑です。基本的なケースでは冪等なものを書くかもしれませんが、ファイルに構文エラーや無効なものが含まれていると、編集が機能しなくなります。

いつものことですが、選択の余地がなく、編集しか方法がない場合もあります。

于 2013-02-14T22:37:59.840 に答える