web-dev-qa-db-ja.com

ラダーですべてのノードパッケージをアップグレードする方法

ラダー( http://www.rudder-project.org/site/ )で遊んでいますが、必要なオプションが表示されないようです。

「ノード」上のすべてのパッケージの更新をチェックしてからアップグレードしたいのですが、これはDebianボックスの「apt-getupdate && apt-getupgrade」に相当します。

パッケージ管理のディレクティブが表示されますが、それらはすべて、現在各ノードにあるすべてのパッケージを更新するのではなく、個別に名前が付けられたパッケージを更新/インストールするためのもののようです。

私が求めていることを行うための最良の方法は何ですか?

2
GoldieLocks

これを実現する最善の方法は、テクニックエディターを使用し、「/ usr/bin/apt-get update &&/usr/bin/apt-getupgrade-y」を使用して「コマンド実行結果」を使用してテクニックを作成することだと思います。成功として0、修復された1

これはすべての実行で実行されることに注意してください。これは希望どおりではない場合がありますが、条件を使用して夜間または特定の日付範囲でのみ実行できます。

「JobScheduler」ディレクティブを調べたり、「Schedule」メソッドを使用してテクニックを作成したりすることもできます。このメソッドでは、cronジョブなどの実行するものを定義できます...

3
Vincent Membré

実際、apt-get install -yを使用しても、すべてのプロンプトが抑制されるわけではありません。パッケージの制御ファイルのいずれかを変更した場合(またはRudderに代わって!)、apt-getは、構成ファイルを保持するか、パッケージメンテナーバージョンに置き換えるかを尋ねます。

多くの人々はこのようなものを使用してこれに対処します:

DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get dist-upgrade \ -q -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold"

調査せずにこれを安全に行うことはできないことに注意することが重要です。上記の呼び出しは「いいえ」と答えます。これは、パッケージが行う変更を事前に調査し、ラダーが必要な変更を含むように制御ファイルを変更することを確認する必要があることを意味します。

たとえば、パッケージの制御ファイルで重要なセキュリティ修正が行われることがあります(/etc/ImageMagick-6/policy.xmlはその一例です)。 「いいえ」と答えるか、--force-confoldを使用すると、パッケージの更新によって脆弱性から保護されませんが、パッケージバージョンは、修正が実装されていることを示します(結局、修正を含むパッケージバージョンを実行しています)。

これを正しく行う唯一の方法は、使用するすべてのパッケージを受け入れサーバーにインストールし、たとえば本番の1週間前に更新して、作成されたすべての.dpkg-newファイルを収集して確認することです。うん、それは大変な作業であり、うん、そうする企業は多くないが、更新を自動化する場合は、重要な構成の変更について文書化していないことを確認したほうがよい。

ラダーを使ってこれを正しく行う方法についてのアイデアをいじっていますが、まだスペードを地面に置いていません...

0
BertD