包含来自 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 提供不同的环境数据对于大多数项目来说非常实用。
我们想对几个人和几个项目使用标准的 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 提供不同的环境数据对于大多数项目来说非常实用。