web-dev-qa-db-ja.com

何百ものDebianサーバーでのアップグレードの管理

数十(数百ではないにしても)のdebianサーバーを最新の状態に維持するためのベストプラクティスは何だと思いますか?次のことに留意してください。

  • サーバーのグループがあります(つまり、同一のWebサーバー、DBサーバーなど)。
  • Debianの問題がいくつかある可能性があります(lenny、etch)
  • すべてのサーバーでループを実行し、apt-get update && upgradeを実行することは受け入れられません(それが現在私がやっていることなので:))これよりも優れているはずです!

現在、すべてのアップグレードを最終的に完了すると、新しいセキュリティ更新が投稿され、もう一度やり直す必要があります。

Serverfaultコミュニティに事前に感謝します!

19
Falken

私は apt-dater を使用して、すべてのDebianボックスのアップグレードを管理しています。トリックを十分に行うようです。ただし、数百のホストにまで拡張することは試みていません。

12
Haakon

グーグルはdebmarshalでこれを解決しました:

http://code.google.com/p/debmarshal/

これにより、本番ホストにインストールするための上流リポジトリからのパッケージを承認できます。

次に、cron-aptを完全自動モードで実行します。

これが紹介ビデオです:

http://www.youtube.com/watch?v=L3hRToC23mQ

10
LapTop006

私たちはパペットを使用して、必須でないパッケージのセキュリティ修正をアップグレードする試みをしていました。アプティクロンを実行してすべてのサーバーの更新のリストを電子メールで送信し、これらの更新をパペットマニフェストファイルにマージするスクリプトを毎日実行して、各ディストリビューションのパッケージとバージョンを提供します。これにより、個々のサーバー上の一連のファイルが更新され、パッケージのアップグレードが必要になったときにアップグレードスクリプトが開始されます。これは適切に機能しましたが、私が望むほどにはテストしていません。このスキームは、同じリソースが複数の場所で定義されていないというPuppetの制限を回避しました。

また、MySQLやPostgreSQLなど、ランダムな更新によってサービスが(おそらく1日の途中で)シャットダウンされるような自動アップグレードを行うことにも抵抗がありました。これらはまだ手動で更新する必要があります。

SpacewalkとDebmarshallは、パペットスキームに適した代替手段のように見えます。

3
David Pashley

Puppetのようなプルベースの構成システムのように、bcfg2とcfengineもあります。それらのどちらかがあなたのニーズによく合うかもしれません。現在、ラボでbcfg2を展開しています。

1
Phil Miller

解はfuncで与えられます

1
drAlberT

どうやら Spacewalk は現在Debianの予備サポートを持っています。それは、おそらく、人形と一緒に、私の出発点になるでしょう。 SpacewalkのDebianサポートを開発している人は、Debianサポートをより高いレベルに引き上げるために彼と協力してくれたことをきっと気に入ってくれると思います。

1
wzzrd

あなたはこのツール「ダンサーのシェル」を使いますか?気に入って使っています。しかし、私はあなたがそれをそれほど多くのホストに使用できるかどうかわかりません。多分あなたは試すことができます...

http://www.netfort.gr.jp/~dancer/software/dsh.html.en

そして彼はリポジトリにいます。

0
Matthieu

どのタイプのソリューションを期待しているのかわかりません。あなたはおそらくcronジョブについて知っているでしょうが、人間の介入が必要なので、私はブラインドでシステムを更新しません(そして、それが彼らがこれを行うためにあなたに支払う理由です?)

まったく同じシステムの場合、rsyncのようなものを使用して違いを取り入れることを検討するかもしれませんが、rsyncを実行しないファイルを特定するのは難しい場合があり、サービスの実行中にこれを行うことはありません。少なくとも更新スクリプトは、サービスの再起動と構成ファイルの違いのマージを管理するように設定されています。

おそらく、apt-getコマンドの実行に伴う問題を説明すると、回避したいことがわかります。

問題が帯域幅とダウンロード時間である場合、おそらくローカルのDebianリポジトリとして機能する1つのボックスをセットアップする必要があります。それを行う方法についてのDebianガイドがあります。

更新する必要のあるものの数を最小限に抑える方法に関するヒントをいくつか紹介します。

Debianをインストールするときは、そのコンソールで本当にXを使用する必要がない限り、デスクトップをインストールしないでください。ほとんどのサーバーにはXをインストールする必要はありません。これにより、システム上のパッケージの数を大幅に減らすことができるため、多くのパッケージを更新する必要がなくなります。

Sources.listに、本当に必要なリポジトリのみが含まれていることを確認してください。リポジトリを試してみて、そのことを忘れていた場合は、必要のない、または必要のない更新を取り込む可能性があります。

本番サーバーで盲目的にアップデートを実行する際に問題が発生した場合は、メジャーアップデート(4.0から5.0)がある場合は、Debianアップグレードガイドを参照してください。アップグレード手順に従うと、これらは非常にうまくいきます。 apt-get dist-upgradeを実行して立ち去るほど簡単ではありません。場合によっては、命令にapt-getではなくaptitudeを実行するタイミングに関する指示さえあります-それらには小さな違いがあります。

0
labradort