【问题标题】:Terraform local-exec stuck on "Still creating .." using az vm run-commandTerraform local-exec 使用 az vm run-command 卡在“仍在创建 ..”
【发布时间】:2021-03-08 21:23:53
【问题描述】:

我正在尝试在 Terraform 0.13.5 上运行“local-exec”命令,该命令在 CentOS VM 中运行脚本。这个脚本(我们称之为utility-script.sh)只是创建一个日志文件并安装dnf。在脚本的末尾有一个exit 0 行。还尝试了killall -u ${username},但它仍然停留在“仍在创建..”上。 az vm run-command 命令只是挂起。这以前可以工作,但现在突然挂了。

期望:完成此命令并进入下一个。

实际结果:控制台显示“仍在创建...”直到超时,在 Azure 上为 90 分钟。

resource "null_resource" "run-utility-script" {
  # Script execution happens after download
  depends_on = [
    null_resource.script-download
  ]

  # Create for each centos VM
  count = length(var.centos-vm-ids)

  triggers = {
    current_instance_id = var.centos-vm-ids[count.index]
  }

  provisioner "local-exec" {
    command     = "az vm run-command invoke --command-id RunShellScript --name ${var.centos-vm-names[count.index]} -g ${var.resource_group} --scripts \"echo ${var.password} | sudo -S chmod +x ${local.utility_script} ; echo ${var.password} | sudo bash ${local.utility_script}\""
  }
}

如何解决这个挂起的问题?

【问题讨论】:

  • 为什么不使用remote-exec 供应商而不是local-execterraform.io/docs/provisioners/remote-exec.html
  • 在此处粘贴脚本。另外,如果你想在目标机器上运行这个脚本,它必须是remote-execlocal-exec 在控制器机器上执行。

标签: azure terraform terraform-provider-azure hcl


【解决方案1】:

推荐您使用custom script extension

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 2020-07-09
    • 2020-07-26
    • 2021-05-03
    • 2020-03-21
    相关资源
    最近更新 更多