web-dev-qa-db-ja.com

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

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

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

私は毎日それをapt-get updateに使用しており、新しいアップデートをインストールする必要がある場合はメールを送信します。

これが そのツールの短くてよくできた紹介 です。

19
paulgreg

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

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

10
Mikeage

Cron-aptと同様に、私は apticron を使用します。

5
Zoredache

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

4
mark

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

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

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

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

3
Brent

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

1
Adam Gibbins

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

1
Scott Pack

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

1
pjz

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

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

0
macbirdie

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

0
Karl Katzke

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

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

0
jldugger