【问题标题】:Cannot have file provisioner working with Terraform on DigitalOcean无法让文件配置器在 DigitalOcean 上与 Terraform 一起使用
【发布时间】:2017-04-27 09:44:25
【问题描述】:

我尝试使用 Terraform 创建一个安装了 consul 的 DigitalOcean 节点。

我正在使用以下.tf 文件,但它挂起并且不将 consul .zip 文件复制到液滴上。

几分钟后我收到以下错误消息:

ssh:握手失败:ssh:无法验证,尝试的方法 [无公钥],没有支持的方法

虽然液滴是正确创建的。我可以使用我指定的密钥登录命令行(因此不指定密码)。我猜连接部分可能有问题,但不确定我缺少什么。

有什么想法吗?

variable "do_token" {}

# Configure the DigitalOcean Provider
provider "digitalocean" {
    token = "${var.do_token}"
}

# Create nodes
resource "digitalocean_droplet" "consul" {
    count = "1"
    image = "ubuntu-14-04-x64"
    name = "consul-${count.index+1}"
    region = "lon1"
    size = "1gb"
    ssh_keys = ["7b:51:d3:e3:ae:6e:c6:e2:61:2d:40:56:17:54:fc:e3"]

    connection {
        type = "ssh"
        user = "root"
        agent = true
    }

    provisioner "file" {
        source = "consul_0.7.1_linux_amd64.zip"
        destination = "/tmp/consul_0.7.1_linux_amd64.zip"
    }

    provisioner "remote-exec" {
        inline = [
          "sudo unzip -d /usr/local/bin /tmp/consul_0.7.1_linux_amd64.zip"
        ]
    }
}

【问题讨论】:

  • 我对 DO 不了解,但 ssh_keys = ["7b:51:d3:e3:ae:6e:c6:e2:61:2d:40:56:17:54:fc:e3"] 看起来不像 ssh 密钥。
  • 在资源中,Terraform 允许放置密钥的指纹。这部分工作正常,因为我可以在创建后使用此密钥向液滴发出 ssh。
  • 您是否尝试过在 connection 配置器中显式传递私钥?
  • 当我查看 source 时,它似乎也在寻找要设置的 SSH env var SSH_AUTH_SOCK。你的系统上的设置是否正确?
  • @PaulTyng 似乎在发出 ssh-agent 时导出了 SSH_AUTH_SOCK

标签: ssh digital-ocean terraform


【解决方案1】:

Terraform 要求您 specify the private SSH key 用于与 private_key 的连接您可以创建一个包含私钥路径的新变量,以用于 Terraform 的文件插值功能:

connection {
    type = "ssh"
    user = "root"
    agent = true
    private_key = "${file("${var.private_key_path}")}"
}

【讨论】:

  • 如果代理设置为真 - 它没有。有了你的回答,我知道了password protected keys are not supported. Please decrypt the key prior to use
【解决方案2】:

您面临这个问题,因为您有一个受密码保护的 ssh 密钥。要解决此问题,您应该生成一个没有密码的密钥。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 2020-02-25
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 2019-02-18
    相关资源
    最近更新 更多