there's been a lot of churn around this code, so i figure it was worth
trying to clean it up.
- the methods were doing a lot, so make them into template methods with
one helper per step
- spread out /etc/hosts regexp into a couple of helper variables for
clarity
- remove handling for broken hostname implementations (like basing all
of the checks on name.split('.')[0]), since it seems reasonable to
remove code dedicated only to handling broken boxes
- DRY up the shared code between debian/ubuntu implementations, which
clarifies the differences as well
- add unit tests around the behavior; this will help us in the future
to separate flaws in our understanding from flaws in implementation
- includes a new DummyCommunicator in tests which should be useful in
supporting additional unit testing of this kind
- manually tested this on squeeze, wheezy, precise, quantal, raring,
and saucy successfully.
handles the issue in #2333
The default shell is "bash -l" which does not get installed by default
on FreeBSD. This change allows the plugin to override the default shell
and use a known installed shell (sh).
The issue was that the old method simply didn't work. When the hosts
file should look like:
127.0.1.1 host.fqdn.com host
It looked like:
127.0.1.1 host.fqdn.com host old.fqdn.com old
Or this if the user didn't set a fqdn
127.0.1.1 host host old.fqdn.com old
This patch fixes that.
- It's not clear whether it's possible to mount individual shares
using 'mount -t vmhgfs', as the vagrant-vmware-fusion provider now does
for Linux guests. Any mount from '.host', even if not a valid share
name, succeeds and mounts _all_ shares in their respective directories
at the root of the mountpoint. Instead, we symlink each directory from
its place in '/Volumes/VMware Shared Folders'
bunch of retires rather than a long sleep.
Add DarwinNFSMountFailed error. This might move be more appropriate at
the plugin level.
Integrate some of tvsutton's work in configure_networks to get the
implementation closer to working in both fusion and virtualbox.
Add shell_expand_guest_path capability (also copied from linux)
- There's a lengthy sleep in there, probably could use a back-off loop
- en1 seems totally worthless on vbox, I skip it and just use the en2 it creates.
On Debian and Ubuntu guests, when the new hostname of the guest box is
set, the DHCP client (isc-dhcp-client) won't renew its DHCP lease with
the new hostname. Executing "ifdown -a; ifup -a" to reinitialize all auto
interfaces fixes this issue.
Furthermore, as vagrant will now actually wait until a DHCP lease is
acquired, it is guaranteed that the the correct domainname is set from
DHCP before calling other provisioners like puppet, that rely on it.
This fixes puppet/facter sometimes failing to find the fqdn fact on an
LXC guest when the DHCP server is responding too slow.
- Tested on mountainlion/virtualbox
- virtualbox shared folders will not work (no vboxvsf support)
- Must use at least 2GB of RAM or the os will refuse to boot(mountainlion requirement)
To begin, create a mountainlion vm in virtualbox. You will need to install from scratch most likely, and assign at least 2GB of ram for it to install.
Create 2 network interfaces, the first one a NAT interface, second a hostonly interface.
'vagrant package' the VM.
In your vagrant file, be sure that the synced folder is disabled:
config.vm.synced_folder "vagrant", "/vagrant", disabled: true
Symtom: The group ID for groups that are not backed by a user account (e.g. admin) cannot be obtained from the id command.
Consequence: The shared folder group can only be set to a group where by a user account of the same name exists.
Solution: Correcting the method to define the group ID by looking up the group ID via the group name.
When dealing with lxc containers, '/proc/version' will have information
about the host machine kernel that can possibly have information about
an Ubuntu / Debian host, messing up with guest container detection.