在 terraform 销毁期间删除文本文件

gre*_*ila 0 delete-file terraform terraform-provider-aws

我试图hosts在执行时从本地计算机中删除生成的 Ansible 库存文件terraform destroy

当我运行时,terraform apply我用来provisioner "local-exec"创建hosts文件,稍后由部署期间调用的 ansible playbook 使用。

provisioner "local-exec" {
    command = "echo master ansible_host=${element((aws_instance.kubeadm-node.*.public_ip),0)} >> hosts"
  }
Run Code Online (Sandbox Code Playgroud)

hosts当我删除所有资源时是否可以确保文件被删除terraform destroyhosts执行时删除文件的最简单方法是什么terraform destroy

感谢您的帮助,如果我的解释不够清楚,请告诉我。

ses*_*i_c 5

我建议使用local_file 资源来处理清单文件。这样我们就可以在applydestroy运行时轻松地按预期管理文件。

例子:

resource "local_file" "ansible_inventory" {
  filename              = "./hosts"
  file_permission       = "0664"
  directory_permission  = "0755"
  content               = <<-EOT
    master ansible_host=${element((aws_instance.kubeadm-node.*.public_ip),0)}
  EOT
}
Run Code Online (Sandbox Code Playgroud)