

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 新しいバージョンの Chef への既存の Linux スタックの移行
<a name="workingcookbook-chef11-migrate"></a>

**重要**  
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、[AWS re:Post](https://repost.aws/) または[AWS プレミアムサポート](https://aws.amazon.com/support)を通じて AWS サポート チームにお問い合わせください。

スタックコンソール、API、または CLI を使用して、Linux OpsWorks スタックを新しい Chef バージョンに移行できます。ただし、新しいバージョンに対応するために、レシピに変更を加えることが必要になる場合があります。スタックを移行するための準備をするときに、次の点を考慮します。
+ スタックを編集またはクローンすることで OpsWorks、スタックスタックのバージョンを Chef 11 から Chef 12 に変更することはできません。Chef のメジャーバージョンアップグレードは、このセクションの手順を使用して行うことはできません。Chef 11.10 から Chef 12 への移行の詳細については、「[レシピの実装: Chef 12](workingcookbook-chef12-linux.md)」を参照してください。
+ Chef のあるバージョンから別のバージョンへの移行には多くの変更が伴い、その一部は互換性を破る変更です。

  Chef 0.9 から Chef 11.4 への移行の詳細については、「[新しい Chef バージョンへの移行 ](#workingcookbook-chef11-migrate)」を参照してください。Chef 11.4 から Chef 11.10 への移行の詳細については、「[レシピの実装: Chef 11.10](workingcookbook-chef11-10.md)」を参照してください。Chef 11.10 から Chef 12 への移行の詳細については、「[レシピの実装: Chef 12](workingcookbook-chef12-linux.md)」を参照してください。
+ Chef の実行で使用される Ruby のバージョンは、Chef 0.9 および Chef 11.4 のスタックの場合 (Ruby 1.8.7)、Chef 11.10 のスタックの場合 (Ruby 2.0.0)、および Chef 12 のスタックの場合 (Ruby 2.1.6) とで異なります。

  詳細については、「[Ruby のバージョン](workingcookbook-ruby.md)」を参照してください。
+ Chef 11.10 のスタックでは、クックブックのインストールの処理が、Chef 0.9 または Chef 11.4 のスタックの場合とは異なります。

  この違いによって、カスタムクックブックを使用するスタックを Chef 11.10 に移行するときに問題が発生する可能性があります。詳細については、「[クックブックのインストールと優先順位](workingcookbook-chef11-10.md#workingcookbook-chef11-10-override)」を参照してください。

 Chef のスタックを新しいバージョンの Chef に移行する際の推奨ガイドラインを以下に示します。

**スタックを新しいバージョンの Chef に移行するには**

1. [本稼働用スタックをクローン化します](workingstacks-cloning.md)。[**Clone Stack**] (クローンスタック) ページで、[**Advanced>>**] (アドバンスト>>) をクリックして [**Configuration Management**] (構成管理) セクションを表示し、[**Chef version**] (Chef のバージョン) を上位のバージョンに変更します。
**注記**  
Chef 0.9 のスタックで作業を始める場合、直接 Chef 11.10 にアップグレードすることはできません。最初に Chef 11.4 にアップグレードする必要があります。レシピをテストする前に、Chef 11.10 にスタックを移行する場合は、更新が実行されるまで 20 分間待機してから、スタックを 11.4 から 11.10 にアップグレードします。

1. インスタンスをレイヤーに追加し、テストまたはステージング用システムにあるクローン化したスタックのアプリケーションとクックブックをテストします。詳細については、「[All about Chef ...](https://docs.chef.io/index.html)」を参照してください。

1. テスト結果が適切である場合、次のいずれかを実行します。
   + これが必要な Chef バージョンである場合、クローン化したスタックを本稼働用スタックとして使用するか、本稼働用スタックの Chef バージョンをリセットできます。
   + Chef 0.9 スタックから Chef 11.10 に 2 段階で移行している場合は、Chef 11.4 から Chef 11.10 にスタックを移行する処理を繰り返します。

**注記**  
レシピをテストする場合は、[SSH を使用してインスタンスに接続](workinginstances-ssh.md)した後、[インスタンスエージェント CLI](agent.md) の [run\$1command](agent-run.md) コマンドを使用してさまざまなライフサイクルイベントに関連付けられたレシピを実行します。エージェント CLI は、特に Setup レシピをテストする場合に便利です。Setup が失敗し、インスタンスがオンライン状態になっていない場合でも使用できるからです。[Setup スタックコマンド](workingstacks-commands.md)を使用して Setup レシピを再実行することもできますが、このコマンドは Setup が成功し、インスタンスがオンラインになっている場合にのみ利用できます。

実行中のスタックを新しいバージョンの Chef に更新することができます。

**実行中のスタックを新しいバージョンの Chef に更新するには**

1. [スタックを編集](workingstacks-edit.md)し、スタックの設定の [**Chef version**] を変更します。

1. 新しい設定を保存し、 OpsWorks スタックがインスタンスを更新するのを待ちます。通常、更新には 15～20 分かかります。

**重要**  
OpsWorks スタックは Chef バージョンの更新をライフサイクルイベントと同期しません。本稼働用スタックで Chef のバージョンを更新する場合は、次の[ライフサイクルイベント](workingcookbook-events.md)が発生する前に、更新が完了するように注意する必要があります。イベントが発生した場合 (主に Deploy または Configure イベント)、インスタンスエージェントは、バージョンの更新が完了しているかどうかにかかわらず、カスタムクックブックを更新し、イベントに割り当てられたレシピを実行します。バージョンの更新が完了したことを直接確認する方法はありませんが、デプロイのログに Chef のバージョンが記録されています。