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 ;| | /| /| ; | / | | | ; | ) | | | ;| | / | | ;| || | | | 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 中国語 Web サイトの他の関連記事を参照してください。