Coder Social home page Coder Social logo

vagrant-vbguest's People

Contributors

apeabody avatar bstopp avatar carlosefr avatar cjex avatar dcarley avatar fnordfish avatar ghoneycutt avatar glensc avatar jaredg avatar jerr0328 avatar jimmycuadra avatar m03 avatar mmckinst avatar morac2 avatar nathanrsmith avatar neerolyte avatar nemo84 avatar omenlabs avatar pedrofurtado avatar robnagler avatar rodrigobdz avatar scalp42 avatar schnwalter avatar shkm avatar sichapman avatar thumperward avatar tmatilai avatar vdloo avatar vpereira avatar vstone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vagrant-vbguest's Issues

Failure on first run

Hello!

When trying to do a vagrant up with no VM, I get the following error. At the second time, it runs successfully.

$ vagrant up
[default] Box precise64 was not found. Fetching box from specified URL...
[vagrant] Downloading with Vagrant::Downloaders::HTTP...
[vagrant] Downloading box: http://files.vagrantup.com/precise64.box
[vagrant] Extracting box...
[vagrant] Verifying box...
[vagrant] Cleaning up downloaded box...
[default] Importing base box 'precise64'...
[default] The guest additions on this VM do not match the install version of
VirtualBox! This may cause things such as forwarded ports, shared
folders, and more to not work properly. If any of those things fail on
this machine, please update the guest additions and repackage the
box.

Guest Additions Version: 4.2.0
VirtualBox Version: 4.2.6
[default] Matching MAC address for NAT networking...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
VM must be created before running this command. Run `vagrant up` first.

My Vagrantfile is as bare as it gets:

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

Vagrant::Config.run do |config|
  config.vm.box = "precise64"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"
end

machine.rb:99:in `initialize': undefined method `ui' for true:TrueClass (NoMethodError)

On a Mac (10.8.3), I have Vagrant 1.2.0, ruby 1.8.7, chef 11.4.0, and Virtual Box 4.2.12.
I created a base Virtual Box VM following the instructions here:
http://docs-v1.vagrantup.com/v1/docs/base_boxes.html
But when I try to package the box, I get:

~/VirtualBoxVMs $ vagrant package --base ubuntu12-5
/Applications/Vagrant/embedded/gems/gems/vagrant-1.2.0/lib/vagrant/machine.rb:99:in initialize': undefined methodui' for true:TrueClass (NoMethodError)
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.0/plugins/commands/package/command.rb:55:in new' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.0/plugins/commands/package/command.rb:55:inpackage_base'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.0/plugins/commands/package/command.rb:38:in execute' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.0/lib/vagrant/cli.rb:46:inexecute'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.0/lib/vagrant/environment.rb:458:in cli' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.0/bin/vagrant:84:in<top (required)>'
from /Applications/Vagrant/bin/../embedded/gems/bin/vagrant:23:in load' from /Applications/Vagrant/bin/../embedded/gems/bin/vagrant:23:in

'

Cache GuestAdditions file when downloaded

Add optional caching of downloaded (not a local) iso file into a sub directory of "vagrant home"

  • add configs and command arguments to turn caching on/off
  • add command to list cached files
  • add command to clean manually cache

undefined method `vm_id' for VagrantVbguest::Command:Class

When doing vagrant vbguest on a box, the Virtualbox tools update fails with:

/home/dbxbsc/.vagrant.d/gems/gems/vagrant-vbguest-0.8.0/lib/vagrant-vbguest/rebootable.rb:13:in rebooted?': undefined methodvm_id' for VagrantVbguest::Command:Class (NoMethodError)
from /home/dbxbsc/.vagrant.d/gems/gems/vagrant-vbguest-0.8.0/lib/vagrant-vbguest/rebootable.rb:17:in reboot?' from /home/dbxbsc/.vagrant.d/gems/gems/vagrant-vbguest-0.8.0/lib/vagrant-vbguest/vagrant_compat/vagrant_1_1/rebootable.rb:23:inreboot!'
from /home/dbxbsc/.vagrant.d/gems/gems/vagrant-vbguest-0.8.0/lib/vagrant-vbguest/command.rb:82:in execute_on_vm' from /home/dbxbsc/.vagrant.d/gems/gems/vagrant-vbguest-0.8.0/lib/vagrant-vbguest/command.rb:54:inblock in execute'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/plugin/v2/command.rb:182:in block in with_target_vms' from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/plugin/v2/command.rb:180:ineach'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/plugin/v2/command.rb:180:in with_target_vms' from /home/dbxbsc/.vagrant.d/gems/gems/vagrant-vbguest-0.8.0/lib/vagrant-vbguest/command.rb:54:inexecute'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/cli.rb:46:in execute' from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/environment.rb:478:incli'
from /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/bin/vagrant:84:in <top (required)>' from /opt/vagrant/bin/../embedded/gems/bin/vagrant:23:inload'
from /opt/vagrant/bin/../embedded/gems/bin/vagrant:23:in `

'

I'm using:

  • vagrant 1.2.7
  • vbguest 0.8.0
  • VirtualBox 4.2.16-86992

Platform based ISO detection

I've had endless trouble with ISO detection on new VB 4.1 installs. VirtualBox::DVD.all.find only works once the Additions ISO has been attached to a VM and gets added to the "virtual media library". There's no longer a way to add an ISO to the library using VBoxManage.

How do you feel about making educated guesses on the ISO path based on the host platform? Say..

@iso_path = if Vagrant::Util::Platform.linux?
    "/usr/share/virtualbox/VBoxGuestAdditions.iso"
elsif Vagrant::Util::Platform.darwin?
    "/Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso"
end

detect unloaded kernel module and reinit

As described in mitchellh/vagrant:27fa9d4 another common GuestAdditions pain is a not loaded guest additions kernel extension which is usually a result of an kernel update.

Instead of reinstalling the extension from ISO, it should be sufficient to run sudo /etc/init.d/vboxadd setup on the guest to get the kernel extension rebuild and initialized.

0.7.0 plugin not working with Vagrant on Windows 7

Loving this plugin, so I instantly regretted upgrading to Vagrant 1.1 when I lost it. Looks like vbguest 0.7.0 is being installed OK by vagrant plugin install vagrant-vbguest, but now I get the following error after vagrant up.

mount: you must specify the filesystem type
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed

mount /tmp/VBoxGuestAdditions.iso -o loop /mnt

I am running vagrant on Windows 7, via cygwin (have ssh package installed and working). I had success running the vbguest plugin with older Vagrant versions, but not Vagrant 1+.

Check network connection before running setup?

Disclaimer

I highly appreciate this plugin and I do NOT blame it for causing this issue (root-cause is a freaking DNS issue) - but I think it should handle connection errors to the outside world more gracefully, because otherwise the VM gets into an undesired state and is not usable anymore.

The issue

I got errors because the packages required for installing the guest additions could not be fetched from the internet.


Fehlschlag beim Holen von http://us.archive.ubuntu.com/ubuntu/pool/main/p/patch/patch_2.6-2ubuntu1_amd64.deb  "us.archive.ubuntu.com" konnte nicht aufgelรถst werden
Fehlschlag beim Holen von http://us.archive.ubuntu.com/ubuntu/pool/main/d/dkms/dkms_2.1.1.2-2ubuntu1_all.deb  "us.archive.ubuntu.com" konnte nicht aufgelรถst werden
Fehlschlag beim Holen von http://us.archive.ubuntu.com/ubuntu/pool/main/f/fakeroot/fakeroot_1.14.4-1ubuntu1_amd64.deb  "us.archive.ubuntu.com" konnte nicht aufgelรถst werden
E: Einige Archive konnten nicht heruntergeladen werden; vielleicht "apt-get update" ausfรผhren oder mit "--fix-missing" probieren?
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.1.12 Guest Additions for Linux..........
VirtualBox Guest Additions installer
Removing installed version 4.0.12 of VirtualBox Guest Additions...

Doesn't sound like a big deal BUT the problem is the last line: the old GAs are being removed and after that the shared folders etc. are broken:

The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` v-root /vagrant

Solution

In my eyes a valid solution would be a simple HTTP-Request before running the setup-routine. I digged into the code but couldn't find a proper place for that.

Would such a check make sense in your eyes? Where is the best place to put it into the source? Any pointers are more than welcome so I can provide a pull request! :)

Restarts guest when not necessarily

I'm having a consistent issue where the plugin routinely reboots the guest when no changes have been made - my log output for vagrant up and vagrant reload always includes:

[default] Attempting graceful shutdown of VM...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Running any VM customizations...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Detected Virtualbox Guest Additions 4.1.24 --- OK.
[default] Restarting VM to apply changes...
[default] Attempting graceful shutdown of VM...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.

After a reboot, the action again recognises that it has the correct version but this time continues to provision normally. I'm on a Windows Vista host and a Ubuntu 12.04 guest. I'm having to use Virtualbox 4.1.24 as the more recent versions are currently causing problems on my machine.

Update on Windows 2008 Guest

Hi,

I'm trying to the auto update working from my host (Windows 7) to the guest which is Windows 2008 but I receive:

ERROR vagrant: Vagrant experienced an error! Details:
ERROR vagrant: #<VagrantVbguest::Installer::NoInstallerFoundError: translation missing: en.vagrant_vbguest.errors.installer.no_install_script_
for_platform>
ERROR vagrant: translation missing: en.vagrant_vbguest.errors.installer.no_install_script_for_platform
ERROR vagrant: C:/Users/gibbonsd/.vagrant.d/gems/gems/vagrant-vbguest-0.8.0/lib/vagrant-vbguest/installer.rb:87:in `guest_version'

Looks like this isn't supported? Would I need to write a custom script?

Thanks

Dan

Old SL6 VMs might be missing kernel-devel from package repos

I just tried to boot an old SL6 VM

$ vagrant vbguest --do install
[vagrant] GuestAdditions seems to be installed (4.1.18) correctly, but not running.
Loaded plugins: security
Setting up Install Process
No package kernel-devel-2.6.32-279.el6.x86_64 available.
Package gcc-4.4.7-3.el6.x86_64 already installed and latest version
Package 1:make-3.81-20.el6.x86_64 already installed and latest version
Package 4:perl-5.10.1-129.el6.x86_64 already installed and latest version
Nothing to do
[...]

This happens because the kernel-devel package for the running kernel version has since been removed from the package repos.

I think the best solution for this is to try to catch the failure, install a current version of the kernel + devel packages, e.g. yum install kernel kernel-devel then reboot and try the guest installation again.

I'll probably send in a pull request at some point but just lodging this in the mean time :)

Guest additions installation fails with malformed URL

Using v0.8 of this plugin (just via the standard vagrant plugin install vagrant-vbguest), I find that when the plugin tries to "download" the guest additions, it goes off and looks in a very odd place:

 vagrant vbguest --do install
GuestAdditions versions on your host (4.2.16) and guest (4.2.10) do not match.
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirror.mel.bkb.net.au
 * extras: mirror.ventraip.net.au
 * updates: mirror.ventraip.net.au
Setting up Install Process
Package kernel-devel-2.6.32-358.el6.x86_64 already installed and latest version
Package gcc-4.4.7-3.el6.x86_64 already installed and latest version
Package 1:make-3.81-20.el6.x86_64 already installed and latest version
Package 4:perl-5.10.1-131.el6_4.x86_64 already installed and latest version
Nothing to do
Downloading VirtualBox Guest Additions ISO from /home/david/.VirtualBox/C:/PROGRA~1/Sun/XVMVIR~1/VBoxGuestAdditions.iso
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

<url> malformed

This is odd because I'm running an Ubuntu 13.04 x86_64 host, CentOS 6.4 x86_64 client (Vagrant 1.2.7, VirtualBox 4.2.16) -- with no Windows system anywhere to be seen. Manually passing in the Linux location against --iso is accepted, however.

Re-installs existing most up-to-date version

xyz@co-data:~/labs/puppet-riak$ rake vagrant:reload
[riak-5.local] Attempting graceful shutdown of VM...
[riak-5.local] Clearing any previously set forwarded ports...
[riak-5.local] Forwarding ports...
[riak-5.local] -- 22 => 2222 (adapter 1)
[riak-5.local] Creating shared folders metadata...
[riak-5.local] Creating hiera shared folders metadata...
[riak-5.local] Clearing any previously set network interfaces...
[riak-5.local] Preparing network interfaces based on configuration...
[riak-5.local] Booting VM...
[riak-5.local] Waiting for VM to boot. This can take a few minutes.
[riak-5.local] VM booted and ready for use!
[riak-5.local] Installing Virtualbox Guest Additions 4.1.20 - guest's version is 4.1.16
[riak-5.local] Copy iso file /usr/share/virtualbox/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
[riak-5.local] Copy installer file setup_debian.sh into the box /tmp/install_vbguest.sh
stdin: is not a tty
stdin: is not a tty
Reading package lists...
Building dependency tree...
Reading state information...
dkms is already the newest version.
linux-headers-3.2.0-23-generic is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 76 not upgraded.
mount: warning: /mnt seems to be mounted read-only.
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.1.20 Guest Additions for Linux.........
VirtualBox Guest Additions installer
Removing installed version 4.1.20 of VirtualBox Guest Additions...
Removing existing VirtualBox DKMS kernel modules ...done.
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules ...done.
Doing non-kernel setup of the Guest Additions ...done.
Starting the VirtualBox Guest Additions ...done.
Installing the Window System drivers ...fail!
(Could not find the X.Org or XFree86 Window System.)

As you can see, the Guest Additions itself specifies that it's up-to-date.

Steps to repro:

  1. Start machine, let vbguest do its job.
  2. vagrant reload

Tested on precise64.

4.1.8 to 4.2.6

So I have a box which I build with 4.1.8 guest additions through bento. When I updated my Virtualbox to 4.2.6 on my system (MacOS X), vbguest tried to update the guest additions inside the box but apparently it failed.

There are no error messages in the log (on the screen) โ€”ย it just complained about a missing X window system which I think is fine, since these VMs are servers and not desktops.

Reason why I think this is vbguest related is, is that when I disable the update, the box comes up fine. Before I got errors, such as mount.vboxfs was missing (or there was no device). Which all seemed like the guest additions inside the box are hosed.

I am using:

  • ruby 1.8
  • vagrant 1.0.5 (installed through gem install)
  • vagrant-vbguest 0.4.0 (installed through gem install)
  • virtualbox 4.2.6

Do you think it's worth it investigating this since 0.5.x is already out?

tools fail to install due to missing packages, bricking the VM

Currently if you install the vagrant-vbguest gem and try to "vagrant up" a Vagrantfile that uses a basebox that has the dependencies for the VirtualBox tools removed (to make it smaller) vbguest uninstalls the VirtualBox tools and fails to reinstall them, which essentially bricks the VM (yes I know it can be repaired manually).

Here's a sample Vagrantfile:

Vagrant::Config.run do |config|
  config.vm.box = "sl6-64-lyte"
  config.vm.box_url = "http://lyte.id.au/vagrant/sl6-64-lyte.box"
end

Without the vbguest gem, this Vagrantfile works (with a tools version missmatch warning, but vboxfs still operates correctly), however with vbguest it fails like so:

$ vagrant up
[default] Importing base box 'sl6-64-lyte'...
[default] The guest additions on this VM do not match the install version of
VirtualBox! This may cause things such as forwarded ports, shared
folders, and more to not work properly. If any of those things fail on
this machine, please update the guest additions and repackage the
box.

Guest Additions Version: 4.1.12
VirtualBox Version: 4.1.18
[default] Matching MAC address for NAT networking...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Running any VM customizations...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] GuestAdditions versions on your host (4.1.18) and guest (4.1.12) do not match.
[default] The guest's platform is currently not supported, will try generic Linux method...
[default] Downloading VirtualBox Guest Additions ISO with Vagrant::Downloaders::HTTP...
[default] Downloading box: http://download.virtualbox.org/virtualbox/4.1.18/VBoxGuestAdditions_4.1.18.iso
[default] Downloading box: http://dlc.sun.com.edgesuite.net/virtualbox/4.1.18/VBoxGuestAdditions_4.1.18.iso
[default] Copy iso file /home/foo/.vagrant.d/tmp/vbguest1363228663 into the box /tmp/VBoxGuestAdditions.iso
[default] Installing Virtualbox Guest Additions 4.1.18 - guest version is 4.1.12
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.1.18 Guest Additions for Linux.........
VirtualBox Guest Additions installer
Removing installed version 4.1.12 of VirtualBox Guest Additions...
Removing existing VirtualBox DKMS kernel modules[  OK  ]
Removing existing VirtualBox non-DKMS kernel modules[  OK  ]
Building the VirtualBox Guest Additions kernel modules
The make utility was not found. If the following module compilation fails then
this could be the reason and you should try installing it.

The gcc utility was not found. If the following module compilation fails then
this could be the reason and you should try installing it.

The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.
The missing package can be probably installed with
yum install kernel-devel-2.6.32-279.el6.x86_64

Building the main Guest Additions module[FAILED]
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions[  OK  ]
Installing the Window System drivers[FAILED]
(Could not find the X.Org or XFree86 Window System.)
[default] Cleaning up downloaded VirtualBox Guest Additions ISO...
[default] Restarting VM to apply changes...
[default] Attempting graceful shutdown of VM...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Mounting shared folders...
[default] -- v-root: /vagrant
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` v-root /vagrant

I'd expect vbguest to at the very least check for and acknowledge missing deps, but preferably figure out how to install them when feasible.

Installing newer additions causes vagrant up to crash

When I boot up a new node with older additions, vagrant-vbguest will install the new additions. However, further on in the boot, vagrant will crash with this error:

The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` v-root /vagrant

The Vagrant trouble shooting guide claims this happens when

This is usually a result of the guestโ€™s package manager upgrading the kernel without rebuilding the VirtualBox Guest Additions.

Is there anyway to properly rebuild the additions to fix this issue?

My setup

  • Vagrant 1.0.5
  • VirtualBox 4.2.2

Full output of vagrant up

[basebox] $ vagrant reload
[default] Attempting graceful shutdown of VM...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Installing Virtualbox Guest Additions 4.2.2 - guest's version is 4.1.22
[default] redhat is currently not supported, will try generic Linux method...
[default] Copy iso file /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
[default] Copy installer file setup_linux.sh into the box /tmp/install_vbguest.sh
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.2.2 Guest Additions for Linux..........
VirtualBox Guest Additions installer
Removing installed version 4.1.22 of VirtualBox Guest Additions...
Removing existing VirtualBox DKMS kernel modules[  OK  ]
Removing existing VirtualBox non-DKMS kernel modules[  OK  ]
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module[  OK  ]
Building the shared folder support module[  OK  ]
Not building the VirtualBox advanced graphics driver as this Linux version is
too old to use it.
Doing non-kernel setup of the Guest Additions[  OK  ]
You should restart your guest to make sure the new modules are actually used

Installing the Window System drivers[FAILED]
(Could not find the X.Org or XFree86 Window System.)

[default] Mounting shared folders...
[default] -- v-root: /vagrant
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` v-root /vagrant

get rid of virtualbox gem dependency

At the moment, vagrant-vbguest needs the virtualbox gem for it's autodetection run to search the "media manager" for a guest additions iso file.
We should s exec VBoxManage commands like vagrant does. to get rid of an dependency.

Improve README

For those who aren't familiar with VBox lingo, would it be possible to add more of an explanation to the README? It would also be helpful to understand how this compares to tools that would appear to have similar purposes, such as veewee. I'm unsure what the use-case is for your tool (although I'm sure this is just my ignorance!)

Cheers,

v0.6

  • Drop usage of shell script for installation process in favor of ruby installer classes
  • Enable the user to use a custom installer
  • Try get better in detecting the Guest Addition version (on the guest)
  • stabilize rebooting on failed/incomplete installation (introduced in 0.5)

Probably the last Version to support vagrant 1.0

Force reboot

Hi all,
i'm using the Official Ubuntu Cloud Server Vagrant image (found here : http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-vagrant-amd64-disk1.box) but this image contain an old version of the VBGuestAdditions from the ubuntu repo..
I awant to keep the lastest version from my dev box so i started by removing unnecessary packages and writing my own installer ..overwriting the execute_installer method

class CloudUbuntuVagrant < VagrantVbguest::Installers::Ubuntu

  def execute_installer(opts=nil, &block)
    installer = File.join(mount_point, 'VBoxLinuxAdditions.run')
    yield_installation_waring(installer)
    vm.channel.sudo("apt-get -y -q purge virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11", opts, &block)
    vm.channel.sudo("#{installer} --nox11", opts, &block)
  end

end

After that vagrant-vbguest run correctly the update but hangs and don't reboot the vm even if i specified _config.vbguest.auto_reboot = true_ in my Vagrantfile

Installing the Window System drivers ...fail!
(Could not find the X.Org or XFree86 Window System.)
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/mnt/VBoxLinuxAdditions.run --nox11

How can i force the vm to reboot ?

vagrant plugin install installs old version

I have the newest version of vagrant (1.1.4) and when I used the vagrant plugin install vagrant-vbguest command, it, installs version 0.6.4, and throws an error that it can't be loaded:

Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
Installed the plugin 'vagrant-vbguest (0.6.4)'!
$ vagrant vbguest
Failed to load the "vagrant-vbguest" plugin. View logs for more details.

Usage: vagrant [-v] [-h] command [<args>]

I've also tried to install with version 0.7.0 but to no avail:

$ vagrant plugin install vagrant-vbguest --plugin-version 0.7.0
Installing the 'vagrant-vbguest --version '0.7.0'' plugin. This can take a few minutes...
The plugin 'vagrant-vbguest' could not be found in local or remote
repositories. Please check the name of the plugin and try again.

Upgrade of guest additions fails due to version installed from different source

I'm having trouble getting the upgrade of guest additions to complete.

Environment details

  • Host: Mac OS X 10.8.3
  • Guest: Ubuntu 12.10
  • Vagrant version: 1.2.1
  • vagrant-vbguest: 0.8.0

Vagrantfile

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

  config.omnibus.chef_version = :latest

  config.vm.define :dev do |dev|
    dev.vm.box = "official-ubuntu-12.10"
    dev.vm.box_url = "http://box.url"
    dev.vm.hostname = $dev_vmname
    dev.vm.network :private_network, ip: $ip
    dev.vm.synced_folder "../proj", "/var/www/" + $dev_vmname, :nfs => true

    dev.vm.provider :virtualbox do |vb|
      vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
      # these are defaults, set them anyway to try to fix issue
      dev.vbguest.no_remote = false
      dev.vbguest.no_install = false
      ...
    end #end virtualbox provider
  end
end

Error Output

GuestAdditions versions on your host (4.2.10) and guest (4.1.18) do not match.
stdin: is not a tty
Reading package lists...
Building dependency tree...
Reading state information...
dkms is already the newest version.
dkms set to manually installed.
linux-headers-3.5.0-27-generic is already the newest version.
linux-headers-3.5.0-27-generic set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Copy iso file /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
stdin: is not a tty
mount: warning: /mnt seems to be mounted read-only.
Installing Virtualbox Guest Additions 4.2.10 - guest version is 4.1.18
stdin: is not a tty
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.2.10 Guest Additions for Linux..........
VirtualBox Guest Additions installer
You appear to have a version of the VBoxGuestAdditions software
on your system which was installed from a different source or using a
different type of installer.  If you installed it from a package from your
Linux distribution or if it is a default part of the system then we strongly
recommend that you cancel this installation and remove it properly before
installing this version.  If this is simply an older or a damaged
installation you may safely proceed.

Do you wish to continue anyway? [yes or no]

Cancelling installation.
An error occurred during installation of VirtualBox Guest Additions 4.2.10. Some functionality may not work as intended.
stdin: is not a tty

The installation cancel happens automatically; the interactive script does not offer an opportunity to respond.

Cannot install on CentOS minimal

In short:

The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.
The missing package can be probably installed with
yum install kernel-devel-2.6.32-279.19.1.el6.x86_64

Log trace:

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'CentOS-6.3_x86_64-small'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] -- 5555 => 5555 (adapter 1)
[default] -- 5556 => 5556 (adapter 1)
[default] -- 4567 => 4567 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
GuestAdditions versions on your host (4.2.10) and guest (4.2.6) do not match.
Loaded plugins: fastestmirror, presto
Determining fastest mirrors
 * base: ftp.sunet.se
 * extras: ftp.funet.fi
 * updates: ftp.sunet.se
Setting up Install Process
No package kernel-devel-2.6.32-279.19.1.el6.x86_64 available.
Resolving Dependencies
--> Running transaction check
---> Package gcc.x86_64 0:4.4.7-3.el6 will be installed
--> Processing Dependency: libgomp = 4.4.7-3.el6 for package: gcc-4.4.7-3.el6.x86_64
--> Processing Dependency: cpp = 4.4.7-3.el6 for package: gcc-4.4.7-3.el6.x86_64
--> Processing Dependency: libgcc >= 4.4.7-3.el6 for package: gcc-4.4.7-3.el6.x86_64
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.4.7-3.el6.x86_64
--> Processing Dependency: cloog-ppl >= 0.15 for package: gcc-4.4.7-3.el6.x86_64
--> Processing Dependency: libgomp.so.1()(64bit) for package: gcc-4.4.7-3.el6.x86_64
---> Package make.x86_64 1:3.81-20.el6 will be installed
---> Package perl.x86_64 4:5.10.1-130.el6_4 will be installed
--> Processing Dependency: perl-libs = 4:5.10.1-130.el6_4 for package: 4:perl-5.10.1-130.el6_4.x86_64
--> Processing Dependency: perl-libs for package: 4:perl-5.10.1-130.el6_4.x86_64
--> Processing Dependency: perl(version) for package: 4:perl-5.10.1-130.el6_4.x86_64
--> Processing Dependency: perl(Pod::Simple) for package: 4:perl-5.10.1-130.el6_4.x86_64
--> Processing Dependency: perl(Module::Pluggable) for package: 4:perl-5.10.1-130.el6_4.x86_64
--> Processing Dependency: libperl.so()(64bit) for package: 4:perl-5.10.1-130.el6_4.x86_64
--> Running transaction check
---> Package cloog-ppl.x86_64 0:0.15.7-1.2.el6 will be installed
--> Processing Dependency: libppl_c.so.2()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64
--> Processing Dependency: libppl.so.7()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64
---> Package cpp.x86_64 0:4.4.7-3.el6 will be installed
--> Processing Dependency: libmpfr.so.1()(64bit) for package: cpp-4.4.7-3.el6.x86_64
---> Package glibc-devel.x86_64 0:2.12-1.107.el6 will be installed
--> Processing Dependency: glibc-headers = 2.12-1.107.el6 for package: glibc-devel-2.12-1.107.el6.x86_64
--> Processing Dependency: glibc = 2.12-1.107.el6 for package: glibc-devel-2.12-1.107.el6.x86_64
--> Processing Dependency: glibc-headers for package: glibc-devel-2.12-1.107.el6.x86_64
---> Package libgcc.x86_64 0:4.4.6-4.el6 will be updated
---> Package libgcc.x86_64 0:4.4.7-3.el6 will be an update
---> Package libgomp.x86_64 0:4.4.7-3.el6 will be installed
---> Package perl-Module-Pluggable.x86_64 1:3.90-130.el6_4 will be installed
---> Package perl-Pod-Simple.x86_64 1:3.13-130.el6_4 will be installed
--> Processing Dependency: perl(Pod::Escapes) >= 1.04 for package: 1:perl-Pod-Simple-3.13-130.el6_4.x86_64
---> Package perl-libs.x86_64 4:5.10.1-130.el6_4 will be installed
---> Package perl-version.x86_64 3:0.77-130.el6_4 will be installed
--> Running transaction check
---> Package glibc.x86_64 0:2.12-1.80.el6_3.6 will be updated
--> Processing Dependency: glibc = 2.12-1.80.el6_3.6 for package: glibc-common-2.12-1.80.el6_3.6.x86_64
---> Package glibc.x86_64 0:2.12-1.107.el6 will be an update
---> Package glibc-headers.x86_64 0:2.12-1.107.el6 will be installed
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.12-1.107.el6.x86_64
--> Processing Dependency: kernel-headers for package: glibc-headers-2.12-1.107.el6.x86_64
---> Package mpfr.x86_64 0:2.4.1-6.el6 will be installed
---> Package perl-Pod-Escapes.x86_64 1:1.04-130.el6_4 will be installed
---> Package ppl.x86_64 0:0.10.2-11.el6 will be installed
--> Running transaction check
---> Package glibc-common.x86_64 0:2.12-1.80.el6_3.6 will be updated
---> Package glibc-common.x86_64 0:2.12-1.107.el6 will be an update
---> Package kernel-headers.x86_64 0:2.6.32-358.2.1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                   Arch       Version                 Repository   Size
================================================================================
Installing:
 gcc                       x86_64     4.4.7-3.el6             base         10 M
 make                      x86_64     1:3.81-20.el6           base        389 k
 perl                      x86_64     4:5.10.1-130.el6_4      updates      10 M
Installing for dependencies:
 cloog-ppl                 x86_64     0.15.7-1.2.el6          base         93 k
 cpp                       x86_64     4.4.7-3.el6             base        3.7 M
 glibc-devel               x86_64     2.12-1.107.el6          base        974 k
 glibc-headers             x86_64     2.12-1.107.el6          base        604 k
 kernel-headers            x86_64     2.6.32-358.2.1.el6      updates     2.3 M
 libgomp                   x86_64     4.4.7-3.el6             base        118 k
 mpfr                      x86_64     2.4.1-6.el6             base        157 k
 perl-Module-Pluggable     x86_64     1:3.90-130.el6_4        updates      38 k
 perl-Pod-Escapes          x86_64     1:1.04-130.el6_4        updates      31 k
 perl-Pod-Simple           x86_64     1:3.13-130.el6_4        updates     210 k
 perl-libs                 x86_64     4:5.10.1-130.el6_4      updates     576 k
 perl-version              x86_64     3:0.77-130.el6_4        updates      50 k
 ppl                       x86_64     0.10.2-11.el6           base        1.3 M
Updating for dependencies:
 glibc                     x86_64     2.12-1.107.el6          base        3.8 M
 glibc-common              x86_64     2.12-1.107.el6          base         14 M
 libgcc                    x86_64     4.4.7-3.el6             base        100 k

Transaction Summary
================================================================================
Install      16 Package(s)
Upgrade       3 Package(s)

Total download size: 49 M
Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 49 M
--------------------------------------------------------------------------------
Total                                           621 kB/s |  49 MB     01:20
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : libgcc-4.4.7-3.el6.x86_64                                   1/22
  Updating   : glibc-common-2.12-1.107.el6.x86_64                          2/22
  Updating   : glibc-2.12-1.107.el6.x86_64                                 3/22
  Installing : mpfr-2.4.1-6.el6.x86_64                                     4/22
  Installing : cpp-4.4.7-3.el6.x86_64                                      5/22
  Installing : 1:perl-Pod-Escapes-1.04-130.el6_4.x86_64                    6/22
  Installing : 4:perl-libs-5.10.1-130.el6_4.x86_64                         7/22
  Installing : 1:perl-Module-Pluggable-3.90-130.el6_4.x86_64               8/22
  Installing : 1:perl-Pod-Simple-3.13-130.el6_4.x86_64                     9/22
  Installing : 3:perl-version-0.77-130.el6_4.x86_64                       10/22
  Installing : 4:perl-5.10.1-130.el6_4.x86_64                             11/22
  Installing : ppl-0.10.2-11.el6.x86_64                                   12/22
  Installing : cloog-ppl-0.15.7-1.2.el6.x86_64                            13/22
  Installing : libgomp-4.4.7-3.el6.x86_64                                 14/22
  Installing : kernel-headers-2.6.32-358.2.1.el6.x86_64                   15/22
  Installing : glibc-headers-2.12-1.107.el6.x86_64                        16/22
  Installing : glibc-devel-2.12-1.107.el6.x86_64                          17/22
  Installing : gcc-4.4.7-3.el6.x86_64                                     18/22
  Installing : 1:make-3.81-20.el6.x86_64                                  19/22
  Cleanup    : glibc-common-2.12-1.80.el6_3.6.x86_64                      20/22
  Cleanup    : glibc-2.12-1.80.el6_3.6.x86_64                             21/22
  Cleanup    : libgcc-4.4.6-4.el6.x86_64                                  22/22
  Verifying  : cpp-4.4.7-3.el6.x86_64                                      1/22
  Verifying  : kernel-headers-2.6.32-358.2.1.el6.x86_64                    2/22
  Verifying  : mpfr-2.4.1-6.el6.x86_64                                     3/22
  Verifying  : 1:make-3.81-20.el6.x86_64                                   4/22
  Verifying  : cloog-ppl-0.15.7-1.2.el6.x86_64                             5/22
  Verifying  : glibc-2.12-1.107.el6.x86_64                                 6/22
  Verifying  : glibc-devel-2.12-1.107.el6.x86_64                           7/22
  Verifying  : 1:perl-Pod-Simple-3.13-130.el6_4.x86_64                     8/22
  Verifying  : libgcc-4.4.7-3.el6.x86_64                                   9/22
  Verifying  : 4:perl-libs-5.10.1-130.el6_4.x86_64                        10/22
  Verifying  : ppl-0.10.2-11.el6.x86_64                                   11/22
  Verifying  : glibc-headers-2.12-1.107.el6.x86_64                        12/22
  Verifying  : 1:perl-Module-Pluggable-3.90-130.el6_4.x86_64              13/22
  Verifying  : gcc-4.4.7-3.el6.x86_64                                     14/22
  Verifying  : 1:perl-Pod-Escapes-1.04-130.el6_4.x86_64                   15/22
  Verifying  : libgomp-4.4.7-3.el6.x86_64                                 16/22
  Verifying  : glibc-common-2.12-1.107.el6.x86_64                         17/22
  Verifying  : 3:perl-version-0.77-130.el6_4.x86_64                       18/22
  Verifying  : 4:perl-5.10.1-130.el6_4.x86_64                             19/22
  Verifying  : glibc-2.12-1.80.el6_3.6.x86_64                             20/22
  Verifying  : glibc-common-2.12-1.80.el6_3.6.x86_64                      21/22
  Verifying  : libgcc-4.4.6-4.el6.x86_64                                  22/22

Installed:
  gcc.x86_64 0:4.4.7-3.el6                  make.x86_64 1:3.81-20.el6
  perl.x86_64 4:5.10.1-130.el6_4

Dependency Installed:
  cloog-ppl.x86_64 0:0.15.7-1.2.el6
  cpp.x86_64 0:4.4.7-3.el6
  glibc-devel.x86_64 0:2.12-1.107.el6
  glibc-headers.x86_64 0:2.12-1.107.el6
  kernel-headers.x86_64 0:2.6.32-358.2.1.el6
  libgomp.x86_64 0:4.4.7-3.el6
  mpfr.x86_64 0:2.4.1-6.el6
  perl-Module-Pluggable.x86_64 1:3.90-130.el6_4
  perl-Pod-Escapes.x86_64 1:1.04-130.el6_4
  perl-Pod-Simple.x86_64 1:3.13-130.el6_4
  perl-libs.x86_64 4:5.10.1-130.el6_4
  perl-version.x86_64 3:0.77-130.el6_4
  ppl.x86_64 0:0.10.2-11.el6

Dependency Updated:
  glibc.x86_64 0:2.12-1.107.el6       glibc-common.x86_64 0:2.12-1.107.el6
  libgcc.x86_64 0:4.4.7-3.el6

Complete!
Copy iso file C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
Installing Virtualbox Guest Additions 4.2.10 - guest version is 4.2.6
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.2.10 Guest Additions for Linux..........
VirtualBox Guest Additions installer
Removing installed version 4.2.6 of VirtualBox Guest Additions...
Removing existing VirtualBox DKMS kernel modules[  OK  ]
Removing existing VirtualBox non-DKMS kernel modules[  OK  ]
Building the VirtualBox Guest Additions kernel modules
The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.
The missing package can be probably installed with
yum install kernel-devel-2.6.32-279.19.1.el6.x86_64

Building the main Guest Additions module[FAILED]
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions[  OK  ]
Installing the Window System drivers[FAILED]
(Could not find the X.Org or XFree86 Window System.)
Restarting VM to apply changes...
[default] Attempting graceful shutdown of VM...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] -- 5555 => 5555 (adapter 1)
[default] -- 5556 => 5556 (adapter 1)
[default] -- 4567 => 4567 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
GuestAdditions versions on your host (4.2.10) and guest (4.2.6) do not match.
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * base: ftp.sunet.se
 * extras: ftp.funet.fi
 * updates: ftp.sunet.se
Setting up Install Process
No package kernel-devel-2.6.32-279.19.1.el6.x86_64 available.
Package gcc-4.4.7-3.el6.x86_64 already installed and latest version
Package 1:make-3.81-20.el6.x86_64 already installed and latest version
Package 4:perl-5.10.1-130.el6_4.x86_64 already installed and latest version
Nothing to do
Copy iso file C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
Installing Virtualbox Guest Additions 4.2.10 - guest version is 4.2.6
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.2.10 Guest Additions for Linux..........
VirtualBox Guest Additions installer
Removing installed version 4.2.10 of VirtualBox Guest Additions...
Removing existing VirtualBox DKMS kernel modules[  OK  ]
Removing existing VirtualBox non-DKMS kernel modules[  OK  ]
Building the VirtualBox Guest Additions kernel modules
The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.
The missing package can be probably installed with
yum install kernel-devel-2.6.32-279.19.1.el6.x86_64

Building the main Guest Additions module[FAILED]
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions[  OK  ]
Installing the Window System drivers[FAILED]
(Could not find the X.Org or XFree86 Window System.)
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant-root /vagrant

Box: https://1412126a-vagrant.s3.amazonaws.com/CentOS-6.3-x86_64-reallyminimal.box

Failure to install VBox 4.2.12 guest additions when X is not installed

Since upgrading to VirtualBox 4.2.12 (4.2.10 worked fine) I get an error when I bring up my VMs. I've asked about it on the VirtualBox forums but they don't seem to believe it's an issue with VirtualBox.
https://forums.virtualbox.org/viewtopic.php?f=3&t=55166&p=254210#p254210

  • VirtualBox 4.2.12
  • Mac OS X host
  • Ubuntu 12.04 guest
  • Vagrant 1.0.7

Here's the error:
Installing Virtualbox Guest Additions 4.2.12 - guest version is 4.2.10
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.2.12 Guest Additions for Linux............
VirtualBox Guest Additions installer
Removing installed version 4.2.10 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox DKMS kernel modules ...done.
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules ...done.
Doing non-kernel setup of the Guest Additions ...done.
You should restart your guest to make sure the new modules are actually used

Installing the Window System drivers ...fail!
(Could not find the X.Org or XFree86 Window System.)
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/mnt/VBoxLinuxAdditions.run --nox11

vagrant: vbguest command not available

I try to use vagrant-vbguest because it will hopefully solve some of my guest additions out of date issues :)

I use vagrant 1.0.3 on a windows host (installed from .msi) so plugin autoloading should still work. I installed vagrant-vbguest from my git-bash with "vagrant gem install", "vagrant gem list" shows that the plugin (0.3.3) is installed. And i have the plugin files in ~/.vagrant.d\gems\gems\vagrant-vbguest-0.3.3

When i try "vagrant help" on my git-bash, no vbguest is there. I'm not certain if this is a vagrant-vbguest issue or a general vagrant plugin issue. I'll post here first ;)

Regards from Grimma (Germany)

README: Document when the check/update is run

Hi,

when does the plugin check the installed version and updates it? During vagrant up or vagrant start? How do I know that it did run?

I'd mention in the README that vagrant up does run it and that the user can see st. like this in the output:

...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Installing Virtualbox Guest Additions 4.1.10 - guest's version is 4.1.0

Thx for this great tool!

ISO detection under Ubuntu 12.10

Under Ubuntu VirtualBox seems to be caching the ISOs under

$HOME/.VirtualBox/VBoxGuestAdditions_%version%.iso

not under /usr/share where vbguest is currently looking, this means vbguest repeatedly downloads the ISO even when it's available.

There's a trivial work around available by putting a snippet like this in $HOME/.vagrant.d/Vagrantfile:

Vagrant::Config.run do |config|
    config.vbguest.iso_path = '/home/%user%/.VirtualBox/VBoxGuestAdditions_%version%.iso'
end

but it'd be nice if vbguest scanned the right location.

Vagrant 1.2 support

I'm getting the following error running against vagrant 1.2.0:
vagrant-vbguest-0.7.1/lib/vagrant-vbguest/installers/linux.rb:16:in distro': undefined methoddistro_dispatch' for #Vagrant::Guest:0x00000100a04410 (NoMethodError)

Auto-update should be disabled by default?

I'm sure there is a reason that auto-update is true by default.

My personal preference though would be that auto-update is disabled by default.

Why? Because now that I have the vagrant-vbguest gem installed it is automatically turned on for all my Vagrantfiles, which I don't want for various reasons, e.g. increased startup time for when installing latest guest additions, maybe I don't need / want the latest guest additions, etc.

Still, I would love to be able to update the guest additions with a single entry in the Vagrantfile (running as middleware), or via a simple vagrant vbguest command.

I want it as simple as it is with vagrant-vbguest now, but I want the choice when it happens - without having to modify all my Vagrantfiles.

Does that make sense? :-)

"Unknown configuration section 'vbguest'"

In my Vagrantfile, I currently have the following lines (along with the other Vagrant configuration options):

config.vbguest.iso_path = "http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso"
config.vbguest.auto_reboot = true

When a box is started, I get the following error message:

Warnings:
* Unknown configuration section 'vbguest'. If this section was part of
a Vagrant 1.0.x plugin, note that 1.0.x plugins are incompatible with 1.1+.

I also notice:

[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Forcing shutdown of VM...
[default] Destroying VM and associated drives...

Followed by:

/home/michael/.vagrant.d/gems/gems/vagrant-vbguest-0.7.1/lib/vagrant-vbguest/installers/linux.rb:27:in `match?': undefined local variable or method `communicate' for VagrantVbguest::Installers::Linux:Class (NameError)
    from /home/michael/.vagrant.d/gems/gems/vagrant-vbguest-0.7.1/lib/vagrant-vbguest/installer.rb:42:in `block (2 levels) in detect'
    from /home/michael/.vagrant.d/gems/gems/vagrant-vbguest-0.7.1/lib/vagrant-vbguest/installer.rb:42:in `each'
    from /home/michael/.vagrant.d/gems/gems/vagrant-vbguest-0.7.1/lib/vagrant-vbguest/installer.rb:42:in `detect'
    from /home/michael/.vagrant.d/gems/gems/vagrant-vbguest-0.7.1/lib/vagrant-vbguest/installer.rb:42:in `block in detect'
    from /home/michael/.vagrant.d/gems/gems/vagrant-vbguest-0.7.1/lib/vagrant-vbguest/installer.rb:41:in `each'
    from /home/michael/.vagrant.d/gems/gems/vagrant-vbguest-0.7.1/lib/vagrant-vbguest/installer.rb:41:in `detect'
    from /home/michael/.vagrant.d/gems/gems/vagrant-vbguest-0.7.1/lib/vagrant-vbguest/installer.rb:112:in `guest_installer'
    from /home/michael/.vagrant.d/gems/gems/vagrant-vbguest-0.7.1/lib/vagrant-vbguest/installer.rb:86:in `guest_version'
    from /home/michael/.vagrant.d/gems/gems/vagrant-vbguest-0.7.1/lib/vagrant-vbguest/machine.rb:67:in `state'
    from /home/michael/.vagrant.d/gems/gems/vagrant-vbguest-0.7.1/lib/vagrant-vbguest/middleware.rb:23:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/boot.rb:19:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/customize.rb:31:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/sane_defaults.rb:45:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/builtin/set_hostname.rb:16:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/forward_ports.rb:31:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/network.rb:105:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/clear_network_interfaces.rb:26:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/share_folders.rb:20:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/clear_shared_folders.rb:12:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/prepare_nfs_settings.rb:11:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/builtin/nfs.rb:28:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/prune_nfs_exports.rb:15:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb:106:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb:30:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/builtin/env_set.rb:19:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/builtin/provision.rb:45:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/clear_forwarded_ports.rb:13:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/set_name.rb:35:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/clean_machine_folder.rb:17:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/check_accessible.rb:18:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/runner.rb:61:in `block in run'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/util/busy.rb:19:in `busy'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/runner.rb:61:in `run'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/builtin/call.rb:51:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/runner.rb:61:in `block in run'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/util/busy.rb:19:in `busy'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/runner.rb:61:in `run'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/builtin/call.rb:51:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/runner.rb:61:in `block in run'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/util/busy.rb:19:in `busy'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/runner.rb:61:in `run'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/builtin/call.rb:51:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/builtin/call.rb:57:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/builder.rb:109:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/runner.rb:61:in `block in run'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/util/busy.rb:19:in `busy'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/action/runner.rb:61:in `run'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/machine.rb:129:in `action'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/commands/up/command.rb:37:in `block in execute'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/plugin/v2/command.rb:182:in `block in with_target_vms'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/plugin/v2/command.rb:180:in `each'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/plugin/v2/command.rb:180:in `with_target_vms'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/plugins/commands/up/command.rb:32:in `execute'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/cli.rb:46:in `execute'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/lib/vagrant/environment.rb:408:in `cli'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.1.5/bin/vagrant:75:in `<top (required)>'
    from /opt/vagrant/bin/../embedded/gems/bin/vagrant:23:in `load'
    from /opt/vagrant/bin/../embedded/gems/bin/vagrant:23:in `<main>'

This is with vagrant-vbguest 0.7.1, and Vagrant 1.1.5. Any suggestions?

Issues with rbenv version 1.8.7-p352 and vagrant box add

Here is the stacktrace:

[8407][mg@vagranttest]$ rbenv versions
* 1.8.7-p352 (set by /home/mg/.rbenv-version)
  1.9.2-p290
[8408][mg@vagranttest]$ ls
[8409][mg@vagranttest]$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
/home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require': /home/mg/.vagrant.d/gems/gems/vagrant-vbguest-0.3.0/lib/vagrant-vbguest/detector.rb:23: undefined (?...) sequence: /^.+:\s+(?<path>.*VBoxGuestAdditions.iso)$/ (SyntaxError)
    from /home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
    from /home/mg/.vagrant.d/gems/gems/vagrant-vbguest-0.3.0/lib/vagrant-vbguest.rb:4
    from /home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:58:in `gem_original_require'
    from /home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:58:in `require'
    from /home/mg/.vagrant.d/gems/gems/vagrant-vbguest-0.3.0/lib/vagrant_init.rb:3
    from /home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8/gems/vagrant-1.0.2/lib/vagrant/plugin.rb:68:in `load'
    from /home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8/gems/vagrant-1.0.2/lib/vagrant/plugin.rb:68:in `load!'
    from /home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8/gems/vagrant-1.0.2/lib/vagrant/plugin.rb:42:in `each'
    from /home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8/gems/vagrant-1.0.2/lib/vagrant/plugin.rb:42:in `load!'
    from /home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8/gems/vagrant-1.0.2/lib/vagrant/plugin.rb:37:in `each'
    from /home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8/gems/vagrant-1.0.2/lib/vagrant/plugin.rb:37:in `load!'
    from /home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8/gems/vagrant-1.0.2/lib/vagrant/environment.rb:514:in `load_plugins'
    from /home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8/gems/vagrant-1.0.2/lib/vagrant/environment.rb:97:in `initialize'
    from /home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8/gems/vagrant-1.0.2/bin/vagrant:36:in `new'
    from /home/mg/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8/gems/vagrant-1.0.2/bin/vagrant:36
    from /home/mg/.rbenv/versions/1.8.7-p352/bin/vagrant:19:in `load'
    from /home/mg/.rbenv/versions/1.8.7-p352/bin/vagrant:19

"translation missing: en.vagrant.plugins.vbguest.status.unmatched"

I suspect there's some constants that Vagrant is now looking for to be defined, maybe in an i18n-compliant way, that vbguest hasn't defined?

I also get

translation missing: en.vagrant.plugins.vbguest.start_copy_iso
translation missing: en.vagrant.plugins.vbguest.installing

later on in the process.

This project is awesome!

I think the title speaks for itself,

Thank you so much for this little vagrant addon, it is very very handy.

The project is awesome and you are awesome!

That is all,

Josh

p.s. awesome!

Passing a custom installer class as an option does not work

Passing a custom installer in a Vagrantfile like this does not work. The message "Running my own installer!" won't be displayed even when calling vagrant vbguest --do install manually

class My_Installer < VagrantVbguest::Installers::Linux
  def install(opts=nil, &block)
    vm.ui.success "Running my own installer!"
    super
  end
end

Vagrant::Config.run do |config|
  config.vm.define :foo do |cfg|
    # ... all the other stuff ... #
    cfg.vbguest.installer = My_Installer
  end
end

Vagrant 1.1 support

I'm interested in working on Vagrant 1.1 support, if it's not already being worked on. (The 1.1 branch hasn't been updated in many months.) How would you like to go about support for 1.1? Do you want to just convert everything to the 1.1 plugin API, or keep the gem compatible with 1.0.x while also working with 1.1? If the latter, do you want to create new classes in a v2 namespace within the gem and conditionally load files based on Vagrant version, or try to make the existing files work for both somehow?

Windows support for plugin

What would it take to get this working on Windows? I'm guessing that the fact that the README says it doesn't is the reason :)

Support vagrant-cachier to speed up fresh boot time

The one criticism I've heard of vagrant-vbguest is that it can add about 45 second to every fresh boot, depending on connection. Perhaps by hooking in at the right time, vagrant-cachier could be used to speed this up.

I suspect this might not be possible, given when vagrant-vbguest patches into the build process before folder sharing, but thought I'd toss the idea out there anyhow :)

https://github.com/fgrehm/vagrant-cachier/blob/master/lib/vagrant-cachier/plugin.rb#L31-L43

cc: @fgrehm

Fails to work on CentOS

I get the following error building a virtual machine for CentOS 6.3.

Installer classes must provide their own `match?` method.

Tracing the issue, it appears that this code is the problem:

   raise Error, :_key => :do_not_inherit_match_method if self.class != Linux
   (from lib\vagrant-vbguest\installers\linux.rb function self.match?)

Since the function is defined as "self.match?" the class of self is "Class" instead of "Linux".

Deleting the "raise" statement solves the problem. However I understand that's not a great solution: you're doing that to force derived classes to implement their own match functions.

If you want to recreate the problem, I have a feature branch that I'll leave untouched in my project that you can use to do so:

https://github.com/webcoyote/linux-vm/tree/vagrant-vbguest-broken

Otherwise your project is awesome, and works well for me on Ubuntu (Lucid) -- and Centos (6.3) when I delete the "raise" statement.

Thanks,

Pat

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.