如何使用 shell 提供程序上传配置文件?

如何使用 shell 提供程序上传配置文件?

除了在我的客户机上安装 emacs 之类的应用程序外,我还想上传一些配置文件(例如,为 Clojure 开发配置 emacs)。遗憾的是,Vagrant 的文档没有提供任何有关如何执行此操作的线索。我想我必须将配置文件放入共享文件夹,然后将它们从客户机上的共享文件夹复制到所需的位置?

答案1

您可以使用“文件”配置程序。它似乎没有记录,但使用起来很简单。例如:

Vagrant.configure('2') do |config|
  # ...

  config.vm.provision :file do |file|
    file.source      = '~/.my.conf'
    file.destination = '/home/vagrant/.my.conf'
  end
end

第一个问题是,它是以 ssh 用户(默认为“vagrant”)身份运行的,没有 sudo,因此您需要对 VM 上的目录具有写权限。一种解决方法是将其复制到临时位置,然后使用普通的 shell 配置程序将其复制/移动到正确的位置。

第二个问题是目标路径没有正确扩展。因此使用~$HOME很可能不会按预期工作。(另一方面,源路径已扩展。

答案2

是的,您应该“将配置文件放入共享文件夹,然后将其从客户机上的共享文件夹复制到所需位置”。

相关内容