[英]AWS Code Deploy Fails When Calling Msdeploy
我正在設置構建過程以利用自動縮放組的AWS代碼部署。 我已經設法使用appspec.yml和BeforeInstall.bat文件構建和壓縮代碼,所有文件都正確地移動到S3。 代碼部署正確拉下zip文件,解壓縮並調用BeforeInstall.bat。 批處理文件有3個步驟
它正確地完成了第1步和第2步,但是當它到達第3步時,它調用msdeploy並返回此錯誤:
Error: There was an error reading IIS configuration schema from 'C:\\Windows\\system32\\inetsrv\\config\\schema\\'
認為這可能是權限問題,我登錄到其中一個服務器並手動運行cmd腳本。 它部署很好,這並不奇怪,因為我以管理員身份登錄。 然后我打開了一個PowerShell腳本作為LocalSystem
用戶(這是CodeDeploy Host Agent Service
運行的CodeDeploy Host Agent Service
)並運行cmd腳本。 它成功完成。 我將整個批處理文件作為LocalSystem
用戶運行。 它運行成功。
然后我返回並將echo %username%
添加到批處理腳本,提交,構建並運行新部署。 我在代碼中看到這個用戶部署日志WIN-49GNL2FRHJ4$
。 部署仍然失敗。 當我以Administrator
身份從powershell窗口運行該框上的批處理腳本時,我當然看到Administrator
回應了。 腳本成功。 當我從powershell窗口運行批處理腳本作為LocalSystem
我看到WIN-49GNL2FRHJ4$
,就像它通過AWS控制台從CodeDeploy運行一樣,但它成功運行。
AWS控制台如何將該批處理文件作為LocalSystem
用戶調用以及如何通過PowerShell窗口將其作為該用戶調用,這有何不同?
看起來問題是安裝了舊版本的Web Deploy。 我去尋找日志並意識到我已經以某種方式安裝了v2(可能是我將IIS安裝到EC2實例時的默認設置)。 我下載並安裝了最新版本(撰寫本文時為v 3.6)並創建了一個新部署。 代碼按預期部署。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.