2016-09-25 8 views
1

JenkinsとAmazon EC2 pluginを使用してセットアップを作成しました。それはすべて正常に動作し、新しいインスタンスを起動し、initスクリプトを実行してビルドを実行するために必要なソフトウェアをインストールします。ビルドが完了し、ワーカーが5分間アイドリングすると、終了します。JenkinsとEC2ワーカーノードの使用(停止、終了しない)

これは期待通りに機能しますが、新しいビルドが開始されるたびにすべてのMaven依存関係を最初からダウンロードする必要があるため、非常に遅いです。

私が必要とするのは、必要なときに開始するプリインストールされたEC2インスタンスのセットを使用し、終了するのではなく終了したときに停止するソリューションです。こうすることで、ノードはmaven installや他のインストールされているソフトウェア(yum)を使って、変更されていない依存関係を維持します。

このようなプラグインやこれを実現する手段はありますか?

+0

すでにインストールされているすべての依存関係を持つカスタムAMIを作成し、そこからワーカーノードを作成するのはどうですか? –

+0

@MarkB問題は、頻繁に変更されるmaven依存関係で、毎回新しいAMIを作成するのは面倒です。 – Wrench

答えて

0

私は最近

はまず、私が代わりに、ブート時に依存関係を実行しているのhttps://www.packer.io/intro/を参照して、オープンソースパッカーツールを使用してAMIを作った(これはそのコピージェンキンス市販の製品である)同様のことを行ったが竹としています時間は、それがこのコースをビルド時 で依存関係が古くなりますが、定期的な再構築が終わっこの に来る必要がありますあなたはジェンキンス

次からパッカービルドをトリガーすることができる可能性があるん、私はこれでインスタンスを開始しましたAMIを呼び出し、インスタンスIDを記録しました。例えばそれは、i 96e05d1cかもしれません

インスタンスはジェンキンスで

CloudWatchの中に最後に
aws ec2 start-instances --instance-id i-96e05d1c 

のようなコマンドを使用してシェルスクリプトを書く停止状態にすることができ、私はセットCPUが15分で1%未満の場合にインスタンスを停止するアラームを設定する

この方法の次の改良ステップでは、インスタンスIDではなくインスタンスを識別するためにタグを使用することになります

関連する問題