0

我试图分发一个打包的基础盒,我想使用我现有的一个全球开发人员可以通过 pem 文件访问的服务器。

我知道 vagrant cloud 但在这种情况下这不是一个选择。

看起来打包的 curl 命令确实支持scp,但由于某种原因,它不尊重我的值,~/.ssh/config并且在运行 vagrant up 时它不提供身份文件和用户名。

我可以确认以下命令确实有效。

/opt/vagrant/embedded/bin/curl --verbose \
  "scp://myurl.com:/path/to/base.box" --insecure \
  --key ~/.ssh/my-key.pem --user admin: --output test.box

我如何将所需的选项传递给base_urlcurl 或使打包版本尊重我的 ssh 配置文件?

这是我在我使用的配置块vagrantfile

  config.vm.define :devbox, primary: true do |devbox|
    devbox.vm.box_download_insecure = true
    devbox.vm.box = "base-box"
    devbox.vm.box_url = "scp://mydomain.com:/path/to/base.box"
  end

任何指导将不胜感激,到目前为止,我已经浪费了大约 10 个小时。

4

1 回答 1

0

在 vagrant github 项目上提交问题后: https ://github.com/hashicorp/vagrant/issues/11546

他们已做出回应并发布了版本更新,2.2.9允许您指定其他盒子下载选项。

所需的键在下面的示例中,但您可以将任何 curl 参数作为键并将其值作为值传递。

config.vm.box_url = "scp://example.com:/path/to/your/box.box"
config.vm.box_download_options = {
  key: "~/.ssh/secretkey.pem",
  user: "username:" # Important, keep the : for no password
}

在用户名之后添加很重要,:因为这表示没有密码,因为我们使用的是私钥身份验证。

希望这对其他人有帮助。

于 2020-05-14T19:20:08.830 回答