LoginSignup
1
0

More than 1 year has passed since last update.

TerraformをMac + Azureで使うときのメモ

Last updated at Posted at 2022-12-31

AzureでTerraform使うことになったのでメモ。

はじめに

Terraformのコードはかなりバージョン依存が強いです。なので、本家の最新サンプルなど参考にした方がいいです。

原因不明のエラーでしばらく悩みました。

事前準備

Azure CLIのインストール

基からTerraformがインストールされているAzure Cloud Shell使う例が多いようですが、今回はCLI。
Homebrewで入ります。

brew install azure-cli

いちおう動作チェック。

az --version

Terafformのインストール

オフィシャルでは、下記コマンドが紹介されています。こちらもHomebrewで入るみたい。

brew tap hashicorp/tap
brew install hashicorp/tap/terraform

ただ、Terraformはバージョンがコロコロ変わるかつ依存が高いので、tfenvというバージョン(環境)切り替えツールを介してインストールしてみます。

tfenv自体はHomebrewで入ります。

brew install tfenv

とりあえずlatestを入れてみる。

tfenv install latest

提供されてるバージョンリストは、tfenv list-remote で確認可能です。

インストールされているバージョンを確認。

tfenv list

執筆時点では1.3.6が最新なので、それを利用するように指定。

tfenv use 1.3.6

動作確認。

terraform --version

VSCodeにTerafform用の機能拡張を入れる

設定の記述自体はvscodeで記述するのでプラグイン入れておきます。
とりあえず下記2つを入れました。オフィシャルのやつとAzure用のもの。

プラグインは再起動なしでうまく起動するはずだがフォーマッタ機能が再起動後じゃないとうまく動作しなかったです。

基本操作?

最低限の動作確認をしてみたいと思います。
基本的には本家のチュートリアル一部を端折ってやってみるだけ。

Azureへのログイン

コマンドラインでAzureにログインします。
サービスプリンシパルを使う方法が検索にひっかかるし、その方がいいのでは?と思うのですが、Azure CLI経由では更新系?の操作が通常?のログインじゃないとできないみたいなので普通にログインします。

az login

作業場とファイルを作る

作業用のディレクトリとファイルを作ります。

cd
mkdir terra-test
cd terra-test

とりあえず今回はmain.tfにまとめて書く。

touch main.tf

テンプレートファイルを書く

記述します。プロバイダー関連をproviders.tfに切り出すのが一般的みたいですね。

main.tf
terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 3.0.2"
    }
  }

  required_version = ">= 1.1.0"
}

provider "azurerm" {
  features {}
}

resource "azurerm_resource_group" "rg" {
  name     = "myTFResourceGroup"
  location = "japaneast"
}

初期化

ファイルを記述したら初期化します。必要なフィアルなどがダウンロードされます。

プロバイダのバージョンなどが違うとエラーが出るみたい。

terraform init

フォーマット確認

ネットの記事ではplanを生成する感じだったとけどチュートリアルはフォーマットの検証する感じなのでしてみる。

terraform fmt

バリデート

内容の?検証。

terraform validate

適用

問題なければ適用。

terraform apply

状態確認

terraform show
terraform state list

必要に応じてWebポータルなどでも確認。

片付け

いらなくなったらdestroyで掃除。

terraform destroy

とりあえずは以上。
他のリソース生成も随時試してみたい。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0