azure 使用terraform将文件添加到现有虚拟机

s2j5cfk0  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(107)

如何将本地文件添加到现有VM示例?我尝试向资源添加一个文件供应器块,如下所示:

resource "azurerm_virtual_machine" "vm" { 
#other code
provisioner "file" {
    source = "${path.module}/set_time_style.sh"
    destination = "/etc/profile.d/set_time_style.sh"
  }
#other code
}

字符串
但在运行地形计划后,未检测到变化。我在某个地方读到,它的目的是,不检测到与供应程序相关的更改。但是我怎么能实现我的目标,然后与terraform?
非常感谢!

sxissh06

sxissh061#

即使你可以在Terraform中使用“null_resource”来实现这一点,但这不是最好的方法,因为我觉得这不是Terraform的目的。Terraform主要用于资源调配。
调配虚拟机后,虚拟机内的其他管理(如文件、软件等)应该由配置管理软件(如Chef或Ansible)进行管理。这些工具有更好的方法来处理这些要求,因为它们是为类似的目的而设计的。
由于上述原因,我已经看到一些组织实现了相同的设计模式。
无论如何,如果你仍然需要通过Terraform来完成它,我认为可以通过以下方式使用“空资源”。

resource "null_resource" "copy_file_after" {
 provisioner "file" {
    source      = "dummy.txt"
    destination = "/tmp/dummy.txt"

    connection {
      type        = "ssh"
      user        = "user"
      private_key = file("path_to_key")
      host        = host
    }
  }

字符串

相关问题