我正在尝试使用Terraform配置数字海洋飞沫。我似乎在连接块中缺少主机参数,但是不确定我对digitalocean需要什么值。
这是我的配置文件:
resource "digitalocean_droplet" "test" {
image = "ubuntu-18-04-x64"
name = "test"
region = "nyc1"
size = "512mb"
private_networking = true
ssh_keys = [
"${var.ssh_fingerprint}"
]
connection {
user = "root"
type = "ssh"
private_key = "${file("~/.ssh/id_rsa")}"
timeout = "2m"
}
provisioner "remote-exec" {
inline = [
"export PATH=$PATH:/usr/bin",
# install nginx
"sudo apt-get update",
"sudo apt-get -y install nginx"
]
}
}
“ terraform validate”给我错误:
错误:缺少必需的参数
在frontend.tf第11行的资源“ digitalocean_droplet”“测试”中: 11:连接{
参数“ host”是必需的,但未找到定义。
答案 0 :(得分:1)
我在弄弄这个,找到了答案。
在连接块中,我们应将主机设置为:
connection {
user = "root"
type = "ssh"
host = "${self.ipv4_address}"
private_key = "${file(var.pvt_key)}"
timeout = "2m"
}
答案 1 :(得分:0)
您可以显式引用导出的var:
connection {
user = "root"
host = "${digitalocean_droplet.test.ipv4_address}"
type = "ssh"
password = "${file(var.pvt_key)}"
}
答案 2 :(得分:0)
我认为您的语法有问题。
尝试如下使用:
private_key = file("/home/user/.ssh/id_rsa")
我正在使用terraform版本0.12.25
祝你好运。