このブログをご覧のみなさん、こんにちは。
以下は
を Azure で実践したものになります。
手順は HashiCorp の公式サイトにある Terraform の Provider: Azure Resource Manager – Terraform by HashiCorp に記載してあります。
Environment
- Mac Book Pro
- OS X Yosemite 10.10.5
- Terraform 0.7.1
Creating Credentials
最初に Creating Credentials を行います。これを実行すると、 client_id
, client_secret
, tenant_id
が払い出されます。英語で書かれていますが、簡単に書くと
クラシックポータルでの作業
- [アクティブディレクトリ]をクリックし、使用するディレクトリを選択する
- [アプリケーション]をクリックする
- [追加]をクリック後、[組織で開発中のアプリケーションを追加]を選択する
Terraform
のような分かり易い名前を入力し、[WEB アプリケーションや WEB API] を選択後、矢印アイコンをクリックする- [サインオン URL] と [アプリケーションの URL] の二つに自分のサイトや GitHub Pages のような有効で未使用の URL を入力後、矢印アイコンをクリックする
- アプリケーションをクリック後、[構成]をクリックすると、ページの真ん中らへんにクライアント ID(
client_id
) の値が表示されている - その下の[キー]節で、時間を選択し、[保存]をクリックすると、クライアントシークレット (
client_secret
) の値が表示されるが、一度しか表示されないので注意する - [エンドポインtpの表示]をクリックすると表示されるポップアップの [OAUTH 2.0 承認エンドポイント]の英語と数字の羅列されている真ん中らへんの値が
tenant_id
の値になる
新ポータルでの作業
- 左のパネルにある[サブスクリプション]をクリック後、使いたいサブスクリプションをクリックし、[すべての設定]をクリック後、[ユーザー]をクリックする
- [追加]をクリック後、Terrafrom に割り当てる役割を選択する。役割の詳細はこちら参照
- [クラシックポータル]で追加したアプリケーション名をユーザー名に選択する
- [OK] をクリックする
Terraform で Azure を構築する
後は [Example Usage] に記載の通り
# Configure the Microsoft Azure Provider
provider "azurerm" {
subscription_id = "[使用するサブスクリプション ID]"
client_id = "[上で表示された client_id]"
client_secret = "[上で表示された client_secret]"
tenant_id = "[上で表示された tenant_id]"
}
# Create a resource group
resource "azurerm_resource_group" "production" {
name = "production"
location = "West US"
}
# Create a virtual network in the web_servers resource group
resource "azurerm_virtual_network" "network" {
name = "productionNetwork"
address_space = ["10.0.0.0/16"]
location = "West US"
resource_group_name = "${azurerm_resource_group.production.name}"
subnet {
name = "subnet1"
address_prefix = "10.0.1.0/24"
}
subnet {
name = "subnet2"
address_prefix = "10.0.2.0/24"
}
subnet {
name = "subnet3"
address_prefix = "10.0.3.0/24"
}
}
を [好きな名前].tf
で保存すれば、実行できます。