amazon-web-services - 如何实现重新烘焙 AMI 的一致性

标签 amazon-web-services docker updates aws-cloudformation offlineapps

我想知道烘焙 AMI 的最佳方法是什么。尽管它提供了很大的一致性,但当您由于小的安全更新或新的软件包版本而需要重新烘焙 AMI 时,很难实现一定程度的一致性,因为您很可能最终会更新您不需要的其他软件包不需要更新,这可能会导致某些东西损坏。

到目前为止,我正在烘焙所有软件包安装,包括 docker 和拉取基本镜像(例如 Ubuntu)。

我知道在执行 apt-get install 或其 cfn-init 等效项时可以准确指定所需的软件包版本,但如果不再支持它怎么办?我应该将包裹放入 S3 存储桶中吗?但是所有的依赖关系又如何呢?有没有简单的方法可以从 s3 进行 apt-get install 而不必去第三方仓库?

最佳答案

我刚刚回答了一个类似的问题,关于将资源烘焙到 AMI 与使用 Chef、Puppet 等配置管理工具的比较。

简短的答案是尝试不要将软件烘焙到 AMI 中,而是使用可重复的“配方”(Chef 术语)在基础镜像之上进行构建。

至于要安装的特定版本的软件包,您当然可以将软件依赖项固定到特定版本。如果您没有对它们做任何特别的事情,我强烈建议您尽可能使用 native 包管理器。至于不再可用的软件包,Ubuntu LTS希望这不是什么大问题。

请参阅full answer here

关于amazon-web-services - 如何实现重新烘焙 AMI 的一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28886678/

相关文章:

c# - 从存储桶 xxx 获取对象文件名.xlsx 时出错。确保它们存在并且您的存储桶与此功能位于同一区域?

amazon-web-services - AWS Glue ETL 作业和 AWS EMR 有什么区别?

适用于 Linux 的 Windows 子系统上的 Laravel Sail (wsl)

eclipse - 我可以回滚我的 Eclipse Juno 更新吗?

sql-server - 在 SQL Server 2008 中仅更新同一表中的特定列后更新触发器中的一列

iphone - 转换为通用应用程序的iPad应用程序出现在iPhone新应用程序中吗?

amazon-web-services - 使用 aws cli 部署到单独的帐户

amazon-web-services - 在 AWS 上使用 Elastic Beanstalk 的 Go Web 应用程序未在日志中显示输出

c - 应用程序(如用 C 开发的应用程序)是否应该添加容器(比如 docker)支持?

java - 多次调用 docker 容器内的 jar 主文件