首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改计数时的Terraform循环

更改计数时的Terraform循环
EN

Stack Overflow用户
提问于 2019-06-11 17:17:19
回答 1查看 1.7K关注 0票数 3

我有一些资源,其count是由变量参数化的。它用于创建VM资源以及null_resource,例如在它们上运行部署脚本。当我将计数值从2降到1并应用时,我会得到一个错误。

Terraform执行plan时没有任何抱怨。但是当我apply时,它告诉我有一个循环:

错误:循环: null_resource.network_connection_configuration7,null_resource.network_connection_configuration8,null_resource.network_connection_configuration3,null_resource.network_connection_configuration4,null_resource.network_connection_configuration0,null_resource.network_connection_configuration6,null_resource.network_connection_configuration1,null_resource.network_connection_configuration9,null_resource.network_connection_configuration2,null_resource.network_connection_configuration10,hcloud_server.kafka2,null_resource.network_connection_configuration (准备状态),null_resource.network_connection_configuration5

以下是文件的相关部分:

代码语言:javascript
复制
variable kafka_count {
  default = 3
}

resource "hcloud_server" "kafka" {
  count       = "${var.kafka_count}"
  name        = "kafka-${count.index}"
  image       = "ubuntu-18.04"
  server_type = "cx21"
}

locals {
  all_machine_ips = "${hcloud_server.kafka.*.ipv4_address)}"
}

resource "null_resource" "network_connection_configuration" {
  count = "${length(local.all_machine_ips)}"

  triggers = {
    ips = "${join(",", local.all_machine_ips)}"
  }

  depends_on = [
    "hcloud_server.kafka"
  ]

  connection {
    type        = "ssh"
    user        = "deploy"
    host        = "${element(local.all_machine_ips, count.index)}"
    port        = 22
  }

// ... some file provisioners
}

当我试图用可视化来寻找循环时:

代码语言:javascript
复制
terraform graph -verbose -draw-cycles

没有可见的循环。

当我使用TF_LOG=1时,调试日志不会显示任何错误

所以问题是,我可以增加数量,但不能减少。我不想恶意黑文件,因为这意味着我将无法缩小在未来!我用的是Terraform v0.12.1。

是否有任何策略来调试这种情况?

EN

回答 1

Stack Overflow用户

发布于 2019-11-11 17:01:54

我在0.12.x中也遇到了类似的问题--我在aws_instance资源中调用了一个提供程序,在增加资源的数量时会产生相同的错误。

我使用self对象(self.private_ip)引用资源,而不是使用count.index或element()来绕过它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56548780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档