0

ansible を使用して aws asg を設定し、新しいインスタンスをプロビジョニングしてから、この質問で提案されているのと同様の方法で「user_data」スクリプトを介して codedeploy エージェントをインストールしました。

自動スケーリング中にアプリケーションコードをプルするために AWS コードデプロイを使用できますか?

CodeDeploy は正常に動作し、作成された asg にアプリケーションをインストールできます。ルールの 1 つ (CPU 使用率が高いなど) を介して ASG で新しいインスタンスがトリガーされると、codedeploy エージェントが正しくインストールされます。問題は、CodeDeploy がこれらの新しいインスタンスにアプリケーションをインストールしないことです。user_data スクリプトが完了する前に実行しようとしていると思われます。他の誰かがこの問題に遭遇しましたか? または、CodeDeploy を取得して、ASG の一部として生成された新しいインスタンスにアプリケーションを自動的にデプロイする方法を知っていますか?

4

1 に答える 1

0

AutoScaling は、ユーザー データが開始される前にデプロイを開始するように CodeDeploy に指示します。この CodeDeploy を回避するために、インスタンスが最初のライフサイクル イベントのコマンドのポーリングを開始するのに、5 分ではなく最大 1 時間かかります。

手動デプロイではなく自動デプロイに問題があり、忘れていたインスタンスに手動で変更を加えていないと仮定すると、インスタンスの起動時にまだ利用できないデプロイ固有の依存関係が存在する可能性が最も高くなります。 .

展開を成功させるために必要なものをすべてリストアップしてみて、ホスト エージェントをインストールする前に、それぞれが利用可能であることを確認してください。インスタンスに十分な速さで (AutoScaling がインスタンスを終了する前に) ログオンできる場合は、ホスト エージェントのログとアプリケーションのログを取得して、デプロイが失敗している場所を見つけることができます。

ホスト エージェントが完全にインストールされていないと思われる場合は、Ruby2.0 がインストールされていることを確認してください。AmazonLinux ではデフォルトで存在するはずですが、Ubuntu と RHEL では、ホスト エージェントをインストールする前に、ユーザー データの一部としてインストールする必要があります。初期インストールの問題を確認できるインストーラー ログがあります/tmp(インスタンスが終了する前に、ログをすばやく取得する必要があります)。

于 2015-07-16T16:35:07.470 に答える