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