【发布时间】:2020-12-12 01:39:07
【问题描述】:
我正在尝试使用 terraform 构建一个 galera 集群。为此,我需要使用节点 ip 渲染 galera 配置,因此我使用文件模板。
应用时,terraform 会触发错误
Error: Cycle: data.template_file.galera_node_config, hcloud_server.galera_node
申请时似乎有循环引用,因为在使用数据模板之前没有创建服务器。
我该如何规避这个?
谢谢
galera_node.tfdata "template_file" "galera_node_config" {
template = file("sys/etc/mysql/mariadb.conf/galera.cnf")
vars = {
galera_node0 = hcloud_server.galera_node[0].ipv4_address
galera_node1 = hcloud_server.galera_node[1].ipv4_address
galera_node2 = hcloud_server.galera_node[2].ipv4_address
curnode_ip = hcloud_server.galera_node[count.index].ipv4_address
curnode = hcloud_server.galera_node[count.index].id
}
}
resource "hcloud_server" "galera_node" {
count = var.galera_nodes
name = "galera-${count.index}"
image = var.os_type
server_type = var.server_type
location = var.location
ssh_keys = [hcloud_ssh_key.default.id]
labels = {
type = "cluster"
}
user_data = file("galera_cluster.sh")
provisioner "file" {
content = data.template_file.galera_node_config.rendered
destination = "/tmp/galera_cnf"
connection {
type = "ssh"
user = "root"
host = self.ipv4_address
private_key = file("~/.ssh/id_rsa")
}
}
}
【问题讨论】: