Gruntwork发布Patcher 的 Beta 测试版。该工具可以自动保持基础设施即代码的更新,即使有重大更改也没问题。
在撰写本文时,Patcher 允许将参考架构从CIS AWS Foundation Benchmark 1.4 版本升级到 1.5 版本。该版本引入了 200 多项更改并修复了 3 项重大更改。参考架构是一系列建议和最佳实践,将来自 Gruntwork 的基础设施即代码库组装成 AWS 上的端到端技术栈。Patcher 的目标是让用户可以管理 Gruntwork 基础设施即代码库的所有升级工作,并自动执行一系列的操作。
用户可以从 GitHub 存储库安装 Patcher(在撰写本文时,访问其存储库还需要向 Gruntwork 申请)。Patcher 使用 Docker 在沙盒环境中执行升级。
安装完成后,要升级 IaC 存储库,Patcher 会执行以下步骤:
查找依赖项更新
应用更改的补丁
检查更改
部署
Patcher 使用以下命令查找并更新依赖项:
该工具会分析源代码并自动发现依赖项、每个依赖项的版本,以及是否有新版本。在下面的示例中,Patcher 发现了一些需要升级的依赖项。
Patcher 允许维护人员定义一个补丁,指定如何转换代码以完成重大更改。应用于代码的补丁通过 YAML 文件描述。Patcher 会执行 YAML 代码中定义的步骤。那些步骤可能是任意命令。例如,tflint(一种强制执行与安全组相关的新建议的方法)的补丁可以指定为:
Patcher 在已定义的 Docker 镜像中执行升级。这使得代码可移植,并且能够通过限制镜像可以查看的内容和执行的操作来保证用户的安全。当 Patcher 升级完成后,它会显示应用的所有补丁的摘要信息。这样,用户就可以查看更改并应用它们。
可以使用 git diff 进行检查,因为 Patcher 会将所有的更改都保存在本地存储库中。然后,用户可以决定提交所有更改,还是进行部分更改。
在上面的屏幕截图中,作为从 CIS 1.4 到 1.5 升级的一部分,Patcher 做了一些更改,应用了一些补丁。
Patcher 的第一个版本专注于支持从 CIS 1.4 到 1.5 的迁移,但 Gruntwork 的愿景是将 Gruntwork 基础设施即代码和参考架构的所有更新都自动化。
原文链接:
https://www.infoq.com/news/2023/04/patcher-iac-upgrade/
相关阅读:
评论