簡體   English   中英

即使直接通過代碼部署的相同部署組成功運行,Jenkins也會在ApplicationStop步驟中觸發代碼部署失敗

[英]Jenkins triggered code deploy is failing at ApplicationStop step even though same deployment group via code deploy directly is running successfully

當我通過Jenkins(代碼部署插件)觸發時,我收到以下錯誤 -

 No such file or directory - /opt/codedeploy-agent/deployment-root/edbe4bd2-3999-4820-b782-42d8aceb18e6/d-8C01LCBMG/deployment-archive/appspec.yml

但是,如果我直接通過代碼部署觸發部署到同一部署組,並在S3中指定相同的zip(通過Jenkins觸發器獲得),則此步驟將通過。

這是什么意思,我如何找到解決方法? 我目前正致力於集成一些東西,因此需要通過代碼部署和Jenkins同時進行部署。 當我需要確保較小的單元運行良好時,我將運行代碼部署觸發的部署。

更新

如果它適用,只需提及另一點。 我之前在相同的ec2實例上使用了不同的codedeploy“應用程序”和“部署組”,並且還直接使用jenkins和代碼部署。 為了解決某些問題(據稱不允許因部署失敗而覆蓋現有文件),我刪除了/opt/codedeploy-agent/deployment-root/<directory containing deployments>目錄中的所有內容,試圖遵循在這個答案中提到。 但請注意,我只刪除了該目錄中的項目。 此后,我開始收到此錯誤,在部署檔案中找不到appspec.yml。 那么,我創建了一個新的應用程序和部署組,從那時起,我正在研究它。

因此,另一個要考慮的問題是,如果jenkins觸發部署仍以某種方式仍然受到這些刪除的影響(即使它指的是新的應用程序和部署組),我是否應該進行進一步的清理。

作為其過程的一部分,CodeDeploy需要參考以前的部署以進行重新部署和部署回滾操作。 這些引用在部署存檔文件夾之外維護。 如果您在指示時手動刪除這些存檔,則CodeDeploy安裝可能會受到嚴重損壞:以前部署的引用不再正確或一致,並且部署將失敗。

此時最好的辦法是完全刪除舊安裝,然后重新安裝。 這將允許代碼部署代理再次正常工作。

我已經學會了很難不手動刪除/修改任何 CodeDeploy安裝文件夾或文件。 即使您更改了應用程序或部署組,CodeDeploy也會自行解決,無需任何手動清理。

為了進行部署,bundle需要包含appspec.yml文件,並且該文件需要放在頂層目錄中。 似乎錯誤消息是由於主機代理無法找到appspec.yml文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM