在 terraform destroy 期间删除文本文件
delete text file during terraform destroy
我正在尝试在执行 terraform destroy
.
时从我的本地计算机删除生成的 Ansible 清单 hosts
文件
当我 运行 terraform apply
我使用 provisioner "local-exec"
创建 hosts
文件,该文件稍后由部署期间调用的 ansible 剧本使用。
provisioner "local-exec" {
command = "echo master ansible_host=${element((aws_instance.kubeadm-node.*.public_ip),0)} >> hosts"
}
在删除terraform destroy
的所有资源时,是否可以确保删除hosts
文件?
执行 terraform destroy
时删除 hosts
文件的最简单方法是什么?
感谢您的帮助,如果我的解释不够清楚,请告诉我。
我建议使用 local_file resource 来处理库存文件。这样当 apply
或 destroy
为 运行.
时,我们可以轻松地按预期管理文件
示例:
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
}
您可以添加另一个 local-exec
provisioner 并将其设置为仅在 terraform destroy
为 运行 时使用,例如:
provisioner "local-exec" {
command = "rm -f /path/to/file"
when = destroy
}
有关使用销毁时间供应器的更多信息,请点击此处 [1]。
[1] https://www.terraform.io/language/resources/provisioners/syntax#destroy-time-provisioners
我正在尝试在执行 terraform destroy
.
hosts
文件
当我 运行 terraform apply
我使用 provisioner "local-exec"
创建 hosts
文件,该文件稍后由部署期间调用的 ansible 剧本使用。
provisioner "local-exec" {
command = "echo master ansible_host=${element((aws_instance.kubeadm-node.*.public_ip),0)} >> hosts"
}
在删除terraform destroy
的所有资源时,是否可以确保删除hosts
文件?
执行 terraform destroy
时删除 hosts
文件的最简单方法是什么?
感谢您的帮助,如果我的解释不够清楚,请告诉我。
我建议使用 local_file resource 来处理库存文件。这样当 apply
或 destroy
为 运行.
示例:
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
}
您可以添加另一个 local-exec
provisioner 并将其设置为仅在 terraform destroy
为 运行 时使用,例如:
provisioner "local-exec" {
command = "rm -f /path/to/file"
when = destroy
}
有关使用销毁时间供应器的更多信息,请点击此处 [1]。
[1] https://www.terraform.io/language/resources/provisioners/syntax#destroy-time-provisioners