Allow use of local box for base box.

config.vm.box refers to the box that is used as the starting
point for the box being brought up. That later box gets its
own name and can be packaged.

By getting rid of the vm.box assignment it becomes possible to
use a box that has been added to the local vagrant set up as
the base.

The Vagrantfile has been adjusted so that if conf['box_name']
is set it wins over conf['box_url'] with a fallback to box_url
and then a fallback to the internally defined precise box.

config.yaml.sample comments updated accordingly.

Also took advantage of this moment to moan about Vagrant's
handling of network interface identifiers (in the config sample).
This commit is contained in:
Chris Dent 2014-05-29 10:14:04 +01:00
parent 3a04738765
commit aa556b8a56
2 changed files with 21 additions and 10 deletions

22
Vagrantfile vendored
View File

@ -10,7 +10,6 @@ require 'yaml'
conf = YAML.load(File.open('config.yaml'))
def configure_vm(name, vm, conf)
vm.box = name
vm.hostname = conf["#{name}_hostname"] or name
# we do an L2 bridge directly onto the physical network, which means
@ -66,18 +65,23 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
configure_vm("compute1", compute1.vm, conf)
end
end
# The url from where the 'config.vm.box' box will be fetched if it
# doesn't already exist on the user's system.
# You can either name a Vagrant box you have locally added and use
# that as a starting point, or give a url from where the 'config.vm.box'
# box will be fetched.
#
# We start with the Ubuntu 12.04 upstream image, which will work. However
# building from this ever time is slow. So the recommended model is build
# building from this every time is slow. So the recommended model is build
# the manager once, and recapture that. You do have to nuke a bunch of
# network config information to make that capture work (documentation TBD).
config.vm.box_url = 'https://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-amd64-vagrant-disk1.box'
# this lets you use a locally accessible version faster
if conf['box_url']
config.vm.box_url = conf['box_url']
if conf['box_name']
config.vm.box = conf['box_name']
else
config.vm.box_url = 'https://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-amd64-vagrant-disk1.box'
# this lets you use a locally accessible version faster
if conf['box_url']
config.vm.box_url = conf['box_url']
end
end
# Create a forwarded port mapping which allows access to a specific port

View File

@ -8,8 +8,15 @@ stack_sshkey: >
setup_mode: devstack
# what interface on the host should be used for a bridge
# will often be eth0, but vagrant needs to know for sure
# This needs to be the full string descriptor of the interface.
# On some systems this can be something annoying like
# 'en1: Wi-Fi (Airport)'. Vagrant will not use this setting
# unless you get it exactly right.
bridge_int: eth1
# A non upstream url for the base box, used to speed things up
# A non upstream for the base box, used to speed things up.
# Choose one of box_name (for a locally added box) or box_url
# for the url of a nearby box.
#box_name: 'my.favorite'
#box_url: http://gallifrey/vagrant/devstack-2014-02-19.box
# Local devstack options