らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

mac に tfenv で Terraform をインストールし ACI 上に Tenant を作成する

今の所 Terraform は開発が早めです。 複数バージョンの Terraform を混在させたい場合は tfenv を使います。 今回は Homebrew を使って tfenv をインストールし、ACI 上に Tenant を作成する手順をメモしておきます。

tfenv をインストールする

インストール可能な tfenv のバージョンは brew info tfenv で確認出来ます。 現時点では 2.2.2 でした。

$ brew info tfenv
tfenv: stable 2.2.2 (bottled), HEAD
Terraform version manager inspired by rbenv
https://github.com/tfutils/tfenv
Conflicts with:
  terraform (because tfenv symlinks terraform binaries)
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/tfenv.rb
License: MIT
==> Options
--HEAD
    Install HEAD version
==> Analytics
install: 8,091 (30 days), 31,143 (90 days), 87,392 (365 days)
install-on-request: 8,074 (30 days), 31,068 (90 days), 87,127 (365 days)
build-error: 0 (30 days)

tfenv をインストールします。

brew install tfenv

インストールが完了したら tfenv --version を実行して意図したバージョンがインストールされていることを確認します。

$ tfenv --version
tfenv 2.2.2

Terraform をインストールする

インストール可能済みの Terraform バージョンは tfenv list で確認出来ます。 初期状態では Terraform がインストールされていない為、No versions available. と表示されました。

$ tfenv list
No versions available. Please install one with: tfenv install

インストール可能な Terraform バージョンは tfenv list-remote で確認出来ます。 現時点の最新は 1.0.2 のようです。

$ tfenv list-remote
1.1.0-alpha20210630
1.1.0-alpha20210616
1.0.2
1.0.1
1.0.0
0.15.5
    ・
    ・
    ・

今回はバージョン 1.0.2 をインストールします。 tfenv install [VERSION] で指定バージョンの Terraform をインストール出来ます。

tfenv install 1.0.2

インストールしただけではまだ Terraform を利用することが出来ません。 利用するバージョンは tfenv use [VERSION] で設定します。 tfenv use [VERSION] を実行して初めて、実際に terraform を利用することが出来ます。

$ tfenv use 1.0.2
Switching default version to v1.0.2
Switching completed

再度、tfenv list でインストール済みの Terraform バージョンを表示するとインストールした 1.0.2 が表示され、且つ、バージョン表記の左側に「利用中」であることを示す * が表示されていることが分かります。

$ tfenv list
* 1.0.2 (set by /opt/homebrew/Cellar/tfenv/2.2.2/version)

Terraform で ACI に Tenant を作成する

次はインストールした Terraform 1.0.2 を利用し、ACI 上に Tenant を作成してみます。 最初に作業用ディレクトリを作成し、そこへ移動します。

$ mkdir my-first-terraform
$ cd my-first-terraform/

下記の 2 ファイルを作成します。 ACI へアクセスする為の情報 (username, password, url) は環境に応じて書き換えます。


main.tf

terraform {
  required_providers {
    aci = {
      source  = "CiscoDevNet/aci"
      version = "0.7.1"
    }
  }
}

provider "aci" {
  username = "admin"
  password = "password"
  url      = "https://10.0.0.1"
  insecure = true
}

aci.tf

# Tenant
resource "aci_tenant" "tenant" {
  name = "Tenant1"
}

まず、Terraform を初期化します。 この作業は最初の一回だけ、実行します。

terraform init

定義した .tf ファイルの内容通りに Tenant を作成するには以下を実行します。 これで ACI 上に Tenant1 という Tenant が作成されるはずです。

terraform apply -auto-approve

作成した Tenant を削除するには以下を実行します。

terraform destroy -auto-approve