Terraform は、Hashicorp 構成言語 (HCL) で書かれた Infrastructure-as-Code (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 つ先になっていることがわかり、この問題が技術的負債として時間の経過とともに蓄積されていきます。
リポジトリの Terraform/OpenTofu 依存関係をアップストリームで追跡するのに役立つツールである samwise-cli を紹介します。リポジトリでモジュールの使用状況を検索し、現在使用されているバージョンよりも高度なすべてのバージョンとともに、利用可能な更新があるモジュールのレポートを生成します。
現時点ではコマンドは 1 つだけですが、ツールが開発され次第、さらに多くのコマンドが追加される予定です。
当面の間ランダムリポジトリ
Terraform モジュールの旅に同行し、モジュールの依存関係の更新の負担を共有する CLI アプリケーション。ちょうど、ある勇敢なホビットがフロドの持ち運びを手伝ったように :)
\ : / '-: __ :-' -: )(_ :-- -' |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