作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题类似于此git hub帖子,但不幸的是它尚未解决:
https://github.com/hashicorp/terraform/issues/550
我想要一种简单的方法来为terraform脚本的provisioner "remote-exec" { }
块中运行的命令赋予sudo特权。
我来自ansible背景,该背景具有sudo: yes
选项,当在我的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...
provisioner "remote-exec"
块的连接不能是root,因此即使这是一个简单的解决方案,也无法使用。
最佳答案
答案是在我的第一个sudo命令中使用以下语法:
"echo yourPW | sudo -S someCommand"
"${var.pw}"
了,所以运行我的sudo命令很简单,只需将第一个命令更改为:
provisioner "remote-exec" {
inline = [
"echo ${var.pw} | sudo -S apt-get update",
"sudo apt-get install -y curl"
]
}
关于sudo - 如何在Terraform中运行sudo命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37847273/
我是一名优秀的程序员,十分优秀!