2016-09-12 3 views
0

AWSにElastic Load Balancerがあります。私はNode.jsのコードは、私は自分のコードを更新するために、PM2を使用している3つのインスタンスに展開してありますが、私はこのように手動で実行する必要があります。 複数のインスタンスでnode.jsコードを更新

  • Gitリポジトリにプル

    • 接続をSSHで各マシンに各マシンは
    各マシン上のすべてをリロードPM2どのように私は、私は新しい(生産支店など)マスタまたは他のブランチにコミットしないとき、すべてのマシンですべてのコードを更新することができますか?

    ありがとうございました。

  • +1

    あなたはPM2のドキュメントを見たことがありますか? [配備](http://pm2.keymetrics.io/docs/usage/deployment/)のセクションがあります – Seth

    +1

    @Sethあなたのコメントは最善の答えです;) – chemitaxis

    答えて

    1

    あなたはちょうどこの解決する例bashためでスクリプト書くことができます:あなたはプルをgitのとリロードするコードを追加することができますローカルupdate.shあなたに続いて

    # This will run your local script update.sh on the remote 
    ssh serverIp1 "bash -s" < ./update.sh 
    

    を:

    # This code will run on the remote 
    git pull 
    # Update 
    # Other commands to run on remote host 
    

    することができますまた、

    ssh serverIp1 "bash -s" < ./update.sh 
    ssh serverIp2 "bash -s" < ./update.sh 
    ssh serverIp3 "bash -s" < ./update.sh 
    

    スクリプトをすべてのマシンで実行します。またはより良いイベント:

    for ip in serverIp1 serverIp2 serverIp3; do 
        (ssh $ip "bash -s" < ./update.sh) 
    done 
    
    1

    あなたは「純粋な」ノードソリューション(ないインスタンス上の余分なサービスの多く)を使用している場合は特に、代替は、ElasticBeanstalkあります。 beanstalkでは、プロジェクトのgit refまたはZIPファイルを提供し、デプロイメントを処理します(新しいインスタンスの起動、ヘルスチェック、ロードバランスの取得、古いインスタンスの削除など)。いくつかの点で、自動化されています

    1

    Jenkins(自己ホスト型)またはTravis CIのようなツールを使用して、ビルドとデプロイメントを実行してください。多くの選択肢がありますFYI、Jenkins、Travisは最も人気のあるものです。

    0

    回答ありがとうございますが、私にとって最良の選択肢はAWS CodeDeployだと思います。

    私は、これは前に質問をする見つけることができませんでした、なぜ私にはわからない...