繁体   English   中英

调用Msdeploy时,AWS Code Deploy失败

[英]AWS Code Deploy Fails When Calling Msdeploy

我正在设置构建过程以利用自动缩放组的AWS代码部署。 我已经设法使用appspec.yml和BeforeInstall.bat文件构建和压缩代码,所有文件都正确地移动到S3。 代码部署正确拉下zip文件,解压缩并调用BeforeInstall.bat。 批处理文件有3个步骤

  1. 停止应用程序池
  2. 停止一个网站
  3. 请致电website.deploy.cmd

它正确地完成了第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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM