【发布时间】:2016-10-17 06:25:00
【问题描述】:
我的问题与这篇 git hub 帖子类似,但不幸的是没有解决:
https://github.com/hashicorp/terraform/issues/550
我想要一种简单的方法来为在我的 terraform 脚本的 provisioner "remote-exec" { } 块中运行的命令授予 sudo 权限。
我来自具有 sudo: yes 选项的 ansible 背景,当在我的 ansible-playbook 运行命令中使用 --ask-sudo-pass 选项时,该选项允许 ansible 运行的任何命令以 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