はじめに
Terraform初心者(使ったことがないレベル)の人がつかってみたよ、という内容になってます。忘備録的な感じです。
試した環境
- Windows 10 (21H1)
- Terraform (0.15.4)
Terraformは下記よりダウンロードしてきました。 www.terraform.io
環境を作成するところはAzureを利用してみます。
準備
Terraformのインストール
ということでダウンロードしたファイルを適当な場所に解凍します。ここでは C:¥Terraform に解凍してみます。
次に環境変数のPATH
にTerraform.exeを配置したパスを追加して、とあるので追加します。
スタートメニューを右クリックし、「システム」を選択します。プロパティ画面が開いたら[詳細設定]タブ→[環境変数]ボタンをクリックします。
画面上部のユーザー環境変数にある「PATH」を選択し、[編集]ボタンをクリックします。
編集画面が開いたら[新規]ボタンをクリックし、Terraform.exeを配置したパスを入力します。入力が完了したら[OK]ボタンをクリックして追加した内容を適用します。
コマンドプロンプロを開き、以下のコマンドを実行してバージョンが表示されるか確認します。
terraform -v
コマンドが実行されると以下のようにバージョン情報が表示されます。
もしバージョンが表示されない場合、PATHの設定にミスがある可能性がありますので設定内容を見直します。(綴りミスとか)
Azure CLI toolのインストール
ここではAzure上に環境を作ってみたいと思っているので、Azure CLI Toolをインストールします。 Powershellを管理者権限で起動して以下のコマンドを実行します。
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; rm .\AzureCLI.msi
インストールが成功していても失敗していても画面上には特に何も表示されません。(下記のように表示されます)
インストールされているかを確認するため、スタートメニューを右クリックし、「プログラムと機能」を選択します。 一覧の中から「Microsoft Azure CLI」があるか確認します。
一覧になければインストールされていない状態なので、もう一度インストールを実施します。Powershellを管理者権限で実行されているか、ダウンロード先のURLが有効なものではなくなっていないか、など確認してみてください。
インストールがうまくいっている場合、az
コマンドを実行すると以下のようにウェルカム画面が表示されます。
やってみる
TerraformのページにAWS、Azure、GCPのチュートリアルも公開されているのでこちらを試してみます。
お仕事の関係上、AWSよりAzureを使うことが多いので、ここではAzureを試してみます。
下記を参考に進めます。
作業ディレクトリの作成
C:¥samples¥terraform
のディレクトリを作成し、main.tf
を作成します。
内容は公式ドキュメントを参考にし、ロケーションを日本に変更しました。
# Configure the Azure provider terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = ">= 2.26" } } required_version = ">= 0.14.9" } provider "azurerm" { features {} } resource "azurerm_resource_group" "rg" { name = "myTFResourceGroup" location = "japaneast" }
初期化実行
C:¥samples¥terraform
上で、terraform init
を実行します。
次にコマンドの出力結果にもある通り、Planを作成します。
計画の構築
terraform plan
を実行します。
と、ここでエラーになってしまいました。
PS C:\samples\terraform> terraform plan ╷ │ Error: Error building AzureRM Client: obtain subscription() from Azure CLI: Error parsing json result from the Azure CLI: Error waiting for the Azure CLI: exit status 1: ERROR: Please run 'az login' to setup account. │ │ with provider["registry.terraform.io/hashicorp/azurerm"], │ on main.tf line 13, in provider "azurerm": │ 13: provider "azurerm" { │ ╵
Azureのログインをしてから実行してねとあるので、az login
を実行します。コマンド実行するとブラウザが開き、Azureへのログインを促されるので普通にログインを実施します。
再度、terraform plan
を実行します。
addに一件追加された状態となり、成功しました。
計画内容を適用
terraform apply
を実行します。planで登録した内容を実際のサービスへ適用する感じかなと思います。
実施内容が表示され、実行して良いかの確認がありますのでyes
を入力します。
無事処理が終わりました。サンプルはリソースグループを作っているだけのようなので、Azure ポータル上で確認してみます。
ポータル上でもリソースグループが作成されていることが確認できました。(すごい簡単...)
削除する
最後に今作成したリソースを削除してみます。
terraform destroy
を実行します。
ここも削除確認がありますので、yes
を入力します。
削除されるまで10秒間隔でチェックがあり、無事削除されました。 このあと、ポータル上からも消えていたのを確認しました。
やってみたいこと
最終的にはお仕事の方へ反映していきたいので、まずは仮想環境をちゃんと構築できるようにしたいですね。