このブログをご覧のみなさん、こんにちは。

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 ファイルを記述すれば良いか分かるわけです。

  1. Terraform は内部的に Azure Resource Manager のコマンドを実行している
  2. そのため、 tf ファイルの形は Azure Resource Manager 向けファイルと似た形をしているはず

という推測から HashiCorp の公式ドキュメントのままではできなかった以下ができました。

これに気づくまで HashiCorp の公式ドキュメントの

を両方書いているのに、どうして [Public IPアドレス] が仮想マシンに紐付かないのだろう?と詰まっていたのですが、これに気づいたおかげで問題を解消できました。