Chef デプロイフックの使用 - AWS OpsWorks

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

Chef デプロイフックの使用

必要なタスクを実行するカスタムレシピを実装し、適切な Layer の Deploy イベントに割り当てることで、デプロイをカスタマイズできます。特に、他の目的でクックブックを実装する必要がない場合は、Chef デプロイフックを使用してカスタマイズコードを実行する方法もあります。さらに、組み込みレシピによってデプロイメントが実行された後に、カスタム Deploy レシピを実行します。デプロイフックを使用すると、デプロイメントの途中に(たとえば、アプリケーションのコードがリポジトリからチェックアウトされた後、Apache が再起動される前に)操作することが可能になります。

Chef では、次の 4 つのステージでアプリケーションをデプロイします。

  • チェックアウト— リポジトリからファイルをダウンロードします。

  • 移行— 必要に応じて移行を実行します。

  • symlinks— シンボリックリンクを作成します。

  • Restart— アプリケーションを再起動します。

Chef デプロイフックを使用すると、各ステージの完了後にユーザーが提供する Ruby アプリケーションを必要に応じて実行することで、デプロイメントを簡単にカスタマイズできます。デプロイフックを使用するには、1 つ以上の Ruby アプリケーションを実装し、アプリケーションの /deploy ディレクトリに配置します。(アプリケーションに /deploy ディレクトリがない場合は、APP_ROOT レベルに 1 つ作成します)。アプリケーションには、いつ実行するかを示す次のいずれかの名前を指定する必要があります。

  • before_migrate.rb – チェックアウトステージの完了後、移行ステージの前に実行します。

  • before_symlink.rb – 移行ステージの完了後、シンボリックリンクステージの前に実行します。

  • before_restart.rb – シンボリックリンクステージの完了後、再起動ステージの前に実行します。

  • after_restart.rb – 再起動ステージの完了後に実行します。

Chef デプロイフックは標準のノード構文を使用して、レシピのようなノードオブジェクトにアクセスできます。また、デプロイフックは、指定した任意のアプリケーション環境変数の値にアクセスできます。ただし、new_resource.environment["VARIABLE_NAME"] を使用して、ENV["VARIABLE_NAME"] ではなく変数の値にアクセスする必要があります。詳細については、「deploy」を参照してください。

デプロイフックの使用方法と、フックでアクセスできる情報の詳細については、「デプロイフェーズ」を参照してください。