新しいバージョンの Chef への既存の Linux スタックの移行 - AWS OpsWorks

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

新しいバージョンの Chef への既存の Linux スタックの移行

重要

AWS OpsWorks Stacks は新規顧客を受け付けなくなりました。既存のお客様は、2024 年 5 月 26 日までは OpsWorks コンソール、 API、 CLI、および CloudFormation リソースを通常どおり使用できますが、その時点でこれらのリソースは廃止されます。この移行に備えて、できるだけ早くスタックを AWS Systems Manager に移行することをおすすめします。詳細については、AWS OpsWorks Stacks サポート終了に関する FAQ および AWS Systems Manager アプリケーションマネージャへの AWS OpsWorks Stacks アプリケーションの移行 を参照してください。

AWS OpsWorks スタックコンソール、API、または CLI を使用して、Linux スタックを新しいバージョンの Chef に移行することができます。ただし、新しいバージョンに対応するために、レシピに変更を加えることが必要になる場合があります。スタックを移行するための準備をするときに、次の点を考慮します。

  • AWS OpsWorks スタックのスタックバージョンを、スタックの編集やクローニングで Chef 11 から Chef 12 に変更することはできません。Chef のメジャーバージョンアップグレードは、このセクションの手順を使用して行うことはできません。Chef 11.10 から Chef 12 への移行の詳細については、「レシピの実装: Chef 12」を参照してください。

  • Chef のあるバージョンから別のバージョンへの移行には多くの変更が伴い、その一部は互換性を破る変更です。

    Chef 0.9 から Chef 11.4 への移行の詳細については、「新しい Chef バージョンへの移行 」を参照してください。Chef 11.4 から Chef 11.10 への移行の詳細については、「レシピの実装: Chef 11.10」を参照してください。Chef 11.10 から Chef 12 への移行の詳細については、「レシピの実装: Chef 12」を参照してください。

  • 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 のバージョン」を参照してください。

  • Chef 11.10 のスタックでは、クックブックのインストールの処理が、Chef 0.9 または Chef 11.4 のスタックの場合とは異なります。

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

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

スタックを新しいバージョンの Chef に移行するには
  1. 本稼働用スタックをクローン化します。[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 にアップグレードします。

  2. インスタンスをレイヤーに追加し、テストまたはステージング用システムにあるクローン化したスタックのアプリケーションとクックブックをテストします。詳細については、「All about Chef ...」を参照してください。

  3. テスト結果が適切である場合、次のいずれかを実行します。

    • これが必要な Chef バージョンである場合、クローン化したスタックを本稼働用スタックとして使用するか、本稼働用スタックの Chef バージョンをリセットできます。

    • Chef 0.9 スタックから Chef 11.10 に 2 段階で移行している場合は、Chef 11.4 から Chef 11.10 にスタックを移行する処理を繰り返します。

注記

レシピをテストする場合は、SSH を使用してインスタンスに接続した後、インスタンスエージェント CLIrun_command コマンドを使用してさまざまなライフサイクルイベントに関連付けられたレシピを実行します。エージェント CLI は、特に Setup レシピをテストする場合に便利です。Setup が失敗し、インスタンスがオンライン状態になっていない場合でも使用できるからです。Setup スタックコマンドを使用して Setup レシピを再実行することもできますが、このコマンドは Setup が成功し、インスタンスがオンラインになっている場合にのみ利用できます。

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

実行中のスタックを新しいバージョンの Chef に更新するには
  1. スタックを編集し、スタックの設定の [Chef version] を変更します。

  2. 新しい設定を保存し、AWS OpsWorks スタックによってインスタンスが更新されるまで待ちます。これには、通常、15~20 分かかります。

重要

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