Vagrant:如何从私有存储库中的Vagrantfile中运行配置脚本?

时间:2018-10-04 07:26:21

标签: bash shell github vagrant vagrantfile

我在Github上有一个私有存储库,其中包含我想用于Vagrant设置的脚本。由于我的存储库是私有的,因此我需要授予对脚本的访问权限。请告诉我该怎么做。

我尝试使用链接中的令牌授予访问权限,但这会导致此错误:

C:/Program Files (x86)/Vagrant/embedded/mingw64/lib/ruby/2.4.0/tempfile.rb:133:in `initialize': Invalid argument @ rb_sysopen - C:/Users/Stas/AppData/Local/Temp/vagrant-shell20181004-3104-19o2zkk.sh?token=blah-blah-blah-blah-blah-blah (Errno::EINVAL)
    from C:/Program Files (x86)/Vagrant/embedded/mingw64/lib/ruby/2.4.0/tempfile.rb:133:in `open'
    from C:/Program Files (x86)/Vagrant/embedded/mingw64/lib/ruby/2.4.0/tempfile.rb:133:in `block in initialize'
    ...

很明显,Vagrant无法修剪GET参数和文件名。

我的系统:Windows。 我知道this way,但是我需要另一个解决方案。

1 个答案:

答案 0 :(得分:1)

首选解决方案是使用SSH代理转发链接到的解决方案。我们在这里将它与Vagrant一​​起使用,效果很好。

或者,您可以使用a GitHub deploy key为Vagrant授予对您的私有存储库的只读访问权限。您可以将未加密的私钥放在Vagrant目录中,这样它就会显示在/vagrant中。然后,在供应脚本中,将其安装为/root/.ssh/id_rsa。请记住要设置/root/.ssh/root/.ssh/id_rsa的权限,以便组和其他人无法访问它们。之后,git clone应该可以工作。

我注意到使用未加密的私钥是不好的做法,尽管有时使用部署密钥是不可避免的。请特别注意确保未加密的私钥永远不会被推送到GitHub。