-1

CD過程假設我必須做以下工作: 1:檢測有S3上一個新的WAR文件。 2:將它從S3存儲桶中取出。 3:停止Wildfly服務器 4:替換Wildfly服務器 5上WAR文件:重新啓動Wildfly服務器 enter image description hereCI /與詹金斯或廚師

該圖使用詹金斯作爲一個例子。 Wildfly和Appeon在EC2實例上。由於某些許可問題,我們不能每次都使用CFT創建一個新實例,因此我必須假設在此EC2實例中完成所有這些步驟。

讓我們假設故障切換不是問題。

兩條路線完成這件事,一種是採用詹金斯,詹金斯一樣會讓看錶的S3桶,停止,更換,重新啓動服務器和WAR,不用每次都創建一個新的實例。

另一種是在該實例使用廚師,它將檢查S3存儲每5分鐘,例如,如果有一個新的WAR文件,把它拉下來。 (假設WAR文件名不會更改...),使用一些魔術腳本來停止服務器,替換WAR文件,重新啓動服務器,所有這些都在同一個實例上運行。

因爲我不知道CI/CD,詹金斯或廚師。

所以,任何建議或例子都會有很大幫助!提前致謝!

+0

>我們有插件Wildfly插件「https://wiki.jenkins.io/display/JENKINS/WildFly+Deployer+Plugin」就像我們爲Tomcat,你可以配置你有配置Wildfly。 >>但我正在考慮進行本地回購檢查,我們已經配置了Git Repository以檢查是否發生更改。 >> –

+0

我有些懷疑 1)如果War先部署在Tomcat中,它會停止服務器並取消部署和重新部署新的戰爭..這個過程與WildFly不同嗎? 2)你如何能夠生成WAR文件?(你正在使用maven/ant的代碼) 3)你爲什麼需要這裏的廚師? –

+0

@ChandraSekhar 1)我不知道Tomcat和Wildfly,但我認爲它是一樣的。 2)我將使用PowerBuilder + Appeon在另一個EC2實例中生成WAR文件並上傳到S3。 3)我想從S3 bucket上開始重新部署,自動完成以下所有步驟。 –

回答

1

如果這真的是你在做什麼,廚師會waaaaaay矯枉過正。從cron運行一個簡單的bash腳本(或者一個systemd定時器單元,如果你想成爲超級花式的話)可能會很好。我會從小處着手,儘量不要使事情過度複雜化,部署流水線中越是動人的部分,越有可能破壞(通常是在最糟糕的時候)。

+0

但是,如何啓動執行魔術的腳本,當它檢測到S3桶上的對象被覆蓋或存在新創建的對象時。 –

+0

可能只是一個cron工作。 – coderanger

1

怎麼看,它會將war文件的過程中,而不是看一個S3桶。將部署設置爲上傳過程的下游。然後,您的停止服務和部署可以通過jenkins成爲一堆shell腳本。它應該只是停止你的服務,可能會使用ssh。 Ssh和新的戰爭捲曲/ wget(通過刪除舊戰爭)& ssh開始服務......你不要讓事情變得複雜,讓廚師參與其中。