包含来自 URL 的 Vagrantfile 或 Puppet 脚本

Include Vagrantfile or Puppet script from URL

我们想对几个人和几个项目使用标准的 Vagrant 配置。我们现在在 Vagrant 配置中经历了很多更新,这使得很难让每个项目都保持最新。

完美的情况是使用仅包含远程文件的 Vagrantfile(例如 Github 上的 URL,文件可以是 public)。对于 Vagrantfile 或 puppet 清单文件,这可能吗?

Vagrantfile 是一个 Ruby 文件。您可以编写实际的 Ruby 代码,它会被执行。

输入类似

的内容
require "open-uri"

File.open('puppet_script.pp', 'w') do |f|
  f.write open("http://here.goes.url/to/the/script.pp").read 
end

之前 Vagrant.configure(2) do |config|

P.S。我怀疑你只想在配置即将发生时下载文件,所以看看 this question

这是一个解决方案,但我不喜欢@Alik 提供的方式。

我建议直接使用 Vagrantfile 和傀儡代码将所有代码签入 github(或其他人)。

对于您的开发人员,您需要让他们 运行 git pull 获得更新。管理代码更改会更容易

对于 puppet 清单文件,您不应经常更改它们。使用 hierarchy yaml 文件为 vagrant/dev/stag/prod 提供不同的环境数据对于大多数项目来说非常实用。