Terraform 是一种用 Hashicorp 配置语言 (HCL) 编写的基础设施即代码 (IaC) 工具。本文假设读者已经使用过 Terraform 并了解模块的工作原理。
在 Terraform 中编码的每个人都创建了自己的模块,或者至少使用了其他人的模块。
模块是一起使用的多个资源的容器。模块由保存在一个目录中的 .tf 和/或 .tf.json 文件的集合组成。
模块是Terraform打包和重用资源配置的主要方式。
模块可以发布到 Terraform 注册表或 GitLab 等注册表。还可以通过提供 HTTPS 或 SSH URL 从 Git 存储库提供模块。这些也可以进行版本控制。例如,
module "consul" { source = "github.com/hashicorp/example" }
版本:
module "consul" { source = "github.com/hashicorp/example?ref=1.2.6" }
随着您的存储库的增长以及您在其他存储库中引用您的模块,您将合理地对您的模块进行版本控制,以确保源代码中的上游更改不会破坏您的基础设施。然而,跟踪正在使用的模块的所有新版本是很困难的,更难定期进行。如果不加以解决,随着时间的推移,这个问题就会成为技术债务,因为有一天你发现某个核心模块现在已经领先了 3 个主要版本。
展示 samwise-cli,这是一个帮助跟踪存储库上游的 Terraform/OpenTofu 依赖项的工具。在存储库中搜索模块的使用情况,并生成具有可用更新的模块的报告以及比当前使用的版本更高级的所有版本。
目前,只有一个命令,但希望随着工具的开发,很快会有更多命令。
暂时随机回购
一个 CLI 应用程序,陪伴您的 terraform 模块之旅,并分担模块依赖项更新的负担,就像一位勇敢的霍比特人帮助 Frodo 携带他的 :)
\ : / '-: __ :-' -: )(_ :-- -' |r-_i'- ,sSSSSs, (2-,7 sS';:'`Ss )-j ;K e (e s7 / ( S, '' SJ ( ;/ sL_~~_;(S_) _7 |, 'J)_.-' />'-' `Z j J /-;-A'-'|'--'-j\ L L ) |/ : / \ \ \ | | | '._.'| L \ \ | | | | \ J \ \ _/ | | | ',| \ L.,' | | | | |/ _;-r-<_. __. _ l- l>…
要在模块使用私有 GitHub 存储库的情况下运行,.samwise.yaml 配置文件需要作为参数传递或需要出现在用户的主目录中。
.samwise.yaml 格式:
github_key: github_username:
目前仅支持 GitHub HTTPS 身份验证,很快将支持 SSH 身份验证。
CSV 格式
JSON 格式
我爱指环王:)
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3