[Terraform]GCPのCloudDNSにAレコードを追加する

公開日:2019-01-04
最終更新:2019-01-04

シンプルにできたので投稿
TerraformでGCP環境を管理している方であれば、1時間もあれば管理をやれるようになると思います。

refs

前提

refs: https://github.com/sogaoh/TerraformPractice/tree/master/gcp-01

  • GCP プロジェクト
    • Terraform 用のサービスアカウント作成済み (*1)
  • Terraform のインストール
  • GCS に tfstate を置くためのバケットを構築済み (*2)
    • 手動でバケット作成されていれば、GCP Cloud SDK のインストールは任意
  • (*1) のアカウントで認証済み
  • terraform init が完了していて、(*2) に tfstate 作成済み

方法

terraform import の試行

以下のようなコマンドが成功するように

terraform import \  
    google_dns_managed_zone.{{any_name_z}} \  
    projects/{{project-id}}/managedZones/{{zone}}

以下のようなリソースファイルを作成

resource "google_dns_managed_zone" "{{any_name_z}} " {  
  name     = "{{zone}}"  
  dns_name = "{{your_domain}}."    # 最後のドットは必要とのこと  
}

成功するとこんな感じ

 terraform import google_dns_managed_zone.{{any_name_z}} projects/{{project-id}}/managedZones/{{zone}}  
google_dns_managed_zone.{{any_name_z}}: Importing from ID "projects/{{project-id}}/managedZones/{{zone}}"...  
google_dns_managed_zone.{{any_name_z}} : Import complete!  
  Imported google_dns_managed_zone (ID: {{zone}})  
google_dns_managed_zone.{{any_name_z}}: Refreshing state... (ID: {{zone}})  

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.

Aレコード用のリソースファイルを整備

例えばこんな感じかと

・・・  
resource "google_dns_record_set" "{{any_name_sd}}" {  
  managed_zone = "${google_dns_managed_zone.{{any_name_z}}.name}"  
  name         = "pera.${google_dns_managed_zone.{{any_name_z}}.dns_name}"  
  type         = "A"  
  ttl          = 300  
  rrdatas      = ["${google_compute_instance.{{target-instance-name}}.network_interface.0.access_config.0.nat_ip}"]  
}

plan & apply

あとは

terraform plan  
terraform apply

確認

少し時間をおいて、任意の方法で

  • dig コマンド
  • GCP管理コンソールの Cloud DNS

その他

既存の他のレコードの取得方法を知りたい・・・

記事が少しでもいいなと思ったらクラップを送ってみよう!
18
+1
@sogaohの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする