- サーバーをどのように最新の状態に保ちますか?
- Aptitudeのようなパッケージマネージャーを使用する場合、アップグレード/インストールの履歴を保持しますか?
- 複数のサーバーでパッケージをインストールまたはアップグレードする場合、プロセスを可能な限り高速化する方法はありますか?
回答:
Linux / Debianベースのシステムでは、cron-aptはcronを介してaptの自動化を管理できる非常に便利なツールです。
私はapt-get update
毎日それを使用しています。新しい更新プログラムをインストールする必要がある場合は、メールを送信します。
このツールの簡潔でよくできた紹介を次に示します。
3番目の質問について:私は常にローカルリポジトリを実行しています。1台のマシンのみの場合でも、再インストールが必要な場合(通常aptitude autocleanのようなものを使用します)の時間を節約し、2台のマシンの場合はほとんど常に成果を上げます。
私が管理するクラスターの場合、通常は明示的なログを保持しません。パッケージマネージャーに任せます。ただし、(デスクトップとは対照的に)それらのマシンでは、自動インストールを使用しないため、すべてのマシンに何をインストールするかについてのメモがあります。
私は歴史のためにapt-historyを使用します。この便利なツールがデフォルトで含まれていない理由はわかりません。これはpuppetでデプロイした最初のパッケージです。
私は、実行は/ usr / binに/ apt-getを更新-qqを;は/ usr / binに/ apt-getをdist-upgradeの-duyq毎晩cronジョブとして。午前中に、どのパッケージをアップグレードする必要があるかを通知し、ファイルは既にマシンにダウンロードされています。
次に、通常、マシンのスナップショットを作成し(ほとんどのサーバーは仮想)、apt-get dist-upgradeを実行し、nagiosを確認して、すべてがまだ機能していることを確認し、スナップショットを削除します。
最後に、後で発生する問題を追跡するために、ウィキ上のすべてのサーバーに加えられたすべての変更の実行リストを保持します。
重複ダウンロードを制限する限り、サーバーとインターネットの間に、最初にアクセスしたときに.debファイルをキャッシュするキャッシュWebプロキシ(squid?)をセットアップできることを理解しています。おそらく、これはローカルパッケージリポジトリを設定するよりも簡単であり、一般的なWebブラウジングを高速化するという追加の利点があります。
ローカルリポジトリを作成し、すべてのサーバーが更新のためにそれを指すように構成できます。ローカルダウンロードの速度を取得できるだけでなく、互換性の問題を防ぐために、インフラストラクチャにインストールする公式アップデートを制御することもできます。
Windows側では、Windows Server Update Servicesを使用して非常に満足のいく結果を得ています。
OPTIONS="-o Dir::Etc::SourceList=/etc/apt/security.sources.list"
構成ファイルに追加し、/ etc / apt / security.sources.listでDebianセキュリティリポジトリのみを有効にします。そうすることで、すべてのセキュリティ更新プログラムがタイムリーに(毎晩)自動的にインストールされ、手作業で問題が発生する可能性のある他のリスクの高いアップグレードを実行できます。