Terraform:创建多个实例和 DNS 记录。只为第一个 01 号水滴创建了一个 DNS 记录

Terraform: create multiple instances and DNS records. Created only one DNS record for the first droplets number 01

我想创建多个实例和 DNS 记录。但是只为第一个 01 号水滴创建一个 DNS 记录。

有人可以帮助我吗?我想要所有 droplet 的 DNS 记录。

[

resource "digitalocean_droplet" "puppet" {
  count = "${var.numberofservers}"
  name = "${var.servername}-${format("%02d", count.index+1)}"
  image = "${var.ubuntu_18}"
  region = "${var.do_fra1}"
  size = "${var.s_1vcpu_1gb}"
  ipv6 = true
  backups = false
  monitoring = true
  private_networking = true
  tags = ["${digitalocean_tag.puppet.name}"]
  ssh_keys = [
    "${var.ssh_fingerprint}"
    ]

DNS

# Create DNS zone
resource "digitalocean_domain" "puppet_dns" {
  name         = "test-${var.domain_name}"
}

# Add A records to the domain
resource "digitalocean_record" "pupet_a" {
  //domain = "${var.servername}" // fetching the domain name created above.
  domain = "${digitalocean_domain.puppet_dns.name}"
  type   = "A"
  name   = "${element(digitalocean_droplet.puppet.*.name, count.index)}"
  value  = "${element(digitalocean_droplet.puppet.*.ipv4_address, count.index)}"
}

您还需要遍历为您的 DNS 记录创建的 droplet:

resource "digitalocean_record" "pupet_a" {
  count  = "${var.numberofservers}"
  domain = "${digitalocean_domain.puppet_dns.name}"
  type   = "A"
  name   = "${element(digitalocean_droplet.puppet.*.name, count.index)}"
  value  = "${element(digitalocean_droplet.puppet.*.ipv4_address, count.index)}"
}

现在您只是创建一个记录资源并将第一个 Droplet 名称和 IP 地址传递给它。