我想知道烘焙 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/