🛕
[Terraform][GCP]CloudDNSにAレコードを追加する
published_at: 2019-01-04 21:29
シンプルにできたので投稿
TerraformでGCP環境を管理している方であれば、1時間もあれば管理をやれるようになると思います。
refs
- https://www.terraform.io/docs/providers/google/r/dns_managed_zone.html
- https://www.terraform.io/docs/providers/google/r/dns_record_set.html
- https://qiita.com/ww24/items/0fe3a8096a22a8c9083a
前提
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
その他
既存の他のレコードの取得方法を知りたい・・・
Discussion