私は管理者というよりはLinuxアプリケーション開発者です。時が経つにつれて、私はサーバーを構築して保守し、時にはサービスを提供するために、主に私が作業するアプリケーションを開発するために使用しました。
アカウントにファイルを作成して、各マシンで行ったことをメモして、他のマシンに移行したときにそれを複製できるようにしたときのことです。
今日、私は何かプライベートなtracインストールをインストールし、それをブログプラグインをインストールし、それを使用して、インストールするすべてのもの、実行するほとんどのコマンド、および出力をメモします。これにより、「キャプテンのログ」として非常に役立つwikiとブログの組み合わせが提供されます。これは主に、新しいクリーンマシンに移行するときに、起動するのがはるかに簡単になるようにするためです。
それでも、他の人がこれをインストールし、削除し、実行し、この構成をセットアップするのを見ると、私はいつも驚いています...彼らが何をしているかを実際に記録する方法を使用していないようです。
あなたは何をしますか、そしてどのようなツールが利用可能ですか?
私は特に、少数の人のために数台のマシンを維持することと、実際のサービスを提供する数台から数十台のマシンを維持することの間の移行に興味があります。
ベストプラクティスは何ですか?また、適切なリソースはどこにありますか?
ありがとう!
これに対する答えは、間違いなく正式な構成管理です。最近のその分野での3つの大きな候補は、Chef、Puppet、およびCfengineです。基本的に、開発アプローチをシステム管理に適用する必要があります。マシンの状態を定義する「プログラム」を作成し、それを適用します(明らかに、これは非常に単純化されています)。
真実は、私たちの多くの無愛想な首ひげタイプのLinux管理者は、長年の繰り返しにわたって知識を完全に内部化したため、「魔法のように」マシンを構成しているということです。特定のマシンでタッチする必要のある構成ファイルのリストをおおよそ知っており、メモリからそれらを手動で編集できます。これは実際にはひどい方法です。特に、複数のサーバーまたは複数のシステム管理者がいる場合はなおさらです。設定ファイルを手動で編集することは、常に悪い計画と悪い管理の印です。
私は Clonezilla とPXEブートを使用してシステムを最初に自動的に起動し、キックスタート構成に十分な詳細を入力して、マシンがネットワーク上にあり、のCMツールを実行するのが大好きです。選択。最も基本的な「システムを立ち上げ、ネットワークに配置する」ロジックを超えるものはすべて、CMツールに配置する必要があります。not初期のシステムイメージまたはキックスタート。
参考までに、私は現在、約10,000台のUNIXサーバーを管理しています。
あなたの質問は、いくつかのマシンの観点からこれにアプローチしています。コマンドを記録することではありません。このため、スクリプトコマンドはあなたが求めているものを取得する必要があります。しかし、スケーリングの本当の解決策は、構成を迅速に再現し、それらの構成内の変更を管理できることです。 Puppet や Chef のようなツールを使用すると、それが可能になります。レシピは通常、リビジョン管理システムに保持されるため、構成に加えられたすべての変更を完全に把握でき、必要に応じて以前の構成にロールバックできます。
これらのツールをPXEブートおよびプレシードまたはキックスタートと組み合わせると、さまざまな役割のマシンを迅速にプロビジョニングできます。
変更管理と追跡のために数台のマシンを管理している場合でも、これらの種類のツールを使用することは悪い考えではありません。