14

サーバー (Ubuntu 12.04) にログインすると、次のメッセージが表示されます。

12 packages can be updated.
10 updates are security updates.

もちろん、「手動で」解決するのは簡単です(apt-get update && apt-get upgrade)が、サーバーが(部分的に)Chefでプロビジョニングされているという事実のために、これをプログラムでレシピは?

適切な」クックブックは、関連するものを提供していないようです:(

乾杯。

4

4 に答える 4

8

パッケージの更新/アップグレードを自動化することは、最初に適切にテストしないと明らかにアプリケーションが壊れる可能性があるため、一般的には悪い考えです。

これを解決する 1 つの方法は、Cookbook でリポジトリをロックするか、指定されたバージョンで保持し、本番環境にプッシュする前に開発で徹底的にテストすることです。

Amazon Linux では、現在の状態の yum リポジトリの一意の URL を取得できます。したがって、dev で更新/アップグレードを実行し、一意の URL を見つけて、それを prod にプッシュできます。これにより、Chef がテストしたパッケージよりも新しいパッケージに更新されなくなります。

私はUbuntuとapt-getに精通していませんが、私が話していることはPinningまたはHoldingで実行できるようです:https ://help.ubuntu.com/community/PinningHowto

つまり、要約すると、開発マシンをアップグレード/更新し、それをテストし、リポジトリの状態を調べて、すべてのパッケージをそれらのバージョンに凍結します。次に、製品のリポジトリをそれらの状態に凍結します。次に、ドラコが述べたように、クックブックで「apt-get -y upgrade」を実行するだけです。

于 2013-01-25T17:52:47.387 に答える
2

execute 'apt-get -y upgrade'は自分のレシピにあるだけです。

于 2012-12-19T08:04:27.857 に答える
1

これに利用できる自動パッチ クックブックがあります: https://github.com/bflad/chef-auto-patch/

また、Chef をパッチ プロセスに統合する方法に関する Chef の投稿もあります: https://www.chef.io/solutions/patch-management/

その要点は次のとおりです。

  • 脆弱性を特定します。
  • 更新をテストします。
  • パッチを展開します。
  • 予期しない副作用を監視します。
于 2015-07-09T14:57:06.583 に答える