2016-09-25 67 views
1

我已經使用Jenkins和Amazon EC2 plugin創建了一個設置。它一切正常,帶來新的實例,運行init腳本來安裝必要的軟件來運行構建。構建完成後,工作人員閒置5分鐘,就會終止。使用Jenkins和EC2工作節點(停止,不終止)

現在,雖然它按預期工作,但速度非常慢,因爲每次新版本開始時,它都必須從頭開始下載所有Maven依賴項。

我需要的是一個解決方案,它使用預先安裝的一組EC2實例,在需要時啓動,然後在完成時停止它,而不是終止它。通過這種方式,節點將使用maven install和其他已安裝的軟件(yum)保持未更改的依賴關係。

有沒有這樣的插件或其他手段來實現這一目標?

+0

如何創建一個自定義的AMI,並且已經安裝了所有的依賴關係,並通過它創建工作節點? –

+0

@MarkB問題是,經常發生Maven依賴關係變化,每次發生新的AMI時都會感到麻煩。 – Wrench

回答

0

我最近做了類似的事情,但竹(這是一個商業產品,副本詹金斯)

首先,我使用開源的打包工具做出了AMI,請參閱https://www.packer.io/intro/而不是運行在啓動的依賴關係時間它這樣做在構建時 當然還有一種可能性,即依賴會過時,但定期重建應在走到這 你可以從詹金斯

下一個觸發封隔器構建,我啓動了一個實例與此AMI,然後注意到實例ID。例如,它可能是我-96e05d1c

實例可以被帶到停止狀態

在詹金斯編寫使用這樣的命令,

aws ec2 start-instances --instance-id i-96e05d1c 

終於在CloudWatch的shell腳本,我設置如果CPU在15分鐘內小於1%,則發出警報,以停止實例

此方法的下一個細化步驟將使用標記來標識實例,而不是實例標識