社内向けにterraformモジュールを共有する

1 min read読了の目安(約1100字

社内向けにterraformモジュールを共有したかった。
TerraformCloudは使わせて貰えなさそうだった。

submodule

git の submodule という機能を使って、gitの中にgitをネストする。
昔は色々設定が必要だったみたいだけど、いまは1コマンドを実行するだけ。cloneと同じ。

モジュールディレクトリ

以下の通り作成する。
この中でmodulesディレクトリを作ると使う時に深くなるので、いきなりモジュールが露出するようにする。

$ tree tfm-network/
.
├── README.md
├── vpc/
│   ├── main.tf
│   ├── variables.tf
│   ├── .../
├── endpoint/
│   ├── main.tf
│   ├── variables.tf
│   ├── .../

プロジェクトディレクトリ

モジュールを使う側のプロジェクトディレクトリ設定。
一応、ローカルのモジュールとリモートのモジュールを分けるようにしてみた。

$ tree complete-module/
.
├── README.md
├── env/
│   ├── production/
│   │   ├── README.md
│   │   ├── variables.tf
│   │   ├── main.tf
│   │   ├── outputs.tf
│   ├── develop/
│   ├── .../
├── modules/
│   ├── localmoduleA/
│   │   ├── README.md
│   │   ├── variables.tf
│   │   ├── main.tf
│   │   ├── outputs.tf
│   ├── localmoduleAB/
│   ├── .../
├── modules-remote/
│   ├── tfm-network/
│   │   ├── vpc/
│   │   │   ├── main.tf
│   │   │   ├── variables.tf
│   │   │   ├── .../
│   │   ├── endpoint/
│   │   │   ├── main.tf
│   │   │   ├── variables.tf
│   │   │   ├── .../

URL

https://www.terraform.io/docs/language/modules/develop/structure.html
https://www.d-wood.com/blog/2014/05/22_6257.html