Vagrant 在流浪设置中呈现erb

Vagrant 在流浪设置中呈现erb,vagrant,Vagrant,作为配置VM的一部分,我需要在配置时创建一个配置文件。在我的主机上,我能够将变量传递到erb文件: erb x=1 y=2 some_conf.erb 是否可以在主机上呈现erb文件,然后通过管道将结果传递给来宾 如果我将erb命令放在config.vm.provision“shell”中,则该命令将在来宾计算机(不具有Ruby)上运行,例如 #此命令在来宾服务器上运行 #我希望erb在主机上运行到哪里 config.vm.provision“shell”,内联:Vagrant文件实际上是一个

作为配置VM的一部分,我需要在配置时创建一个配置文件。在我的主机上,我能够将变量传递到
erb
文件:

erb x=1 y=2 some_conf.erb
是否可以在主机上呈现
erb
文件,然后通过管道将结果传递给来宾

如果我将
erb
命令放在
config.vm.provision“shell”
中,则该命令将在来宾计算机(不具有Ruby)上运行,例如

#此命令在来宾服务器上运行
#我希望erb在主机上运行到哪里

config.vm.provision“shell”,内联:Vagrant文件实际上是一个ruby脚本,因此可以使用ruby erb模板引擎。确保创建模板所需的类

# -*- mode: ruby -*-
# vi: set ft=ruby :
require 'erb'

Vagrant.configure("2") do |config|

    template = ERB.new File.read("template/some_conf.erb")
    p template.result(binding)
end
如果您不想设置新类等,并且安装了ruby2.2,您可以直接从CLI调用erb,它将在您的主机而不是来宾机上运行

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

    exec ('erb x=1 y=2 template/some_conf.erb > some_conf')

end
在主机上生成
some_conf
文件后,可以使用将此文件推送到主机上

config.vm.provision "file", source: "some_conf", destination: "/somewhere/on/the/guest/some_conf"

Vagrant文件实际上是一个ruby脚本,因此可以使用ruby erb模板引擎。确保创建模板所需的类

# -*- mode: ruby -*-
# vi: set ft=ruby :
require 'erb'

Vagrant.configure("2") do |config|

    template = ERB.new File.read("template/some_conf.erb")
    p template.result(binding)
end
如果您不想设置新类等,并且安装了ruby2.2,您可以直接从CLI调用erb,它将在您的主机而不是来宾机上运行

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

    exec ('erb x=1 y=2 template/some_conf.erb > some_conf')

end
在主机上生成
some_conf
文件后,可以使用将此文件推送到主机上

config.vm.provision "file", source: "some_conf", destination: "/somewhere/on/the/guest/some_conf"

使用第一个示例,如何将输出通过管道传输到来宾上的文件?您可以使用vagrant file Provisionier,添加示例使用第一个示例,如何将输出通过管道传输到来宾上的文件?您可以使用vagrant file Provisionier,添加示例