web-dev-qa-db-ja.com

複数のマシンでaptを効率的に管理するにはどうすればよいですか?

私は人形を使って約30台のUbuntuサーバーを管理しています。パッケージを最新の状態に保つためのアプローチとしてcron-aptとapticronへの多くの参照を見てきましたが、プロセスを集中管理する方法を見つけることができませんでした。 cront-apt/apticronを使用しても、各ホストにログインし、aptitude updateを実行して更新を実行する必要があります。コアパッケージが更新されるたびに、30台すべてのマシンからのレビュー通知は言うまでもありません。

もっと良い方法があるはずです。助言がありますか?

11
Insyte

Landscape に興味があるかもしれません。これは、大規模なUbuntuデプロイメントを管理するための「公式の」管理ツールであり、Canonicalはおそらく、その使用に費用をかけることに非常に熱心です。

再編集:

まず、免責事項。私はDebianまたはUbuntuでミラーリングを使用していないため、ソフトウェアに慣れていません。

第二に、apt-mirrorは "重すぎる"解決策になると思われます。元々の考えは、更新プログラムを展開するために別のテストマシン(またはテスト環境、おそらく仮想マシン?)を用意することでした。更新のパフォーマンスに満足したら、パッケージを「展開」ミラーにプルまたは配置します(公式ソースからのローカルミラーと、展開する更新のみのセカンダリミラーがあります)。次に、リモートマシンは事前設定された時間に更新を実行し、「展開」ミラーから各マシンにそれをプルします。cronジョブは以下で構成されます。

apt-get update && apt-get upgrade --quiet --assume-yes

残念ながら、詳細を読み始めたとき、apt-mirrorは、目的のパッケージだけでなく、あらゆる種類のものをプルします。したがって、この概念にはいくつかのメリットがありますが、このアイデアは放棄します。

3
Avery Payne

同僚が発見し、「端末ベースのリモートパッケージアップデートマネージャ」であるapt-daterを簡単に調べました。

Cursesベースのインターフェースを使用して、すべてのホストまたはホストのグループなどの更新を管理します。発生する可能性のあるエラーなど、完全なaptセッションのロギングをサポートします。

管理対象マシンのsshとSudoに依存します。

参照してください http://www.ibh.de/apt-dater/

自分で使用したことがないので、それを保証することはできませんが、あなたが探しているものに近く聞こえます。

14
jeff

すでにPuppetを使用しているため、これを行う最も簡単な方法(および変更管理/追跡の目的に最適)は、puppetマニフェストにインストールするパッケージの目的のバージョンを指定することです。あなたはセキュリティアナウンスメントリストに目を光らせ続け、そしてあなたが使用するものが出てきたら、Puppetを「このパッケージのこの新しいバージョンをインストールする」と言うように更新するだけです。マニフェストでリビジョンコントロールを使用しているとすると、「ポリシー」がいつ変更されたかがわかり、Puppetのレポートには、変更が実際にいつ行われたかが正確に示されます(これにより、後のログイベントと簡単に関連付けることができます)。

4
womble

Clusterssh(apt-get install clusterssh)を見てください。

$ cssh server1 server2 server3 ...

2
Thiago Figueiro

以前に実際にそれについて考えていなかった場合、私の最初のアイデアは、特にテスト環境がすでにある場合は特に、averyが提案したものに似たものになるでしょう。

基本的に、自分のローカルリポジトリから自動的にアップグレードするように本番マシンを設定します。このリポジトリを更新するのは、テスト環境を実行するものの最新バージョンにアップグレードした後でのみです。

Apticronは適切にスケーリングされません。かなり小さな環境で実行されるように設計されていますが、いくつかの良い点があります。

  • 単にリストを送信するだけでなく、アップグレードするパッケージの変更ログも送信します。
  • 変更ログを取得するためにパッケージがダウンロードされるので、アップグレードするときにパッケージがダウンロードされるのを待つ必要はありません。
1
theotherreceive

時々前に私は同様の要件を満たすために低レベル/ダーティーオートメーション Fabric スクリプト(fabfile)を書きました、あなたはそれをチェックすることができます:

https://Gist.github.com/lgaggini/2be3c5bb47b8ce9267bd

0
lgaggini