如何在terraform中运行sudo命令?

问题描述 投票:5回答:1

我的问题类似于这个git hub帖子,但遗憾的是它尚未解决:

https://github.com/hashicorp/terraform/issues/550

我想要一种简单的方法来为我的terraform脚本的provisioner "remote-exec" { }块中运行的命令赋予sudo权限。

我来自一个ansible背景,它有sudo: yes选项,允许任何命令ansible运行在我的ansible-playbook运行命令中使用--ask-sudo-pass可选时运行具有sudo权限的命令。我想在我的terraform脚本的provisioner "remote-exec"块中做类似的事情。

这是我要运行的provisioner "remote-exec"块:

  provisioner "remote-exec" {
    inline = [
      "sudo apt-get update",
      "sudo apt-get install -y curl"
    ]
  }

当我在我的terraform apply中运行时,我看到此命令的输出中出现以下行:

openstack_compute_instance_v2.test.0 (remote-exec): [sudo] password for myUserName:
openstack_compute_instance_v2.test.1 (remote-exec): [sudo] password for myUserName:
openstack_compute_instance_v2.test.2 (remote-exec): [sudo] password for myUserName:

然后它只给了我无数的这些:

openstack_compute_instance_v2.test.0: Still creating... 
openstack_compute_instance_v2.test.1: Still creating... 
openstack_compute_instance_v2.test.2: Still creating... 

那么如何解决这个问题并让terraform运行sudo命令呢?

注意:我的provisioner "remote-exec"块的连接不能是root,所以即使这是一个简单的解决方案,但它不是我可以使用的。

sudo provisioning terraform
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.