我正在使用 terraform v0.10.6 在 digitalocean 上旋转一个水滴。我正在引用已在我的 terraform 配置中添加到 digitalocean 的密钥和 SSH 指纹(复制如下)。我可以使用这个 ssh 密钥登录到现有的 Droplet,但不能登录到新形成的 Droplet(SSH 只是失败了)。关于如何解决这个问题的任何想法,以便当我通过 terraform 启动 droplet 时,我应该能够通过已经添加到 digitalocean 的密钥登录到 droplet(并且在 DO 控制台上可见)。目前,Droplet 出现在 digitalocean 管理控制台上,但我永远无法通过 SSH 连接到服务器(连接被拒绝)。
测试文件
# add base droplet with name
resource "digitalocean_droplet" "do-mail" {
image = "ubuntu-16-04-x64"
name = "tmp.validdomain.com"
region = "nyc3"
size = "1gb"
private_networking = true
ssh_keys = [
"${var.ssh_fingerprint}",
]
connection {
user = "root"
type = "ssh"
private_key = "${file(var.private_key)}"
timeout = "2m"
}
provisioner "remote-exec" {
inline = [
"export PATH=$PATH:/usr/bin",
"sudo apt-get update",
]
}
}
terraform.tfvars
digitalocean_token = "correcttoken"
public_key = "~/.ssh/id_rsa.pub"
private_key = "~/.ssh/id_rsa"
ssh_fingerprint = "correct:finger:print"
提供者.tf
provider "digitalocean" {
token = "${var.digitalocean_token}"
}
变量.tf
##variables used by terraform
# DO token
variable "digitalocean_token" {
type = "string"
}
# DO public key file location on local server
variable "public_key" {
type = "string"
}
# DO private key file location on local server
variable "private_key" {
type = "string"
}
# DO ssh key fingerprint
variable "ssh_fingerprint" {
type = "string"
}
当我将 digitalocean 令牌指定为环境变量(而不是依赖于 terraform.tfvars 文件)时,我能够在初始化时使用 SSH 密钥设置一个新的 Droplet。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句