Managing Vultr Domain by Terraform

TerraformでVultr DNSを管理する。

Configuring Terraform for Vultr

環境変数”VULTR_API_KEY”にVultr API Keyを設定する。

export VULTR_API_KEY="my_personal_access_token"

Vultr用のprovider.tfを作成

terraform {
  required_providers {
    vultr = {
      source = "vultr/vultr"
      version = "~> 2.16"
    }
  }
}

variable "vultr_token" {}

provider "vultr" {
  api_key = var.vultr_token
}

プロジェクトフォルダ内でterralformを初期化する。

terraform init

Importing Domains

ドメインゾーン情報をインポートするため、tfファイルを作成。

resource "vultr_dns_domain" "dok8s_net" {}

インポートする。

terraform import -var "vultr_token=${VULTR_API_KEY}" vultr_dns_domain.dok8s_net dok8s.net 

下記のように表示される。

# vultr_dns_domain.dok8s_net:
resource "vultr_dns_domain" "dok8s_net" {
    date_created = "2023-11-20T02:02:03+00:00"
    dns_sec      = "disabled"
    domain       = "dok8s.net"
    id           = "dok8s.net"
}

上記を元にtfファイルを修正。

resource "vultr_dns_domain" "dok8s_net" {
  dns_sec      = "disabled"
  domain       = "dok8s.net"
}

Importing Domain Records

ドメインレコード情報をインポートするため、tfファイルに下記を追記。

resource "vultr_dns_record" "blog_A" {}

blog.dok8s.netのid情報を確認

vultr-cli dns record list dok8s.net

下記のように表示される。

ID                                      TYPE    NAME                    DATA
e5c01adb-a8e2-472b-bb8f-01bd4f8fb427    A       blog                    207.148.90.115

このレコード情報をインポートする。

terraform import -var "vultr_token=${VULTR_API_KEY}" vultr_dns_record.blog_A dok8s.net,e5c01adb-a8e2-472b-bb8f-01bd4f8fb427

成功すると下記のように表示される。

vultr_dns_record.blog_A: Importing from ID "dok8s.net,e5c01adb-a8e2-472b-bb8f-01bd4f8fb427"...
vultr_dns_record.blog_A: Import prepared!
  Prepared vultr_dns_record for import
vultr_dns_record.blog_A: Refreshing state... [id=e5c01adb-a8e2-472b-bb8f-01bd4f8fb427]

Import successful!

The resources that were imported are shown above. These resources are now in
your Terraform state and will henceforth be managed by Terraform.

terraform showでステータスを確認。

# vultr_dns_record.blog_A:
resource "vultr_dns_record" "blog_A" {
    data     = "207.148.90.115"
    domain   = "dok8s.net"
    id       = "e5c01adb-a8e2-472b-bb8f-01bd4f8fb427"
    name     = "blog"
    priority = -1
    ttl      = 3600
    type     = "A"
}

上記を元にtfファイルを修正。

resource "vultr_dns_record" "blog_A" {
    data     = "207.148.90.115"
    domain   = "dok8s.net"
    name     = "blog"
    priority = -1
    ttl      = 3600
    type     = "A"
}

terraformの実行計画を確認

terraform plan -var "vultr_token=${VULTR_API_KEY}"

成功すると下記のように表示される。

vultr_dns_record.blog_A: Refreshing state... [id=e5c01adb-a8e2-472b-bb8f-01bd4f8fb427]
vultr_dns_domain.dok8s_net: Refreshing state... [id=dok8s.net]

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です