首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用max_revisions值限制代码部署修订不起作用

使用max_revisions值限制代码部署修订不起作用
EN

Stack Overflow用户
提问于 2017-10-24 13:40:39
回答 2查看 1.7K关注 0票数 0

我试图通过编辑EC2文件的max_revisions值来限制保存在codedeployagent.yml实例上的成功代码部署修订的数量。我目前已经将值设置为:max_revisions: 2

我相信我遇到的问题是由于我正在设置文件值的方法。我试图通过与代码部署包一起部署它来设置值。为此,我在本地创建了一个自定义codedeployagent.yml文件,位于以下位置:

etc/codedeploy-agent/conf/codedeployagent.yml

在我的appspec.yml文件中,我将通过以下行指定该文件的安装位置:

代码语言:javascript
复制
- source: etc/codedeploy-agent/conf/codedeployagent.yml
     destination: /etc/codedeploy-agent/conf

由于脚本已经到位,我在尝试部署时发现了这个错误。为了解决这个问题,我添加了一个脚本,该脚本与我的appspec.yml挂在appspec.yml上,它将在安装包之前删除脚本:

代码语言:javascript
复制
#!/bin/bash
sudo rm /etc/codedeploy-agent/conf/codedeployagent.yml

好的,在这之后,我将sshd输入到服务器中,并且足够肯定的是,:max_revisions: 2值是按预期设置的。不幸的是,在实践中,我看到了比仅在ec2实例上保存两个版本更多的修订。

所以,回到我问题的开头,…显然,这种解决方法并不是更新codedeployagent.yml文件的最佳方法。我应该补充说,我正在部署到一个自动缩放组,所以这需要是一个可以驻留在部署脚本或云形成模板中的解决方案,而不仅仅是登录和硬编码值。有这么多信息,我在这里少了什么?怎样才能适当地限制修订?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-10 01:09:13

更新配置文件后重新启动代理吗?在重新启动代理之前,任何新配置都无法工作。

票数 2
EN

Stack Overflow用户

发布于 2017-10-26 01:43:25

您可以尝试以下方法之一。

  1. 以您已经将max_revisions修改为2的一个AMI实例为例,使用这个AMI更新ASG的启动配置,这样扩展实例也将具有此配置。
  2. 在创建启动配置命令以添加userdata部分时,在userdata部分中添加此配置 "UserData“:{”Fn::bash 64“:{ "Fn::Join”:[“!/bin/bash -xe\n","#删除最后一行并添加新行\n","sed '$ d‘-xe\n>/etc/codedeploy-agent/conf/tem.yml\n”,"echo ':max_revisions: 2’>> /etc/codedeploy-agent/conf/tem.yml\n“,"rm /etc/codedeploy-agent/conf/codedeployagent.yml\n","mv /etc/ codedeploy-agent /conf/tem.yml /etc/codedeploy-agent/conf/codedeployagent.yml\n",“服务代码部署-代理重新启动\n”}}

根据参考文献,max_revisions为每个部署组申请应用程序。因此,它在/opt/codedeploy-agent/deployment-root/<deployment_group_id>/下只保留了两个修订版。如果ASG与多个应用程序相关联,codedeploy将在其deployment_group_id目录中存储每个应用程序的2个修订版。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46912079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档