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 ;| | /| /| ; | / | | | ; | ) | | | ;| | / | | ;| || | | | L-'|____|| )/ | % %/ '-,-…
For this to run where modules are using private GitHub repositories, .samwise.yaml config file needs to passed as an argument or needs to be present at the user's home directory.
.samwise.yaml format:
github_key: github_username:
Currently only GitHub HTTPS authentication is supported but SSH authentication will be supported soon.
CSV Format
JSON Format
I love Lord of the Rings :)
以上是samwise-CLI:开源 Terraform 模块依赖性跟踪器的详细内容。更多信息请关注PHP中文网其他相关文章!