Patcher,一种持续更新基础设施即代码的工具

Gruntwork 推出 Patcher 工具

Gruntwork 宣布了 Patcher 的 Beta 版本,这是一个用于自动更新基础设施即代码(IaC)的工具,即使在存在重大变更的情况下也能保持代码的更新。

Patcher 的主要功能

Patcher 目前支持将参考架构从 CIS AWS Foundation Benchmark 的 1.4 版本升级到 1.5 版本,引入了超过 200 项更改并修复了三个重大变更。参考架构是一系列建议和最佳实践,用于将 Gruntwork 的基础设施即代码库组装成 AWS 上的端到端技术堆栈。Patcher 的目标是通过一系列自动化的操作,帮助用户管理 Gruntwork 基础设施即代码库的所有升级。

安装与使用

Patcher 可以从 GitHub 仓库轻松安装(目前需要向 Gruntwork 申请访问权限)。Patcher 使用 Docker 在沙盒环境中执行升级操作。

安装后,Patcher 对 IaC 仓库的升级步骤如下:

  1. 发现依赖项的更新
  2. 应用重大变更的补丁
  3. 审查更改
  4. 部署

用户可以通过以下命令发现和更新依赖项:

patcher upgrade

依赖项管理与补丁应用

Patcher 分析源代码,自动发现依赖项、每个依赖项的版本以及是否有新版本。维护者可以定义补丁,指定如何转换代码以处理重大变更。补丁通过 YAML 文件描述,Patcher 执行 YAML 文件中定义的任意命令。例如,以下 YAML 代码描述了如何为 tflint 添加补丁:

name: "Add tflint hook to Terragrunt configuration for CIS compliance checks"
author: Gruntwork <gruntwork.io>
image: gruntwork/patcher_bash_env:v0.0.12
steps:
  - name: "Create tflint configuration"
    run: create_tf_lint_config.sh
  - name: "Add to the root terragrunt.hcl a hook for tflint"
    run: add_hook.sh

安全性与审查

Patcher 在定义的 Docker 镜像中执行升级操作,确保代码的可移植性并通过限制镜像的访问权限来保护用户安全。升级完成后,Patcher 会显示所有应用的补丁的摘要。用户可以通过 git diff 轻松审查更改,并决定是否提交所有更改或进行部分修改。

未来愿景

Patcher 的第一个版本专注于支持从 CIS 1.4 到 1.5 的迁移,但 Gruntwork 的愿景是自动化 Gruntwork 基础设施即代码和参考架构的所有更新。

阅读 18 (UV 18)
0 条评论