我试图通过编辑EC2文件的max_revisions值来限制保存在codedeployagent.yml实例上的成功代码部署修订的数量。我目前已经将值设置为:max_revisions: 2。
我相信我遇到的问题是由于我正在设置文件值的方法。我试图通过与代码部署包一起部署它来设置值。为此,我在本地创建了一个自定义codedeployagent.yml文件,位于以下位置:
etc/codedeploy-agent/conf/codedeployagent.yml
在我的appspec.yml文件中,我将通过以下行指定该文件的安装位置:
- source: etc/codedeploy-agent/conf/codedeployagent.yml
destination: /etc/codedeploy-agent/conf由于脚本已经到位,我在尝试部署时发现了这个错误。为了解决这个问题,我添加了一个脚本,该脚本与我的appspec.yml挂在appspec.yml上,它将在安装包之前删除脚本:
#!/bin/bash
sudo rm /etc/codedeploy-agent/conf/codedeployagent.yml好的,在这之后,我将sshd输入到服务器中,并且足够肯定的是,:max_revisions: 2值是按预期设置的。不幸的是,在实践中,我看到了比仅在ec2实例上保存两个版本更多的修订。
所以,回到我问题的开头,…显然,这种解决方法并不是更新codedeployagent.yml文件的最佳方法。我应该补充说,我正在部署到一个自动缩放组,所以这需要是一个可以驻留在部署脚本或云形成模板中的解决方案,而不仅仅是登录和硬编码值。有这么多信息,我在这里少了什么?怎样才能适当地限制修订?谢谢。
发布于 2017-11-10 01:09:13
更新配置文件后重新启动代理吗?在重新启动代理之前,任何新配置都无法工作。
发布于 2017-10-26 01:43:25
您可以尝试以下方法之一。
max_revisions修改为2的一个AMI实例为例,使用这个AMI更新ASG的启动配置,这样扩展实例也将具有此配置。根据参考文献,max_revisions为每个部署组申请应用程序。因此,它在/opt/codedeploy-agent/deployment-root/<deployment_group_id>/下只保留了两个修订版。如果ASG与多个应用程序相关联,codedeploy将在其deployment_group_id目录中存储每个应用程序的2个修订版。
https://stackoverflow.com/questions/46912079
复制相似问题