UNIXパッケージを最新の状態に保つためのベストプラクティス


30
  • サーバーをどのように最新の状態に保ちますか?
  • Aptitudeのようなパッケージマネージャーを使用する場合、アップグレード/インストールの履歴を保持しますか?
  • 複数のサーバーでパッケージをインストールまたはアップグレードする場合、プロセスを可能な限り高速化する方法はありますか?

回答:


19

Linux / Debianベースのシステムでは、cron-aptはcronを介してaptの自動化を管理できる非常に便利なツールです。

私はapt-get update毎日それを使用しています。新しい更新プログラムをインストールする必要がある場合は、メールを送信します。

このツールの簡潔でよくできた紹介を次に示します


私は最小限の自動更新パッケージが欲しいのですが、重要なのはセキュリティ更新です。このため、次をcron-apt OPTIONS="-o Dir::Etc::SourceList=/etc/apt/security.sources.list" 構成ファイルに追加し、/ etc / apt / security.sources.listでDebianセキュリティリポジトリのみを有効にします。そうすることで、すべてのセキュリティ更新プログラムがタイムリーに(毎晩)自動的にインストールされ、手作業で問題が発生する可能性のある他のリスクの高いアップグレードを実行できます。
ドリュースティーブンス

10

3番目の質問について:私は常にローカルリポジトリを実行しています。1台のマシンのみの場合でも、再インストールが必要な場合(通常aptitude autocleanのようなものを使用します)の時間を節約し、2台のマシンの場合はほとんど常に成果を上げます。

私が管理するクラスターの場合、通常は明示的なログを保持しません。パッケージマネージャーに任せます。ただし、(デスクトップとは対照的に)それらのマシンでは、自動インストールを使用しないため、すべてのマシンに何をインストールするかについてのメモがあります。


4
ワオ; 私はとても素晴らしいので、誰もが賛成していますか、それとも人々はバッジを得るために競争していますか?;)
Mikeage 2009


4

私は歴史のためにapt-historyを使用します。この便利なツールがデフォルトで含まれていない理由はわかりません。これはpuppetでデプロイした最初のパッケージです。


apt-historyは、デフォルトで/ var / logに記録されるものとどのように異なりますか?
jldugger 2009年

あなたが何を言っているのか、あなたの答えからは知りませんでした。apt-historyを知り、それに慣れたと思います。
マーク

3

私は、実行は/ usr / binに/ apt-getを更新-qqを;は/ usr / binに/ apt-getをdist-upgradeの-duyq毎晩cronジョブとして。午前中に、どのパッケージをアップグレードする必要があるかを通知し、ファイルは既にマシンにダウンロードされています。

次に、通常、マシンのスナップショットを作成し(ほとんどのサーバーは仮想)、apt-get dist-upgradeを実行しnagiosを確認して、すべてがまだ機能していることを確認し、スナップショットを削除します。

最後に、後で発生する問題を追跡するために、ウィキ上のすべてのサーバーに加えられたすべての変更の実行リストを保持します。

重複ダウンロードを制限する限り、サーバーとインターネットの間に、最初にアクセスしたときに.debファイルをキャッシュするキャッシュWebプロキシ(squid?)をセットアップできることを理解しています。おそらく、これはローカルパッケージリポジトリを設定するよりも簡単であり、一般的なWebブラウジングを高速化するという追加の利点があります。


1

apt-cacherはパッケージをキャッシュするのに便利です。リポジトリ全体の完全なミラーリングを完了してディスクと帯域幅を節約するのではなく、最初に必要になったときにキャッシュします。また、パッケージの最初のリクエストをリクエスターに直接ストリーム配信すると同時に、追加の遅延が発生しないため便利です。


1

ローカルリポジトリを実行することは、ローカルサーバー上にあるものを正確に管理する最良の方法です。また、カスタムバックポートまたはカスタムローカルパッケージを簡単に展開できます。ローカルインストールを簡単にするために、非常に大きな依存関係であるローカルの「メタパッケージ」を作成することが知られています。(例:「apt-get install local-mailserver」)。これには、設定の変更を「バージョン管理」できるという副作用もあります。(より複雑な設定管理には、Puppetのようなものが必要です)


1

Windowsボックスには、ローカルのWSUSサーバーと、毎月のパッチを適用する標準ウィンドウがあります。Linuxシステム(RHEL)の場合、キャンパスにRHN衛星サーバーがあり、それらすべてが参加しています。これにより、管理するすべての参加システムの素晴らしいダッシュボードと、各システムの未適用の更新が提供されます。人形の中にあるものについては、通常のウィンドウの間に自動的にパッチを適用し、結果とともに電子メール通知を送信するスクリプトをプッシュします。


0

ローカルリポジトリを作成し、すべてのサーバーが更新のためにそれを指すように構成できます。ローカルダウンロードの速度を取得できるだけでなく、互換性の問題を防ぐために、インフラストラクチャにインストールする公式アップデートを制御することもできます。

Windows側では、Windows Server Update Servicesを使用して非常に満足のいく結果を得ています。


0

Aptitudeのようなパッケージマネージャーを使用する場合、アップグレード/インストールの履歴を保持しますか?その場合、どのように行いますか?

aptはログを/ var / log / apt /に保持し、dpkgは/var/log/dpkg.logを使用します。特にdpkgはかなり解析可能です。


0

OpenSuSE Linux、SLES、およびNovell OES(すべてSuSEベースの製品)には、zypperを実行し、更新が必要なパッケージを探すスクリプトがあります。見つかると、チケットをJIRAに送信し、それをsysadminsに割り当てます。更新プログラムをインストールすると、チケットが閉じられ、監査証跡が残ります。この監査証跡には、いつ、誰がインストールしたかが示されます。これは、sysloggingサーバーで集中管理されるzypperおよびsudoログで調整/確認できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.