手作業による変更とプロビジョニングは手間がかかりません。彼らは一緒にお茶を飲むことさえしません。
仕事では、すべてのアーキテクチャを管理するためにpuppetを使用します。パフォーマンスのボトルネックや攻撃などのために、急いで手作業で変更を加える必要があります。
私たちが行うことは、最初に、パペットが特定の調整なしで配信できるように、アーキテクチャのすべての部分をセットアップできることを確認することです。
次に、手作業で変更を加える必要がある場合、パペットが管理するファイルを急いでいじらない限り、リスクはありません。パペットが管理するファイルの場合、変更する必要があるのは、パペットエージェントを停止して何でもするだけです。必要です。
急いで終了した後、次のように進めます。
これらの変更は、同じ症状のすべてのサーバーに適用する必要がありますか?
その場合、実行ごとにエージェントで実行されるコードである「facts」と呼ばれるpuppetを開発し、すべてのpuppetモジュールで使用可能な変数に結果を保存できます。たとえば、ファイアウォールのためにipconntrackmax値を変更した場合すべての接続を処理できなかったため、現在のconntrackカウント値を使用して変数を実行するたびに(10行のコードで)簡単にpuppetを実行できるため、現在の使用状況に関連する最大値を設定するようにpuppetに指示します。そうすれば、他のすべてのサーバーがこの調整の恩恵を受け、おそらくconntrackの問題に対処する必要がなくなるでしょう(デフォルトである短い頻度でpuppetを実行し続ける限り)
これらの変更は、特定の緊急事態に常に手作業で適用する必要がありますか?
構成がpuppetによって管理されている場合は、構成に他のファイルを含める方法を見つけて、puppetにそれを無視するように指示します。これが最も簡単な方法ですが、常に可能であるとは限りません(たとえば、/ etc / network / interfacesはincludesをサポートしていません)。それが不可能な場合は、緊急時にパペットエージェントを停止して、次のパペット実行時に削除されるリスクなしにパペットファイルを変更できるようにする必要があります。
これはこのホストに対してのみ変更され、他のホストはこれを必要としませんか?
とにかく人形に追加してください!$ fqdn == my.very.specific.hostの場合は甘いものを配置し、必要なものは何でも中に入れます。単一のケースであっても、サーバーに行ったすべての変更をサーバーに移行することは常に有益です(そして時間がかかります)。何らかの理由でサーバーがクラッシュして回復不可能な状態(ハードウェアなど)になった場合にサーバーセットアップを完全に復元できるようになります。問題)
要約すれば:
私にとって、手作りの変更に対処する秘訣は、変更をどのように行うかを推論することに多大な労力を費やし、緊急事態が終わった後、そのロジックを人形に移します。特定のソフトウェアスロットですべてが使用されたが、サーバー上で空きメモリがまだ利用可能であるために何かがおかしいと感じた場合は、トラフィックのピークに対処するために、より多くのスロットを実行できるようにするのが合理的でした。その後、そのロジックをpuppetに移動するのに時間を費やします。 。もちろん、非常に慎重に、そしてそれをテストしたいアーキテクチャ上のさまざまなシナリオの量と同じくらい時間がかかりますが、最終的には非常にやりがいがあります。