- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
谁能指导我如何在我的 VagrantFile 中包含变量?我正在尝试从外部文件将配置注入(inject) Vagrantfile,这样我就可以将配置分发给我的同事,而无需他们直接在 Vagrantfile 上对配置进行硬编码。
我原以为因为它是基于 Ruby 的,所以我可以只包含一个 Ruby 文件,但我得到了一个错误消息:未初始化的常量 MyVars
简化了我的 VagrantFile
# -*- mode: ruby -*-
# vi: set ft=ruby :
require 'vagrant.rb'
include MyVars
Vagrant.configure("2") do |config|
# Web
config.vm.define :joe do |joe|
joe.vm.box = "precise64_4.2.12"
joe.vm.hostname = WEBVMNAME
joe.vm.network :private_network, ip: "192.168.140.141"
# Port Forwarding
joe.vm.network :forwarded_port, guest: 22, host: 2201
joe.vm.network :forwarded_port, guest: 80, host: 8080
# Bootstrap Bash Script
joe.vm.provision :shell, :path => "bootstrap.sh"
end
end
而 vagrant.rb 包含
module MyVars
WEBVMNAME = "rex"
end
请注意,我也是 Ruby 的新手,所以我也不确定它是否只是语法错误?
编辑:我正在使用的更新代码
最佳答案
我使用 https://puphpet.com 的方法,我在 Vagrantfile 的同一目录中创建了一个文件 config.yaml 并且...
在我的 Vagrantfile 中:
# encoding: utf-8
# -*- mode: ruby -*-
# vi: set ft=ruby :
require 'yaml'
current_dir = File.dirname(File.expand_path(__FILE__))
configs = YAML.load_file("#{current_dir}/config.yaml")
vagrant_config = configs['configs'][configs['configs']['use']]
Vagrant.configure('2') do |config|
config.vm.network 'public_network', ip: vagrant_config['public_ip']
...
在我的 config.yaml 中:
---
configs:
use: 'home'
office:
public_ip: '192.168.2.117'
<more variables>...
home:
public_ip: '192.168.1.117'
<more variables>...
关于ruby - 如何在我的 VagrantFile 中包含变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16708917/
Vagrant Multi-Machine 功能看起来很酷,但是困扰我的一件事(或者不是立即明显的)是,似乎没有一种好的方法可以在“父”Vagrantfile 和“ child ”Vagrantfil
我正在尝试使用厨房来自动测试厨师食谱和 Vagrant 环境,但是当我运行厨房时,它会忽略存在的 Vagrantfile 并根据 .kitchen.yml 文件执行所有操作。我想知道是否有人知道告诉厨
我用了packer创建一个 vagrant我正在运行和包装的车间的盒子 vagrantfile通过 Vagrant 后处理器中的 vagrantfile_template 指令在框中输入,如下所示:
如果我在 Vagrantfile 的适当位置添加类似这样的内容: vm.provision "shell", path: "my_node.sh", env: {"MY_VARIABLE"=>ENV[
我有一个通过 Vagrant 实例化的非常旧的 VM。我有我所有的开发堆栈。配置是这样的: config.vm.box = "ubuntu/trusty64" config.vm.networ
我想在运行 vagrant up 时在屏幕上显示一些文本(或 vagrant provision 等)当且仅当 正在配置。 (对于 vagrant up 它只在第一次运行,或者如果特别强制使用 --p
我的 Vagrant 文件中设置了以下规定。 config.vm.provision :shell, :path => "provision/bootstrap.sh" config.vm.pro
我正在尝试调整我的 Vagrantfile,因此如果它丢失,它会自动在项目根目录中创建一个文件夹。创建文件夹没问题,但我无法找到创建该文件夹的位置。 我发现此信息可在 Vagrant::Environ
我有一个用于 lucid32 盒子的特定 Vagrantfile,它安装了一些非常标准的包(PHP/MySQL/Apache),进行一些特定的端口转发等等,我设置它,从 git checkout 一个
我对 Vagrantfile 进行了更改(添加了 config.vm.share_folder 、 config.vm.customize 行),现在我希望它们显示在盒子上。我需要运行吗 vagran
我想直接在 vagrantfile 中指定每个虚拟机默认使用哪个提供程序。 例如,给定这个 vagrantfile: # Vagrantfile [...] config.vm.define 'dev
我们有多个项目,每个项目都将使用 Vagrant 来管理其开发环境。我们很高兴使用 Chef 进行配置,一切都运行良好。但是,我们发现我们的 Vagrantfiles 之间有很多剪切和粘贴的内容。我们
我不确定是否应该使用 Puppet 来实现此目的。我通过provision.sh更新并安装。 我的 Vagrant 文件 Vagrant.configure("2") do |config| co
当我查看 Vagrant 文档时 https://www.vagrantup.com/docs/networking/forwarded_ports.html它给出了一个这样的例子: Vagrant.
根据文档,您可以解决运行多个环境以重现您的产品的需求(例如一台数据库机器、一台网络机器等): Vagrant.configure("2") do |config| config.vm.define
我已经设置了一个带有两个虚拟机的虚拟机 a) Ubuntu b) Windows 10。我从头开始为这些虚拟机中的每一个创建了 vagrant box。每个 vagrant box 都单独运行良好。但
我使用的是 JHipster 的 DevBox,它是一个 XUbuntu Vagrant box。 我想在设置盒子的时候改变键盘布局,让它在登录页面也有效,不需要重启,所以用户可以在第一次启动虚拟机后
我希望能够更改我的人偶 list 的行为,具体取决于它们运行的位置。目前,我正在使用这个 hack 来导出 vagrant provider(通过 facter): Vagrant.configu
我对用于配置 Vagrant 的 ruby 语法感到困惑。特别是对于这种结构。这是一个赋值、一个方法调用,还是其他什么?是纯 ruby 还是 vagrant 特定方言? config.vm.n
谁能指导我如何在我的 VagrantFile 中包含变量?我正在尝试从外部文件将配置注入(inject) Vagrantfile,这样我就可以将配置分发给我的同事,而无需他们直接在 Vagrantfi
我是一名优秀的程序员,十分优秀!