使用GCP Terraform将域名绑定至私有内部IP的问题求助
解决GCP Terraform DNS记录集关联VM内部IP的问题
问题根源
你当前对VM内部IP的引用路径错误,导致rrdatas字段无法正确获取到虚拟机的内部IP地址。
修正后的代码
把google_dns_record_set资源里的rrdatas字段替换成以下正确写法:
resource "google_dns_record_set" "rs" { count = var.node_count name = "jenkins-worker-test-${count.index}.com" type = "A" ttl = 300 managed_zone = "corp-org-com" # 正确引用对应VM的内部IP rrdatas = [google_compute_instance.tyler_test_vm_instance[count.index].network_interface[0].network_ip] }
关键说明
- 由于
google_compute_instance使用了count,要通过[count.index]直接定位到当前循环对应的实例,而非.*.id[count.index]这种错误的索引方式 network_interface是列表类型(即便只配置了一个网卡),必须用[0]访问第一个网卡的配置network_ip字段对应虚拟机的内部IP地址,完全符合你需要的子网内IP的需求
额外验证
执行terraform plan查看输出中rrdatas的取值是否为预期的内部IP,确认无误后再执行terraform apply完成部署。
内容的提问来源于stack exchange,提问作者TeeTee
相关产品推荐
相关产品推荐

