Terraform和DigitalOcean:将体积分配给使用count参数创建的特定液滴

时间:2017-12-14 17:44:38

标签: digital-ocean terraform

刚刚开始探索terraform以在数字海洋上旋转水滴和体积。

我的问题是要知道正确的方法:

  • 使用名为count的{​​{1}}资源中的digitalocean_droplet创建一定数量的Droplet实例
  • 仅将ubuntu16分配给先前创建的一个或一部分液滴。

怎么做?我假设在digitalocean_volume资源上使用droplets_id属性。类似的东西:

digitalocean_volume

使用resource "digitalocean_volume" "foovolume" { ... droplet_ids = ["${digitalocean_droplet.ubuntu16.0.id}"] } 验证它:

terraform validate

有什么建议吗?感谢它的任何输入。

此致

1 个答案:

答案 0 :(得分:2)

当前实施DigtialOcean的Terraform提供商的方式要求您采取相反的方法。您可以通过定义Droplet资源的volume_ids来指定哪些卷附加到哪些Droplet。例如:

resource "digitalocean_volume" "volume" {
    region      = "nyc3"
    count       = 3
    name        = "volume-${count.index + 1}"
    size        = 100
    description = "an example volume"
}

resource "digitalocean_droplet" "web" {
    count      = 3
    image      = "ubuntu-17-10-x64"
    name       = "web-${count.index + 1}"
    region     = "nyc3"
    size       = "1gb"
    volume_ids = ["${element(digitalocean_volume.volume.*.id, count.index)}"]
}

如果查看docs for the volume resource,您会看到droplet_ids是“计算”字段。这意味着您无法设置该字段,并且其值由Terraform通过提供程序的API计算。