这个错误来自CodeDeploy。我无法找出原因和具体情况,希望您能给出一些建议。总体部署失败,因为太多个别实例未能完成部署、可用于部署的健康实例太少或者你的部署组中的某些实例遇到问题。(错误代码: HEALTH_CONSTRAINTS)
这个错误来自CodeDeploy。我无法找出原因和具体情况,希望您能给出一些建议。总体部署失败,因为太多个别实例未能完成部署、可用于部署的健康实例太少或者你的部署组中的某些实例遇到问题。(错误代码: HEALTH_CONSTRAINTS)
如果您正在使用Ubuntu操作系统,可能有很多原因导致问题,以下是检查清单可供验证:
检查是否已在您的EC2实例上安装了代码部署代理。请参考此文档进行代码部署代理的安装。https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ubuntu.html
$ sudo service codedeploy-agent status
如果你正在运行Ubuntu 20.x版本并遇到以下错误:
./install:22:in
block in method_missing': undefined method
path' for #<IO:> (NoMethodError)
请尝试通过以下脚本运行安装文件。
sudo ./install auto > /tmp/logfile
如果在启动后分配 EC2 角色,请重启服务器。
按照置顶答案检查您的 appspec.yml 文件的放置位置,并尽量避免其中的任何长时间超时。
登录到您的实例并检查错误日志。
$ tail -f /var/log/aws/codedeploy-agent/codedeploy-agent.log
这个错误通常是由于 appSpec.yml
或 appSpec.json
文件的配置问题引起的(取决于您使用的格式)。
如果您有任何 Hook,建议您将其删除,检查是否可以正常工作,然后逐个添加(Hook),这样您就可以识别错误。
appspec.yml
文件应位于项目的根目录中:
│-- appspec.yml
│-- index.html
└-- scripts
│-- install_dependencies
│-- start_server
└-- stop_server
scripts
文件夹中,您需要放置要根据 Hook 执行的进程。appspec.yml
文件的一个示例。version: 0.0
os: linux
files:
- source: /index.html
destination: /var/www/html/
hooks:
BeforeInstall:
- location: scripts/install_dependencies
timeout: 300
runas: root
- location: scripts/start_server
timeout: 300
runas: root
ApplicationStop:
- location: scripts/stop_server
timeout: 300
runas: root
根据失败的部署,我可以看到所有的生命周期事件都被跳过了。实例i-0bcc36e73851297f2当前处于停止状态,但是我发现IAM实例配置文件丢失了。您的Amazon EC2实例需要访问存储AWS CodeDeploy将要部署的应用程序的Amazon S3存储桶或GitHub仓库的权限。为了启动与AWS CodeDeploy兼容的Amazon EC2实例,您必须创建一个额外的IAM角色,即实例配置文件。 1
对于此类故障,您可以始终使用一般的故障排除检查清单来解决失败的部署2,然后寻找有关部署问题和实例问题的故障排除指南3。
1[http://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-create-iam-instance-profile.html]1
2 [http://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting-general.html]2
3 [http://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting.html]3
"CodeDeploy代理在解压缩的修订目录中未找到AppSpec文件,相对路径为'appspec.yml'"
请将您的appspec.yml文件放置在根目录中以解决此错误
要访问您的after脚本和before脚本
tail
命令救了我,谢谢。 - d8aninja