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中文網其他相關文章!