[英]CI/CD process with Jenkins or Chef
假設我必須執行以下工作:1:檢測S3上有一個新的WAR文件。 2:將其從S3鏟斗中拉出。 3:停止Wildfly服務器4:替換Wildfly服務器上的WAR文件5:重新啟動Wildfly服務器
該圖以詹金斯為例。 Wildfly和Appeon在EC2實例上。 由於某些許可問題,我們不能每次都使用CFT創建新實例,因此我必須假定所有這些步驟都在此EC2實例中完成。
讓我們假設故障轉移不是問題。
有兩種方法可以完成此操作,一種是使用Jenkins,就像Jenkins監視S3存儲桶,然后停止,更換,重新啟動服務器和WAR,而無需每次都創建新實例。
另一個在該實例上使用Chef,它將每5分鍾檢查一次S3存儲桶,例如,如果有一個新的WAR文件,則將其下拉。 (假設WAR文件名沒有改變...),使用一些魔術腳本來停止服務器,替換WAR文件,重新啟動服務器,所有這些都在同一實例上運行。
由於我不了解CI / CD,Jenkins或Chef。
因此,任何建議或示例都將大有幫助! 提前致謝!
如果這確實是您要做的一切,那么Chef肯定會過頭了。 一個簡單的bash腳本可以從cron(或者如果想成為超級幻想者,可以使用systemd計時器單元)運行,則可能會很好。 我會從小處着手,並盡量不要使事情變得過於復雜,部署管道中移動的部分越多,可能發生的事情就越多(通常在最壞的時間)。
如何觀看上傳war文件的過程,而不是觀看s3存儲桶。 將部署設置為上傳過程的下游。 然后,您的停止服務和部署可以通過jenkins成為一堆shell腳本。 它應該只是停止您的服務,可能會使用ssh。 SSH並執行新戰爭的curl / wget(通過刪除舊戰爭)和ssh來啟動服務...您不必通過讓廚師參與而使事情變得復雜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.