如何使用Terraform配置启动远程服务?

sno*_*uis 14 gnu-screen nohup terraform

我希望我的Terraform配置通过调用命令来配置服务器并在最后启动服务并继续运行它.我尝试使用nohup和屏幕使用remote-exec:

nohup的:

provisioner "remote-exec" {
 inline = "nohup sudo command &"
}
Run Code Online (Sandbox Code Playgroud)

屏幕:

provisioner "remote-exec" {
 inline = "screen -d -m sudo command"
}
Run Code Online (Sandbox Code Playgroud)

我通过手动登录来检查命令是否正在运行.但他们没有保持流程运行.如果我手动尝试这些命令并且使用ssh调用它们也可以.

如何在返回控制流时使用Terraform配置来启动命令并使其保持运行?

tal*_*kco 27

尝试在nohup后加入睡眠.为我工作.我怀疑在你的最后一个远程执行官的背景下让Terraform在子进程有机会启动之前关闭连接,尽管nohup.

provisioner "remote-exec" {
    inline = [
        "nohup sudo command &",
        "sleep 1"
    ]
}
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案.它对我来说很好. (2认同)
  • 我用 nohup 和 disown 尝试了很多解决方案。什么都没起作用。但这个解决方案对我有用。 (2认同)