このブログをご覧のみなさん、こんにちは。
Terraform から Azure を操作するのはとても簡単です。しかし、残念ながら、HashiCorp の公式ドキュメントはあまり分かり易く記述されていません。一方、Azure の公式ドキュメントは分かり易く詳細に記述されていますが、Terraform は Microsoft のツールではないため説明がありません。
そこで、そんな問題を解決する方法をご紹介します。
Environment
- Mac Book Pro
- OS X Yosemite 10.10.5
- Terraform 0.7.1
Terraform で Azure Resource Manager の操作で困った時の解決方法
作成したい仮想マシンの内容を Azure Portal 上で定義していきます。定義後、最後に検証が終わると、以下の画面が表示されます。
ここで、[OK] の隣にある [Download template and parameters] をクリックすると、ここまで設定した内容の Azure Resource Manager 向けファイルがダウンロードできます。
この Azure Resource Manager 向けファイルを読み解けば、Terraform でどのように tf
ファイルを記述すれば良いか分かるわけです。
- Terraform は内部的に Azure Resource Manager のコマンドを実行している
- そのため、
tf
ファイルの形は Azure Resource Manager 向けファイルと似た形をしているはず
という推測から HashiCorp の公式ドキュメントのままではできなかった以下ができました。
これに気づくまで HashiCorp の公式ドキュメントの
- Azure Resource Manager: azurerm_virtual_machine – Terraform by HashiCorp
- Azure Resource Manager: azurerm_public_ip – Terraform by HashiCorp
を両方書いているのに、どうして [Public IPアドレス] が仮想マシンに紐付かないのだろう?と詰まっていたのですが、これに気づいたおかげで問題を解消できました。