0Pricing
DevOps Bootcamp · レッスン

レジストリへのモジュール公開

再利用可能な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.0

Git ソースの直接固定

レジストリを使わず、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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Terraformモジュールの概要
  2. 再利用可能なモジュールの作成
  3. 環境にワークスペースを使用する
  4. レジストリへのモジュール公開
← DevOps Bootcampに戻る