如何从terraform运行ansible脚本

如何从terraform运行ansible脚本,ansible,terraform,terraform-provider-azure,Ansible,Terraform,Terraform Provider Azure,你好,以下是我的要求。 我使用terraform脚本创建了一个linux虚拟机,并发布了使用ansible play book安装一些软件的帖子。因此,我有这个脚本单独与我和它的工作很好 我想做的是,一旦terraform脚本创建了vm,我想从terraform脚本调用ansible脚本,并从ansible脚本安装软件 我尝试了下面的代码,但没有成功 provisioner "remote-exec" { inline = ["sudo dnf -y ins

你好,以下是我的要求。 我使用terraform脚本创建了一个linux虚拟机,并发布了使用ansible play book安装一些软件的帖子。因此,我有这个脚本单独与我和它的工作很好

我想做的是,一旦terraform脚本创建了vm,我想从terraform脚本调用ansible脚本,并从ansible脚本安装软件

我尝试了下面的代码,但没有成功

provisioner "remote-exec" {
    inline = ["sudo dnf -y install python"]

    connection {
      type        = "ssh"
      user        = "fedora"
      private_key = "${file(var.ssh_key_private)}"
    }
  }

  provisioner "local-exec" {
    command = "ansible-playbook -u fedora -i '${self.public_ip},' --private-key ${var.ssh_key_private} provision.yml" 
  }
所以在这里,我不确定ansible如何安装在vm中,目前我正在手动安装,以及如何从terraform调用ansible脚本

错误:未知的根级别键:provisioner只能在
资源中使用,例如:

resource "aws_instance" "web" {
  # ...

provisioner "remote-exec" {
    inline = ["sudo dnf -y install python"]

    connection {
      type        = "ssh"
      user        = "fedora"
      private_key = "${file(var.ssh_key_private)}"
    }
  }

  provisioner "local-exec" {
    command = "ansible-playbook -u fedora -i '${self.public_ip},' --private-key ${var.ssh_key_private} provision.yml" 
  }
}


“它不起作用”-不具体。究竟为什么它不起作用?有错误吗?@Marcin抱歉忘了提到错误:错误:未知根级别键:Provisionieri注意到您有很多问题和答案,但没有一个答案被接受。接受好的答案不仅是一种好的做法,而且有助于他人,消除重复。另外,如果ppl知道你不可能接受好的答案,他们可能会跳过你的问题。@Marcin我想我会在它为我工作时将它标记为接受。我们如何在linux中安装ansibleVM@ashish这取决于哪个linux?您必须决定使用哪种linux,并找到给定发行版的说明。我正在使用RHEL 8,但我不确定如何在linux虚拟机中安装ansible,因为要求在创建linux虚拟机后立即运行ansible脚本。或者,如果我们安装phyton,是否足以使ansible脚本运行?@ashish我认为您应该提出关于RHEL 8和安装的问题ansible,因为这与您在问题中发布的问题完全不同。