回答:
風景はあなたに興味があるかもしれません。これは大規模なUbuntuの展開を管理するための「公式」管理ツールであり、Canonicalはおそらくその使用にお金を払うことに非常に熱心です。
再編集:
まず、免責事項。DebianやUbuntuでミラーリングを使用したことがないので、ソフトウェアに精通していません。
第二に、apt-mirrorは「重すぎる」ソリューションになると思われます。元のアイデアは、更新プログラムを展開するために別のテストマシン(またはテスト環境、おそらく仮想マシン)を用意するというものでした。更新のパフォーマンスに満足したら、パッケージを「デプロイ」ミラーにプル/プットします(公式ソースからのローカルミラーと、デプロイしたいアップデートのみのセカンダリミラーがあります)。リモートマシンは事前に設定された時間に更新を実行し、「展開」ミラーから各マシンにプルします。cronジョブは次のもので構成されます。
apt-get update && apt-get upgrade --quiet --assume-yes
残念ながら、私が詳細を読み始めたので、あなたが求めてapt-mirror
いるパッケージだけでなく、あらゆる種類のものを引き出すようです。そのため、概念にはメリットがありますが、このアイデアを放棄します。
同僚がapt-daterを発見し、簡単に調べました。apt-daterは「ターミナルベースのリモートパッケージアップデートマネージャー」です。
cursesベースのインターフェースを使用して、すべてのホストまたはホストのグループなどの更新を管理します。発生する可能性のあるエラーなどを含む、完全なaptセッションのロギングをサポートします。
管理対象マシンのsshおよびsudoに依存します。
参照http://www.ibh.de/apt-dater/を
自分で使っていないので、私はそれを支持することはできませんが、あなたが探しているものに近いように聞こえます。
すでにPuppetを使用しているため、これを行う最も簡単な方法(および変更管理/追跡の目的に最適)は、Puppetマニフェストにインストールするパッケージの目的のバージョンを指定することです。セキュリティアナウンスメントリストに注目し、使用するものが届くと、Puppetを更新して「このパッケージのこの新しいバージョンをインストールしてください」と言うだけです。マニフェストでリビジョン管理を使用していると仮定すると、「ポリシー」がいつ変更されたかがわかり、Puppetからのレポートは変更が実際に行われた正確な時間を示します(したがって、それを後のログイベントと簡単に関連付けることができます)。
clustersh(apt-get install clusterssh)をご覧ください。
$ cssh server1 server2 server3 ...
特にテスト環境をすでにお持ちの場合、以前にそれについて本当に考えていなかったとしても、私の最初のアイデアはaveryが示唆したものに似たものになるでしょう。
基本的に、自分のローカルリポジトリから自動的にアップグレードするように運用マシンを設定し、テスト環境を実行するものの最新バージョンにアップグレードした後にのみ、このリポジトリを更新します。
Apticronはうまくスケーリングできません。非常に小さな環境で実行されるように設計されていますが、いくつかの良い点があります。
ときどき、同様の要件を満たすために低レベル/ダーティオートメーションのFabricスクリプト(fabfile)を作成しました。次のURLで確認できます。