」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > samwise-CLI:開源 Terraform 模組依賴性追蹤器

samwise-CLI:開源 Terraform 模組依賴性追蹤器

發佈於2024-11-07
瀏覽:423

地形

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 依賴項的工具。在儲存庫中搜尋模組的使用情況,並產生具有可用更新的模組的報告以及比目前使用的版本更高級的所有版本。

samwise-CLI: The Open Source Terraform module dependency tracker

目前,只有一個命令,但希望隨著工具的開發,很快會有更多命令。

暫時隨機回購

samwise-CLI: The Open Source Terraform module dependency tracker 達斯科技 / samwise-cli

一個 CLI 應用程序,陪伴您的 terraform 模組之旅,並分擔模組依賴項更新的負擔,就像一位勇敢的霍比特人幫助 Frodo 攜帶他的一樣 :)

三智

一個 CLI 應用程序,陪伴您的 terraform 模組之旅,並分擔模組依賴項更新的負擔,就像一位勇敢的霍比特人幫助 Frodo 攜帶他的 :)

samwise-CLI: The Open Source Terraform module dependency tracker

%,( "' /%% / Cccc' (cause I couldn't find good enough Samwise Gamgee ASCII art) Frodo by Shanaka Dias">
                       \ : /
                    '-: __ :-'
                    -:  )(_ :--
                    -' |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-CLI: The Open Source Terraform module dependency tracker

要在模組使用私人 GitHub 儲存庫的情況下運行,.samwise.yaml 設定檔需要作為參數傳遞或需要出現在使用者的主目錄中。

.samwise.yaml 格式:

github_key:
github_username:

目前僅支援 GitHub HTTPS 驗證,很快將支援 SSH 驗證。

結果

CSV 格式
samwise-CLI: The Open Source Terraform module dependency tracker

JSON 格式
samwise-CLI: The Open Source Terraform module dependency tracker

限制(或更好地描述為要添加的功能)

  • 用於檢索模組來源的 SSH 驗證
  • 追蹤 Hashicorp 的登錄模組(他們有一個 API 可以在此處列出版本)

名稱的上下文

我愛魔戒:)

版本聲明 本文轉載於:https://dev.to/thundersparkf/samwise-cli-the-open-source-terraform-module-dependency-tracker-3b1e?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 了解無衝突複製資料類型
    了解無衝突複製資料類型
    無衝突複製資料類型 (CRDT) 是一類資料結構,可在分散式系統中實現無縫協作和資料同步,從而實現無衝突的協作更新。 CRDT 旨在實現跨多個資料副本的最終一致性,確保即使更新獨立發生,所有副本也能收斂到相同狀態,而不需要複雜的衝突解決機制。 在這篇文章中,我們將深入研究 CRDT 是什麼,探索它...
    程式設計 發佈於2024-11-07
  • 如何在 PyQt 應用程式中正確利用 QThreads?
    如何在 PyQt 應用程式中正確利用 QThreads?
    在PyQt 應用程式中使用QThreads 的最佳實踐使用QThreads 允許在PyQt 應用程式中進行多執行緒處理,從而實現任務分離並提高反應能力。然而,理解適當的技術至關重要。 重新實作 Run 方法的不適當性如同參考部落格文章中所提到的,重新實作 run 方法是不是使用 QThreads 的...
    程式設計 發佈於2024-11-07
  • 輕鬆掌握雙向一對一關係:提升 Spring Data JPA 效率
    輕鬆掌握雙向一對一關係:提升 Spring Data JPA 效率
    释放双向一对一关系的力量 在本深入指南中,我们将探讨相互一对一关联、CRUD 操作的复杂性,以及在高效数据建模中mappedBy、@JsonManagedReference 和 @JsonBackReference 的作用。 理解相互的一对一关联 简化 CRUD 操作 mappedBy 的重要性 揭...
    程式設計 發佈於2024-11-07
  • 使用 faker 和 pandas Python 庫建立用於測試的綜合數據
    使用 faker 和 pandas Python 庫建立用於測試的綜合數據
    介绍: 全面的测试对于数据驱动的应用程序至关重要,但它通常依赖于拥有正确的数据集,而这些数据集可能并不总是可用。无论您是开发 Web 应用程序、机器学习模型还是后端系统,真实且结构化的数据对于正确验证和确保稳健的性能至关重要。由于隐私问题、许可限制或仅仅是相关数据的不可用,获取真实世界数据可能会受到...
    程式設計 發佈於2024-11-07
  • go htmx 和 sse 範例
    go htmx 和 sse 範例
    此範例示範如何取代事件中的幾個區塊,例如「id 1 已變更的貼文」( post-1-changed ) 並觸發透過「chatter」上的ajax 要求載入內容事件。 package main import ( "fmt" "net/http" "time" "git...
    程式設計 發佈於2024-11-07
  • Python 中網頁抓取的當前問題和錯誤以及解決它們的技巧!
    Python 中網頁抓取的當前問題和錯誤以及解決它們的技巧!
    Introduction Greetings! I'm Max, a Python developer from Ukraine, a developer with expertise in web scraping, data analysis, and processing. ...
    程式設計 發佈於2024-11-07
  • Django 模型屬性可以增強查詢過濾嗎?
    Django 模型屬性可以增強查詢過濾嗎?
    模型屬性可以增強 Django 中的查詢過濾嗎? Django 中物件導向程式設計的關鍵特性之一是能夠定義您的模型的屬性。屬性允許您為模型添加功能,而無需編寫其他方法。它們的工作原理是根據模型中儲存的資料返回計算值。 屬性的常見用例是建立從現有欄位組合派生的自訂屬性。例如,假設您有一個代表一本書的模...
    程式設計 發佈於2024-11-07
  • 使用 GraphQL 和 React 提高應用程式效率:深入探討
    使用 GraphQL 和 React 提高應用程式效率:深入探討
    您是否希望簡化您的應用程式開發流程?將 GraphQL 與 React 結合可能會改變您所需的遊戲規則。在我們最新的文章中,我們探討了這些技術如何協同工作來建立高效、可擴展的應用程式。無論您是剛開始還是希望提升自己的技能,本指南都提供了寶貴的見解,可幫助您的開發遊戲更上一層樓。 在這裡查看完整的帖...
    程式設計 發佈於2024-11-07
  • 如何使用Elasticsearch對電子郵件地址和電話號碼進行模糊匹配?
    如何使用Elasticsearch對電子郵件地址和電話號碼進行模糊匹配?
    使用 Elasticsearch 模糊匹配電子郵件或電話Elasticsearch 提供了模糊匹配電子郵件地址和電話號碼的內建功能。 電子郵件匹配匹配以特定網域結尾的電子郵件地址(例如@gmail.com):{ "query": { "term&...
    程式設計 發佈於2024-11-07
  • WebA 簡單示範的第一步
    WebA 簡單示範的第一步
    Web3 肯定會繼續存在。比特幣、以太坊、Solana 等網路正在快速發展,所有應用程式都建立在它們之上。 如果您是 JavaScript 開發人員並想嘗試 Web3,第一步就是安裝 Metamask。從那裡,您可以使用 Metamask 注入瀏覽器的 window.ethereum 物件上可用的...
    程式設計 發佈於2024-11-07
  • Python 中的循環控制語句:break、continue、pass
    Python 中的循環控制語句:break、continue、pass
    在Python中,我們有3種循環控制語句:break、continue和pass。 休息 當條件滿足時,循環中斷並跳脫循環。 for i in range(10): print(i) if i == 5: break # It will print...
    程式設計 發佈於2024-11-07
  • 如何在 Matplotlib 中指定浮點值的刻度標籤格式?
    如何在 Matplotlib 中指定浮點值的刻度標籤格式?
    格式化浮點值的刻度標籤在matplotlib 中,您可以指定浮點值的刻度標籤的格式以顯示特定的小數位或抑制科學計數notation.要實現此目的,您可以使用matplotlib.ticker 模組中的FormatStrFormatter 類別。此格式化程式允許您為標籤指定格式字串。 例如,要在 y ...
    程式設計 發佈於2024-11-07
  • 如何使用 PHP 高效儲存和檢索數組?
    如何使用 PHP 高效儲存和檢索數組?
    如何使用 PHP 儲存和擷取陣列在 PHP 中儲存和擷取陣列可能是出於各種目的的常見任務。雖然可能沒有像 store_array() 這樣的專用函數,但有一些高效且簡單的方法可以完成此任務。 首選方法是使用 JSON 序列化。此方法將陣列轉換為人類可讀的格式,從而減小檔案大小並加快載入/儲存時間。 ...
    程式設計 發佈於2024-11-07
  • 如何從 JavaScript 物件簡潔地選擇隨機屬性?
    如何從 JavaScript 物件簡潔地選擇隨機屬性?
    從 JavaScript 物件簡潔選擇隨機屬性在 JavaScript 中,物件是儲存在雜湊表中的鍵值對。從物件檢索特定屬性需要知道確切的屬性鍵。然而,有時可能需要從物件中選擇隨機屬性。 一種常見的方法涉及迭代物件的屬性,對它們進行計數,然後產生該範圍內的隨機整數。使用此方法,您將迭代物件一次以確定...
    程式設計 發佈於2024-11-07
  • 為什麼sync.Once使用atomic.StoreUint32而不是標準分配?
    為什麼sync.Once使用atomic.StoreUint32而不是標準分配?
    sync.Once中的原子記憶體排序在探索sync.Once的原始程式碼時,我們偶然發現了使用atomic背後的原因。 StoreUint32 而不是像 o.done = 1 這樣的標準賦值。 Go 中的記憶體排序並發程式設計中的一個基本概念是記憶體排序,它確保共享內存在所有處理器上一致地觀察到存取...
    程式設計 發佈於2024-11-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3