私が契約している会社が私よりもはるかに多くのことを知っている会社を見つけるまで、私は暫定的な運用担当者になりました。 OpsWorksの現在のセットアップとレシピを確認しています。デプロイレシピに設定レシピが含まれていることに気付きました。これについて尋ねたところ、configureが実際にトリガーされたときの謎が原因であると言われました。
私は ここのドキュメント を読んでいます、そしてここに私の質問があります:
ドキュメントによると、OpsWorksはセットアップ後にDeployを実行します。ドキュメントには、インスタンスがオンライン状態に入った後、またはオンライン状態から出た後にConfigureが実行されるとも記載されています。次に、新しいインスタンスが起動したときに、構成はセットアップとデプロイの間、またはデプロイ後に実行されますか?
また、デプロイが単独で実行される場合に備えて、デプロイレシピに構成レシピを含めるのが標準的な方法ですか、それともデプロイメントに基づいて構成の変更を処理する別のレシピを使用する必要がありますか?
次に、新しいインスタンスが起動したときに、構成はセットアップとデプロイの間、またはデプロイ後に実行されますか?
OpsWorksのログを見ると、configureはセットアップ後、デプロイ前に実行されているようです。一般に、これは、インスタンスが起動するたびに実行する必要があること(たとえば、エラスティックIPを使用しない場合のDNSレコードの更新など)に使用する必要があります。時間ベースのインスタンスでない限り、インスタンスが停止した後にオンラインになったときにOpsWorksが新しいデプロイを自動的に実行しないことに注意してください(ただし、新しいインスタンスの場合は実行されます)。
展開に基づいて構成の変更を処理する別のレシピ?
アプリケーション固有のデプロイメント構成(ファイルのアクセス許可の設定など)には、 Chefデプロイメントフック を使用する必要があります。
Xacreの答えの2番目の部分は正しいですが、最初の部分にはいくつかの説明が必要です。
セットアップイベントは、コールドスタート(完全に新しいインスタンス)から、または「停止」状態(以前に起動されたEBSでバックアップされたインスタンス)から、インスタンスが起動したときに実行されます。このセットアップイベントには、デプロイイベントに対して実行するように指定されているレシピが含まれていますが、実際には個別のデプロイイベントは発行されません。したがって、OpsWorksログは、デプロイレシピがいつ実行されるかを示す信頼できる指標ではありません。
Configureイベントは、このインスタンス自体を含め、スタック内のインスタンスがオンライン状態に入るとき、またはオンライン状態から出るときに実行されます。このイベントは、インスタンスを(おそらくHAProxy)ロードバランサーインスタンスに追加したり、(おそらくMongoDB)クラスターに追加したりするなど、インスタンス間の依存関係を更新するために使用できます。
デプロイイベントは、UIの[デプロイ]ボタンを押すことに応答して実行されます。
詳細については、 AWS OpsWorksドキュメント を参照してください。