vagrant-vbguest-update 0.10.1.dev
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/CHANGELOG.md +209 -0
- data/Gemfile +11 -0
- data/LICENSE +21 -0
- data/Rakefile +11 -0
- data/Readme.md +267 -0
- data/lib/vagrant-vbguest.rb +57 -0
- data/lib/vagrant-vbguest/command.rb +95 -0
- data/lib/vagrant-vbguest/config.rb +51 -0
- data/lib/vagrant-vbguest/core_ext/string/interpolate.rb +110 -0
- data/lib/vagrant-vbguest/download.rb +28 -0
- data/lib/vagrant-vbguest/errors.rb +18 -0
- data/lib/vagrant-vbguest/hosts/base.rb +118 -0
- data/lib/vagrant-vbguest/hosts/virtualbox.rb +103 -0
- data/lib/vagrant-vbguest/installer.rb +121 -0
- data/lib/vagrant-vbguest/installers/base.rb +201 -0
- data/lib/vagrant-vbguest/installers/debian.rb +40 -0
- data/lib/vagrant-vbguest/installers/linux.rb +158 -0
- data/lib/vagrant-vbguest/installers/redhat.rb +29 -0
- data/lib/vagrant-vbguest/installers/ubuntu.rb +44 -0
- data/lib/vagrant-vbguest/machine.rb +105 -0
- data/lib/vagrant-vbguest/middleware.rb +43 -0
- data/lib/vagrant-vbguest/rebootable.rb +39 -0
- data/lib/vagrant-vbguest/vagrant_compat.rb +21 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_0/command.rb +17 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_0/download.rb +51 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_0/rebootable.rb +23 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_0/vm_compatible.rb +31 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_1/command.rb +18 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_1/download.rb +1 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_1/rebootable.rb +33 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_1/vm_compatible.rb +31 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_2/command.rb +1 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_2/download.rb +18 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_2/rebootable.rb +1 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_2/vm_compatible.rb +15 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_3/command.rb +1 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_3/download.rb +1 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_3/rebootable.rb +1 -0
- data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_3/vm_compatible.rb +1 -0
- data/lib/vagrant-vbguest/version.rb +3 -0
- data/lib/vagrant_init.rb +38 -0
- data/locales/en.yml +63 -0
- data/vagrant-vbguest.gemspec +30 -0
- metadata +161 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 115e4d953e83136dfba6d647201bc58f8438ff89
|
4
|
+
data.tar.gz: 56bb78d1c6be37469365d148712122c544b587f8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8018ef061eadecd77a20debaec6ce9638867974d4ee0053d8fbb00aad3e0540c41c455ad32b3a685a42698dd328faa6143ae061dd9a7bd69ad2015bd45d9de1e
|
7
|
+
data.tar.gz: 22e4b2b7ada9cbbdd0e6f0f64fc46d8e78f9092568cc6373cbae2ae7878efa750d47b0a697e44d248204092c6ca3498437db831ba4344ff84705d33cbb6d3a52
|
data/.gitignore
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,209 @@
|
|
1
|
+
## 0.10.1 (Not released yet)
|
2
|
+
|
3
|
+
- Make sure our log message strings are loaded [GH-107]
|
4
|
+
|
5
|
+
## 0.10.0 (2013-12-09)
|
6
|
+
|
7
|
+
- Adds new config option `installer_arguments`
|
8
|
+
Customize arguments passed to the VirtualBox GuestAdditions shell script
|
9
|
+
installer. Defaults to "--no-x11". [GH-98]
|
10
|
+
- Cope with UbuntuCloudImage by default [GH-86], [GH-64], [GH-43]
|
11
|
+
On Ubuntu, always try to remove conflicting installations of
|
12
|
+
GuestAdditions by removing those packages:
|
13
|
+
virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11
|
14
|
+
- Unload kernel modules when UbuntuCloudImage packages are installed.
|
15
|
+
(Thanks @eric1234 for commenting on ec9a7b1f0a)
|
16
|
+
- Wait for SSH connection to be ready. Fixes timing issues with vagrant
|
17
|
+
v1.3.0 and later. [GH-80], [GH-90]
|
18
|
+
- Fix a typo in command description [GH-84]
|
19
|
+
- Tweak gem dependencies [GH-82]
|
20
|
+
- add rake as development dependency
|
21
|
+
- remove version locks on gems provided by vagrant
|
22
|
+
- Pass plugin name when registration the action hook for vagrant ≥1.1 [GH-80]
|
23
|
+
- Fix crash on Vagrant 1.4 [GH-100]
|
24
|
+
|
25
|
+
### heads-up
|
26
|
+
|
27
|
+
- With [GH-94] the **name**, `vagrant-vbguest` registers itself to vagrant's
|
28
|
+
(≥1.1) plugin-system changed from 'vbguest management' to
|
29
|
+
'vagrant-vbguest'
|
30
|
+
|
31
|
+
## 0.9.0
|
32
|
+
|
33
|
+
- Adds support for vagrant 1.3 [GH-71], [GH-72]
|
34
|
+
- Fix crash when using as a command [GH-68].
|
35
|
+
- Don't trust VirtualBox Media Manager informations when
|
36
|
+
looking for a iso file. [GH-70]
|
37
|
+
|
38
|
+
### heads-up
|
39
|
+
|
40
|
+
- Be lax about missing installer for guest OS.
|
41
|
+
No longer throws an error when no Installer class
|
42
|
+
for the guest os was found. Keep the error message,
|
43
|
+
stop vbguest workflow, but keep vagrant running.
|
44
|
+
[GH-65]
|
45
|
+
|
46
|
+
|
47
|
+
## 0.8.0
|
48
|
+
|
49
|
+
- Adds Vagrant 1.2 compatibility [GH-59], [GH-60], [GH-62] /
|
50
|
+
(thanks @Andrew8xx8 for pointing directions)
|
51
|
+
- Fix basic/fallback linux installer [GH-56]
|
52
|
+
- Guard auto-reload on broken vagrant builds.
|
53
|
+
Some varant 1.1.x versions have a bug regarding ssh and cleaning
|
54
|
+
up old connections, which results in varant crashing when a box
|
55
|
+
is reloaded.
|
56
|
+
|
57
|
+
## 0.7.1
|
58
|
+
|
59
|
+
- Fix auto-reloading for vagrant 1.1 [GH-52]
|
60
|
+
Also changes the reload method for vagrant 1.0 when ran
|
61
|
+
as middleware (to not run buildin actions manually).
|
62
|
+
|
63
|
+
## 0.7.0
|
64
|
+
|
65
|
+
- When looking for a GuestAdditions iso file in media manager
|
66
|
+
allow version number in filename. [GH-48], [GH-49] /
|
67
|
+
(thanks @neerolyte)
|
68
|
+
- Support multiple locations to be searched while "guessing"
|
69
|
+
GuestAdditions iso file
|
70
|
+
- On Linux guests also search "$HOME/.VirtualBox" for
|
71
|
+
GuestAdditions iso file. [GH-48]
|
72
|
+
- Add support for redhat-based distributions (Scientific Linux and
|
73
|
+
presumably CentOS) [GH-47], [GH-46] / (thanks @neerolyte)
|
74
|
+
- Fix an issue with VirtualBox GuestAdditions 4.2.8 [GH-44] /
|
75
|
+
(thanks @jimmycuadra)
|
76
|
+
- Reworked bunch of internals, particularly how vagrants's
|
77
|
+
environemnt is passed arround. Also decoupled GuestAdditions
|
78
|
+
finder into a seperate class.
|
79
|
+
- Intodruce a vagrant 1.0 compatibility layer for Installers and
|
80
|
+
other vbguest internals
|
81
|
+
|
82
|
+
### heads-up
|
83
|
+
|
84
|
+
- [GH-44] changes the behavior of vbguest to that effect, that it
|
85
|
+
will no longer halt vagrant workflow if running the VirtualBox
|
86
|
+
GuestAdditions Installer returns an error-code.
|
87
|
+
Instead it will print a human readable waring message.
|
88
|
+
- The environment (`env`) in custom installers is no longer the
|
89
|
+
actions environment `Hash`, but the `Environment` instance.
|
90
|
+
Which has some implications on how you can access e.g. the `ui`:
|
91
|
+
instead of `env[:ui]` use `env.ui`
|
92
|
+
- To achieve compatibility to both vagrant 1.0 and 1.1, custom
|
93
|
+
Installers, when executing shell commands on the guest system,
|
94
|
+
should use vbguests `communicate` wrapper. e.g.:
|
95
|
+
A call like `vm.channel.sudo 'apt-get update'` should be
|
96
|
+
changed to `communicate.sudo 'apt-get update'`
|
97
|
+
The old `vm.channel` syntax will continue to work on vagrant 1.0.x
|
98
|
+
but will fail on vagrant 1.1.x.
|
99
|
+
|
100
|
+
## 0.6.4 (2013-01-24)
|
101
|
+
|
102
|
+
- Fix passing a installer class as an config option [GH-40]
|
103
|
+
|
104
|
+
## 0.6.3 (2013-01-19)
|
105
|
+
|
106
|
+
- Fix generic linux installer for not explicitly supported
|
107
|
+
distributions [GH-39]
|
108
|
+
|
109
|
+
## 0.6.2 (2013-01-18)
|
110
|
+
|
111
|
+
- Fix typos and wording in error messages and I18n keys
|
112
|
+
et al. [GH-38]
|
113
|
+
|
114
|
+
## 0.6.1 (2013-01-13)
|
115
|
+
|
116
|
+
- Fix missing command output block and parameters for
|
117
|
+
installation process [GH-37]
|
118
|
+
- Update README to reflect new wording for status informations
|
119
|
+
|
120
|
+
## 0.6.0 (2013-01-13)
|
121
|
+
|
122
|
+
- Debian installer now cope with missing `dkms` package [GH-30]
|
123
|
+
- Fixed some issues when runnig on just creating boxes [GH-31]
|
124
|
+
- Fixed workding (thx @scalp42) [GH-32]
|
125
|
+
- Add debug logging
|
126
|
+
- Installers no longer are shell scripts, but ruby classes
|
127
|
+
- Users may pass in their own installer classes
|
128
|
+
(yes! plugins in plugins)
|
129
|
+
- New `sprintf` style `%{version}` placeholder for iso download path.
|
130
|
+
(old `$VBOX_VERSION` placeholder still working)
|
131
|
+
- Revisited command arguments to not just mirror config values:
|
132
|
+
- New `--do` argument: force-run one of those commands:
|
133
|
+
* `start` : Try to start the GuestAdditions Service
|
134
|
+
* `rebuild` : Rebuild the currently installed Guest Additions
|
135
|
+
* `install` : Run the installation process from "iso file"
|
136
|
+
- New `--status` argument
|
137
|
+
- Removed `-I|--no-install` argument (instead use `--status`)
|
138
|
+
|
139
|
+
## 0.5.1 (2012-11-30)
|
140
|
+
|
141
|
+
- Fix: Provisioning will not run twice when rebooted due
|
142
|
+
to incomplete GuestAdditions installation [GH-27] /
|
143
|
+
(thanks @gregsymons for pointing)
|
144
|
+
|
145
|
+
## 0.5.0 (2012-11-19)
|
146
|
+
|
147
|
+
- Box will be rebooted if the GuestAdditions installation
|
148
|
+
process does not load the kernel module [GH-25], [GH-24]
|
149
|
+
- Add `--auto-reboot` argument to allow rebooting when running as a
|
150
|
+
command (which is disabled by default when runnind as command)
|
151
|
+
- Adds this Changelog
|
152
|
+
|
153
|
+
## 0.4.0 (2012-10-21)
|
154
|
+
|
155
|
+
- Add global configuration options [GH-22]
|
156
|
+
- Add `iso_path` option `:auto` to rest a previously
|
157
|
+
configured path [GH-22]
|
158
|
+
|
159
|
+
## 0.3.5
|
160
|
+
|
161
|
+
- Fix iso detection for windows hosts [GH-20]
|
162
|
+
|
163
|
+
## 0.3.4
|
164
|
+
|
165
|
+
- Fix installer shell script invocation [GH-18]
|
166
|
+
|
167
|
+
## 0.3.3
|
168
|
+
|
169
|
+
- Add Fedora to the list of supported plattforms [GH-17]
|
170
|
+
- Add system package update (`apt-get update`) to the
|
171
|
+
debian installer if package installation fails [GH-16]
|
172
|
+
- Drop dependency on `vagrant` gem [GH-15]
|
173
|
+
|
174
|
+
## 0.3.2
|
175
|
+
|
176
|
+
- Stop GuestAdditions installation and fail with an error
|
177
|
+
when installation of dependency packes fails [GH-13]
|
178
|
+
|
179
|
+
## 0.3.1
|
180
|
+
|
181
|
+
- Ruby 1.8.7 compatibility [GH-12]
|
182
|
+
|
183
|
+
## 0.3.0
|
184
|
+
|
185
|
+
- Removed dependency to the `virtualbox` gem by using
|
186
|
+
`vagrant`s vm driver [GH-8]
|
187
|
+
|
188
|
+
## 0.2.1
|
189
|
+
|
190
|
+
- Typo fixes in readme and internal renamings. [GH-9], [GH-7]
|
191
|
+
|
192
|
+
## 0.2.0
|
193
|
+
|
194
|
+
- Makes a guess on where to look for a `VBoxGuestAdditions.iso` file
|
195
|
+
based on the host system (when VirtualBox does not tell). [GH-6]
|
196
|
+
- Adds command line options `--no-install`, `--no-remote`, `--iso`
|
197
|
+
- Requires vagrant v0.9.4 or later
|
198
|
+
|
199
|
+
## 0.1.1
|
200
|
+
|
201
|
+
- Fix vagrant 0.9.4 compatibility [GH-4]
|
202
|
+
|
203
|
+
## 0.1.0
|
204
|
+
|
205
|
+
- Vagrant 0.9 compatibility (drops 0.8 support) [GH-3]
|
206
|
+
|
207
|
+
## Previous (≤ 0.0.3)
|
208
|
+
|
209
|
+
- Vagrant 0.8 support
|
data/Gemfile
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
# Specify your gem's dependencies in vagrant-vbguest.gemspec
|
4
|
+
gemspec
|
5
|
+
|
6
|
+
group :development do
|
7
|
+
# We depend on Vagrant for development, but we don't add it as a
|
8
|
+
# gem dependency because we expect to be installed within the
|
9
|
+
# Vagrant environment itself using `vagrant plugin`.
|
10
|
+
gem "vagrant", :git => "git://github.com/mitchellh/vagrant.git"
|
11
|
+
end
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2011 Robert Schulze <robert@dotless.de>
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
4
|
+
# Immediately sync all stdout so that tools like buildbot can
|
5
|
+
# immediately load in the output.
|
6
|
+
$stdout.sync = true
|
7
|
+
$stderr.sync = true
|
8
|
+
|
9
|
+
# This installs the tasks that help with gem creation and
|
10
|
+
# publishing.
|
11
|
+
Bundler::GemHelper.install_tasks
|
data/Readme.md
ADDED
@@ -0,0 +1,267 @@
|
|
1
|
+
# vagrant-vbguest
|
2
|
+
|
3
|
+
*vagrant-vbguest* is a [Vagrant](http://vagrantup.com) plugin which automatically installs the host's VirtualBox Guest Additions on the guest system.
|
4
|
+
|
5
|
+
[![Code Climate](https://codeclimate.com/github/dotless-de/vagrant-vbguest.png)](https://codeclimate.com/github/dotless-de/vagrant-vbguest) [![Dependency Status](https://gemnasium.com/dotless-de/vagrant-vbguest.png)](https://gemnasium.com/dotless-de/vagrant-vbguest)
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Requires vagrant 0.9.4 or later (including 1.x)
|
10
|
+
|
11
|
+
### Vagrant ≥ 1.1
|
12
|
+
|
13
|
+
```bash
|
14
|
+
$ vagrant plugin install vagrant-vbguest
|
15
|
+
```
|
16
|
+
|
17
|
+
### Vagrant 1.0 and older
|
18
|
+
|
19
|
+
Since vagrant v1.0.0 the preferred installation method for vagrant is using the provided packages or installers.
|
20
|
+
If you installed vagrant that way, you need to use vagrant's gem wrapper:
|
21
|
+
|
22
|
+
```bash
|
23
|
+
$ vagrant gem install vagrant-vbguest
|
24
|
+
```
|
25
|
+
|
26
|
+
If you installed vagrant using RubyGems, use:
|
27
|
+
|
28
|
+
```bash
|
29
|
+
$ gem install vagrant-vbguest
|
30
|
+
```
|
31
|
+
|
32
|
+
Compatibly for vagrant 0.8 is provided by version 0.0.3 (which lacks a bunch of new options)
|
33
|
+
|
34
|
+
## Configuration / Usage
|
35
|
+
|
36
|
+
If you're lucky, *vagrant-vbguest* does not require any configuration.
|
37
|
+
However, here is an example of `Vagrantfile`:
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
Vagrant::Config.run do |config|
|
41
|
+
# we will try to autodetect this path.
|
42
|
+
# However, if we cannot or you have a special one you may pass it like:
|
43
|
+
# config.vbguest.iso_path = "#{ENV['HOME']}/Downloads/VBoxGuestAdditions.iso"
|
44
|
+
# or
|
45
|
+
# config.vbguest.iso_path = "http://company.server/VirtualBox/%{version}/VBoxGuestAdditions.iso"
|
46
|
+
|
47
|
+
# set auto_update to false, if you do NOT want to check the correct
|
48
|
+
# additions version when booting this machine
|
49
|
+
config.vbguest.auto_update = false
|
50
|
+
|
51
|
+
# do NOT download the iso file from a webserver
|
52
|
+
config.vbguest.no_remote = true
|
53
|
+
end
|
54
|
+
```
|
55
|
+
|
56
|
+
### Config options
|
57
|
+
|
58
|
+
* `iso_path` : The full path or URL to the VBoxGuestAdditions.iso file. <br/>
|
59
|
+
The `iso_path` may contain the optional placeholder `%{version}` replaced with detected VirtualBox version (e.g. `4.1.8`).
|
60
|
+
The default URI for the actual iso download is: `http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso`<br/>
|
61
|
+
vbguest will try to autodetect the best option for your system. WTF? see below.
|
62
|
+
* `auto_update` (Boolean, default: `true`) : Whether to check the correct additions version on each start (where start is _not_ resuming a box).
|
63
|
+
* `auto_reboot` (Boolean, default: `true` when running as a middleware, `false` when running as a command) : Whether to reboot the box after GuestAdditions has been installed, but not loaded.
|
64
|
+
* `no_install` (Boolean, default: `false`) : Whether to check the correct additions version only. This will warn you about version mis-matches, but will not try to install anything.
|
65
|
+
* `no_remote` (Boolean, default: `false`) : Whether to _not_ download the iso file from a remote location. This includes any `http` location!
|
66
|
+
* `installer` (`VagrantVbguest::Installers::Base`, optional) : Reference to a (custom) installer class
|
67
|
+
|
68
|
+
#### Global Configuration
|
69
|
+
|
70
|
+
Using [Vagrantfile Load Order](http://vagrantup.com/v1/docs/vagrantfile.html#vagrantfile_load_order) you may change default configuration values.
|
71
|
+
Edit (create, if missing) your `~/.vagrant.d/Vagrantfile` like this:
|
72
|
+
|
73
|
+
For Vagrant >= 1.1.0 use:
|
74
|
+
|
75
|
+
```ruby
|
76
|
+
Vagrant.configure("2") do |config|
|
77
|
+
config.vbguest.auto_update = false
|
78
|
+
end
|
79
|
+
```
|
80
|
+
|
81
|
+
For older versions of Vagrant:
|
82
|
+
|
83
|
+
```ruby
|
84
|
+
# vagrant's autoloading may not have kicked in
|
85
|
+
require 'vagrant-vbguest' unless defined? VagrantVbguest::Config
|
86
|
+
VagrantVbguest::Config.auto_update = false
|
87
|
+
```
|
88
|
+
|
89
|
+
Settings in a project's `Vagrantfile` will overwrite those setting. When executed as a command, command line arguments will overwrite all of the above.
|
90
|
+
|
91
|
+
|
92
|
+
### Running as a middleware
|
93
|
+
|
94
|
+
Running as a middleware is the default way of using *vagrant-vbguest*.
|
95
|
+
It will run automatically right after the box started. This is each time the box boots, i.e. `vagrant up` or `vagrant reload`.
|
96
|
+
It won't run on `vagrant resume` (or `vagrant up` a suspended box) to save you some time resuming a box.
|
97
|
+
|
98
|
+
You may switch off the middleware by setting the vm's config `vbguest.auto_update` to `false`.
|
99
|
+
This is a per box setting. On multi vm environments you need to set that for each vm.
|
100
|
+
|
101
|
+
When *vagrant-vbguest* is running it will provide you some logs:
|
102
|
+
|
103
|
+
[...]
|
104
|
+
[default] Booting VM...
|
105
|
+
[default] Booting VM...
|
106
|
+
[default] Waiting for VM to boot. This can take a few minutes.
|
107
|
+
[default] VM booted and ready for use!
|
108
|
+
[default] GuestAdditions versions on your host (4.2.6) and guest (4.1.0) do not match.
|
109
|
+
stdin: is not a tty
|
110
|
+
Reading package lists...
|
111
|
+
Building dependency tree...
|
112
|
+
Reading state information...
|
113
|
+
The following extra packages will be installed:
|
114
|
+
fakeroot linux-headers-2.6.32-33 patch
|
115
|
+
|
116
|
+
[...]
|
117
|
+
|
118
|
+
[default] Copy iso file /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
|
119
|
+
stdin: is not a tty
|
120
|
+
[default] Installing Virtualbox Guest Additions 4.2.6 - guest version is 4.1.0
|
121
|
+
stdin: is not a tty
|
122
|
+
Verifying archive integrity... All good.
|
123
|
+
Uncompressing VirtualBox 4.2.6 Guest Additions for Linux...........
|
124
|
+
VirtualBox Guest Additions installer
|
125
|
+
Removing installed version 4.1.0 of VirtualBox Guest Additions...
|
126
|
+
tar: Record size = 8 blocks
|
127
|
+
Removing existing VirtualBox DKMS kernel modules ...done.
|
128
|
+
Removing existing VirtualBox non-DKMS kernel modules ...done.
|
129
|
+
Building the VirtualBox Guest Additions kernel modules ...done.
|
130
|
+
Doing non-kernel setup of the Guest Additions ...done.
|
131
|
+
You should restart your guest to make sure the new modules are actually used
|
132
|
+
|
133
|
+
Installing the Window System drivers ...fail!
|
134
|
+
(Could not find the X.Org or XFree86 Window System.)
|
135
|
+
stdin: is not a tty
|
136
|
+
[default] Restarting VM to apply changes...
|
137
|
+
[default] Attempting graceful shutdown of VM...
|
138
|
+
[default] Booting VM...
|
139
|
+
[default] Waiting for VM to boot. This can take a few minutes.
|
140
|
+
[default] VM booted and ready for use!
|
141
|
+
[default] Configuring and enabling network interfaces...
|
142
|
+
[default] Setting host name...
|
143
|
+
[default] Mounting shared folders...
|
144
|
+
[default] -- v-root: /vagrant
|
145
|
+
[default] -- v-csc-1: /tmp/vagrant-chef-1/chef-solo-1/cookbooks
|
146
|
+
[default] Running provisioner: Vagrant::Provisioners::ChefSolo...
|
147
|
+
[default] Generating chef JSON and uploading...
|
148
|
+
[default] Running chef-solo...
|
149
|
+
[...]
|
150
|
+
|
151
|
+
|
152
|
+
The plugin's part starts at `[default] Installing Virtualbox Guest Additions 4.1.14 - guest's version is 4.1.1`, telling you that:
|
153
|
+
|
154
|
+
* the guest addition of the box *default* is outdated (or mismatching)
|
155
|
+
* which guest additions iso file will be used
|
156
|
+
* which installer script will be used
|
157
|
+
* all the VirtualBox Guest Additions installer output.
|
158
|
+
|
159
|
+
No worries on the `Installing the Window System drivers ...fail!`. Most dev boxes you are using won't run a Window Server, thus it's absolutely safe to ignore that error.
|
160
|
+
|
161
|
+
When everything is fine, and no update is needed, you see log like:
|
162
|
+
|
163
|
+
...
|
164
|
+
[default] Booting VM...
|
165
|
+
[default] Waiting for VM to boot. This can take a few minutes.
|
166
|
+
[default] VM booted and ready for use!
|
167
|
+
[default] GuestAdditions 4.2.6 running --- OK.
|
168
|
+
...
|
169
|
+
|
170
|
+
|
171
|
+
### Running as a Command
|
172
|
+
|
173
|
+
When you switched off the middleware auto update, or you have a box up and running you may also run the installer manually.
|
174
|
+
|
175
|
+
```bash
|
176
|
+
$ vagrant vbguest [vm-name] [--do start|rebuild|install] [--status] [-f|--force] [-b|--auto-reboot] [-R|--no-remote] [--iso VBoxGuestAdditions.iso]
|
177
|
+
```
|
178
|
+
|
179
|
+
For example, when you just updated VirtualBox on your host system, you should update the guest additions right away. However, you may need to reload the box to get the guest additions working.
|
180
|
+
|
181
|
+
If you want to check the guest additions version, without installing, you may run:
|
182
|
+
|
183
|
+
```bash
|
184
|
+
$ vagrant vbguest --status
|
185
|
+
```
|
186
|
+
|
187
|
+
Telling you either about a version mismatch:
|
188
|
+
|
189
|
+
[default] GuestAdditions versions on your host (4.2.6) and guest (4.1.0) do not match.
|
190
|
+
|
191
|
+
or a match:
|
192
|
+
|
193
|
+
[default] GuestAdditions 4.2.6 running --- OK.
|
194
|
+
|
195
|
+
|
196
|
+
The `auto-reboot` is turned off by default when running as a command. Vbguest will suggest you to reboot the box when needed. To turn it on simply pass the `--auto-reboot` parameter:
|
197
|
+
|
198
|
+
```bash
|
199
|
+
$ vagrant vbguest --auto-reboot
|
200
|
+
```
|
201
|
+
|
202
|
+
You can also pass vagrant's `reload` options like:
|
203
|
+
|
204
|
+
```bash
|
205
|
+
$ vagrant vbguest --auto-reboot --no-provision
|
206
|
+
```
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
### ISO autodetection
|
211
|
+
|
212
|
+
*vagrant-vbguest* will try to autodetect a VirtualBox GuestAdditions iso file on your system, which usually matches your installed version of VirtualBox. If it cannot find one, it downloads one from the web (virtualbox.org).
|
213
|
+
Those places will be checked in order:
|
214
|
+
|
215
|
+
1. Checks your VirtualBox "Virtual Media Maganger" for a DVD called "VBoxGuestAdditions.iso"
|
216
|
+
2. Guess by your host operating system:
|
217
|
+
* for linux : `/usr/share/virtualbox/VBoxGuestAdditions.iso`
|
218
|
+
* for Mac : `/Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso`
|
219
|
+
* for Windows : `%PROGRAMFILES%/Oracle/VirtualBox/VBoxGuestAdditions.iso`
|
220
|
+
|
221
|
+
|
222
|
+
### Automatic reboot
|
223
|
+
|
224
|
+
The VirtualBox GuestAdditions Installer will try to load the newly built kernel module. However the installer may fail to load, just as it is happening when updating GuestAdditions from version 4.1 to 4.2.
|
225
|
+
|
226
|
+
Hence, vbguest will check for a loaded kernel module after the installation has finished and reboots the box, if it could not find one.
|
227
|
+
|
228
|
+
|
229
|
+
## Advanced Usage
|
230
|
+
|
231
|
+
vagrant-vbguest provides installers for generic linux and debian/ubuntu.
|
232
|
+
Installers take care of the whole installation process, that includes where to save the iso file inside the guest and where to mount it.
|
233
|
+
|
234
|
+
```ruby
|
235
|
+
class MyInstaller < VagrantVbguest::Installers::Linux
|
236
|
+
|
237
|
+
# use /temp instead of /tmp
|
238
|
+
def tmp_path
|
239
|
+
'/temp/VBoxGuestAdditions.iso'
|
240
|
+
end
|
241
|
+
|
242
|
+
# use /media instead of /mnt
|
243
|
+
def mount_point
|
244
|
+
'/media'
|
245
|
+
end
|
246
|
+
|
247
|
+
def install(opts=nil, &block)
|
248
|
+
communicate.sudo('my_distos_way_of_preparing_guestadditions_installation', opts, &block)
|
249
|
+
# calling `super` will run the installation
|
250
|
+
# also it takes care of uploading the right iso file into the box
|
251
|
+
# and cleaning up afterward
|
252
|
+
super
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
Vagrant::Config.run do |config|
|
257
|
+
config.vbguest.installer = MyInstaller
|
258
|
+
end
|
259
|
+
```
|
260
|
+
|
261
|
+
|
262
|
+
## Known Issues
|
263
|
+
|
264
|
+
* The installer script, which mounts and runs the GuestAdditions Installer Binary, works on Linux only. Most likely it will run on most Unix-like platforms.
|
265
|
+
* The installer script requires a directory `/mnt` on the guest system
|
266
|
+
* On multi vm boxes, the iso file will be downloaded for each vm
|
267
|
+
* The plugin installation on Windows host systems may not work as expected (using `vagrant gem install vagrant-vbguest`). Try `C:\vagrant\vagrant\embedded\bin\gem.bat install vagrant-vbguest` instead. (See [issue #19](https://github.com/dotless-de/vagrant-vbguest/issues/19#issuecomment-7040304))
|