我对 terraform 还很陌生,希望能得到一些意见。
地形 0.14.5
球体提供者 v1.24.1
尝试并行配置 2 个虚拟机。
首先,我试图只使用 local-exec 配置程序和“sed”将主资源的 IP 地址提供给配置文件以供 minion 资源使用。问题是文件没有被及时编辑,以便 minion 资源获取文件的更新版本。所以我发现了这个: https ://discuss.hashicorp.com/t/edit-files-using-local-exec-and-use-them-for-configuration/1616
我现在已经配置了 terraform 来更新文件,如下所示:
可以说 minion.tmplt 内容是The master ip is ${master_ip}
locals {
template_file_init = templatefile("${path.module}/minion.tmplt", {master_ip = vsphere_virtual_machine.master_vm[0].default_ip_address})
}
在奴才资源中:
provisioner "file" {
content = local.template_file_init
source = "minion.cfg"
destination = "/etc/minion.cfg"
on_failure = fail
}
现在它可以工作了,minion 连接到 master但terraform 拒绝并行部署它们,并在 master 获得 IP 地址后立即更新和配置文件。它首先配置整个主资源,然后在从属资源上启动,如果要并行执行,则配置时间为 20 分钟,而不是 10 分钟。有人可以帮忙吗?