レジストリへのモジュール公開
再利用可能なTerraformモジュールをGitでバージョン管理し、パブリックまたはプライベートのモジュールレジストリに公開してチーム間で共有します。
「レジストリへのモジュール公開」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
ローカルモジュールの先へ
ローカルモジュールは、設定ファイルの隣にあるフォルダーに置かれます。プロジェクトやチーム間でモジュールを共有するには、モジュールレジストリに公開します。そうすると、パッケージマネージャーと同じように、利用者は名前とバージョンを指定して取得できます。
モジュールソース
source 引数によって、Terraform がモジュールを取得する場所が決まります。次のような選択肢があります。
- ローカルパス
- Git リポジトリ
- Terraform パブリックレジストリ
- Terraform Cloud のプライベートレジストリ
レジストリモジュールの利用
レジストリモジュールは namespace/name/provider という形式を使います。再現可能なビルドにするため、必ずバージョンを固定してください。
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "5.1.2"
name = "my-vpc"
cidr = "10.0.0.0/16"
}リポジトリの命名規則
パブリックレジストリでは、特定のリポジトリ名が必要です。terraform-PROVIDER-NAME の形式にします。たとえば AWS 用のネットワークモジュールは、terraform-aws-network という名前のリポジトリに置きます。
標準的なモジュール構成
公開可能なモジュールは、レジストリがドキュメントを自動生成できるよう、予測可能な構成に従います。
terraform-aws-network/
main.tf
variables.tf
outputs.tf
README.md
examples/
basic/main.tf入力のドキュメント化
各変数には description を設定し、できれば type も指定してください。レジストリはこれらを使って、入力値の表を自動的にドキュメント化します。
variable "cidr" {
type = string
description = "The CIDR block for the VPC"
default = "10.0.0.0/16"
}Git タグによるバージョン管理
レジストリは、セマンティックバージョンの Git タグからモジュールのバージョンを取得します。リリースにタグを付けることで、利用者が新しいバージョンを使えるようになります。
git tag v1.0.0
git push origin v1.0.0Git ソースの直接固定
レジストリを使わず、URL で Git リポジトリを参照することもできます。ref クエリパラメーターを使ってタグを固定します。
module "network" {
source = "git::https://github.com/acme/terraform-aws-network.git?ref=v1.0.0"
cidr = "10.0.0.0/16"
}プライベートレジストリ
Terraform Cloud と Enterprise にはプライベートレジストリが用意されています。社内モジュールの機密性を保ちながら、同じ名前とバージョンの流れで組織内から見つけて利用できます。
セマンティックバージョンの制約
安全にアップグレードできるよう、バージョン制約を使います。~> 演算子を使うと、パッチおよびマイナーバージョンの更新は許可しつつ、互換性を壊すメジャーバージョンの変更は許可しません。
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "~> 5.1"
}モジュールバージョンの更新
バージョン制約を変更したら、terraform init -upgrade を実行して、許可される最新バージョンを取得し、ロックファイルを更新します。
terraform init -upgrade理解度チェック
モジュールのバージョン管理についての理解度を確認しましょう。
まとめ: モジュールの共有
モジュールの公開と利用方法を学びました。
terraform-PROVIDER-NAMEというリポジトリ命名規則- 入力と出力をドキュメント化した標準構成
- Git タグによるレジストリバージョンの管理
~>などのバージョン制約による安全なアップグレード
これで、再利用可能なモジュールを組織内のあらゆるプロジェクトで活用できます。
よくある質問
「レジストリへのモジュール公開」レッスンは無料ですか?
はい。「レジストリへのモジュール公開」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「レジストリへのモジュール公開」で何を学びますか?
再利用可能なTerraformモジュールをGitでバージョン管理し、パブリックまたはプライベートのモジュールレジストリに公開してチーム間で共有します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「レジストリへのモジュール公開」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Terraformモジュールの概要
- 再利用可能なモジュールの作成
- 環境にワークスペースを使用する
- レジストリへのモジュール公開