vagrant-vbguest 0.23.0 → 0.24.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: de7e56db32055d21a641c0fff261a9dbff9f7faf6d1857b5eb5da239b7cbe0d6
4
- data.tar.gz: 332c697c6db4673e288874aeaf61ecd65233256a40635ea81216019f4269396a
3
+ metadata.gz: ee59eb428fab8a82265073af563afac3cf1eb44ef7c39d7b295006f296541b28
4
+ data.tar.gz: 7cbf7aebdef759adaabd66ad72db101cfe777150348809188c6dfa8021a20163
5
5
  SHA512:
6
- metadata.gz: f1041e643b17bce30c935e3c753dcb05c54b90e51edfd2de1844ccba5656d721837a9b0d7955d99dfd271810f2cb36355d03bed21714e52e43c8cf7161ec5174
7
- data.tar.gz: b7a8fba5885fbca588c44dcf112eeacdd7b92604cb33378e1f59e75ab60bdfdab6c0d037a8cf725214eb3c01e3ea5c5a5b56d1f0f9e4ec149abad46f7a849fea
6
+ metadata.gz: 25a9d0bdd3d5f8abe459aae553b2074f3222550a14a82df5e774274d5be67c0c3ac16831064e9f1f1a8e1ac86deab89d38944cecd3aebf56fa4ca8c600c54e30
7
+ data.tar.gz: 28edf44b31602f72df2c2458a51b9f414561af4ea06b1674bd02f2793044b9294512135be8935b7b6461c365633b185e0f9901be6996060b8273faba394a4fa1
@@ -1,3 +1,10 @@
1
+ ## 0.24.0.beta1 (2020-04-28)
2
+
3
+ - Add a new configuration `installer_options`, as an optional way to pass options to Installer classes.
4
+ - Add new `installer_options` for the CentOS Installer. Thanks @pedrofurtado for [GH-373]
5
+ + `allow_kernel_upgrade`: Will update the kernel and reboots the box
6
+ + `reboot_timeout`: Optionally, set the max amount of seconds to wait after reboot
7
+
1
8
  ## 0.23.0 (2020-01-05)
2
9
 
3
10
  - Fix Oracle Linux Installer. Installs `elfutils-libelf-devel`. [GH-364], @fribeiro1 [GH-365]
data/Gemfile CHANGED
@@ -11,7 +11,7 @@ group :development do
11
11
  else
12
12
  gem "vagrant", :git => "https://github.com/hashicorp/vagrant.git"
13
13
  end
14
- gem "rake", "~> 10.0"
14
+ gem "rake", ">= 12.3.3"
15
15
  end
16
16
 
17
17
  group :plugins do
data/Readme.md CHANGED
@@ -58,8 +58,28 @@ vbguest will try to autodetect the best option for your system. WTF? see below.
58
58
  * `no_remote` (Boolean, default: `false`) : Whether to _not_ download the iso file from a remote location. This includes any `http` location!
59
59
  * `installer` (`VagrantVbguest::Installers::Base`, optional) : Reference to a (custom) installer class
60
60
  * `installer_arguments` (Array, default: `['--nox11']`) : List of additional arguments to pass to the installer. eg: `%w{--nox11 --force}` would execute `VBoxLinuxAdditions.run install --nox11 --force`
61
+ * `installer_options` (Hash, default: `{}`) : Configure how a Installer internally works. Should be set on a `vm` level.
61
62
  * `yes` (Boolean or String, default: `true`): Wheter to pipe `yes` to the installer. If `true`, executes `yes | VBoxLinuxAdditions.run install`. With `false`, the command is executed without `yes`. You can also put in a string here for `yes` (e.g. `no` to refuse all messages)
62
63
 
64
+
65
+ #### Installer Specific Options (`installer_options`)
66
+
67
+ Those settings are specific for OS-specific installer. Especially in a multi-box environment, you should put those options on the box configuration like this:
68
+
69
+ ```ruby
70
+ Vagrant.configure("2") do |config|
71
+ config.vm.define "my_cent_os_box" do |c|
72
+ c.box = "centos/8"
73
+ c.vbguest.installer_options = { allow_kernel_upgrade: true }
74
+ end
75
+ end
76
+ ```
77
+
78
+ ##### CentOS
79
+
80
+ * `:allow_kernel_upgrade` (default: `false`): If `true`, instead of trying to find matching the matching kernel-devel package to the installed kernel version, the kernel will be updated and the (now matching) up-to-date kernel-devel will be installed. __NOTE__: This will trigger a reboot of the box.
81
+ * `:reboot_timeout` (default: `300`): Number of seconds to wait for the box to reboot after a kernel upgrade.
82
+
63
83
  #### Global Configuration
64
84
 
65
85
  Using [Vagrantfile Load Order](https://www.vagrantup.com/docs/vagrantfile/#load-order-and-merging) you may change default configuration values.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.23.0
1
+ 0.24.0.beta1
@@ -4,7 +4,8 @@ module VagrantVbguest
4
4
 
5
5
  module Attributes
6
6
  attr_accessor :auto_update, :auto_reboot, :no_install, :no_remote,
7
- :installer, :installer_arguments, :allow_downgrade,
7
+ :installer, :installer_arguments, :installer_options,
8
+ :allow_downgrade,
8
9
  :iso_path, :iso_upload_path, :iso_mount_point, :yes
9
10
  end
10
11
 
@@ -16,6 +17,7 @@ module VagrantVbguest
16
17
  def no_install; @no_install.nil? ? false : @no_install end
17
18
  def no_remote; @no_remote.nil? ? false : @no_remote end
18
19
  def installer_arguments; @installer_arguments.nil? ? '--nox11' : @installer_arguments end
20
+ def installer_options; @installer_options ||= {} end
19
21
  def yes; @yes.nil? ? true : @yes end
20
22
 
21
23
  def iso_path
@@ -33,6 +35,7 @@ module VagrantVbguest
33
35
  def no_install; @no_install.nil? ? self.class.no_install : @no_install end
34
36
  def no_remote; @no_remote.nil? ? self.class.no_remote : @no_remote end
35
37
  def installer_arguments; @installer_arguments.nil? ? self.class.installer_arguments : @installer_arguments end
38
+ def installer_options; @installer_options ||= self.class.installer_options end
36
39
  def yes; @yes.nil? ? self.class.yes : @yes end
37
40
 
38
41
  def iso_path
@@ -47,6 +50,7 @@ module VagrantVbguest
47
50
  {
48
51
  :installer => installer,
49
52
  :installer_arguments => installer_arguments,
53
+ :installer_options => installer_options,
50
54
  :iso_path => iso_path,
51
55
  :iso_upload_path => iso_upload_path,
52
56
  :iso_mount_point => iso_mount_point,
@@ -181,6 +181,10 @@ module VagrantVbguest
181
181
  version
182
182
  end
183
183
 
184
+ def installer_options
185
+ options[:installer_options] || {}
186
+ end
187
+
184
188
  # Helper to yield a warning message to the user, that the installation
185
189
  # will start _now_.
186
190
  # The message includes the host and installer version strings.
@@ -8,12 +8,27 @@ module VagrantVbguest
8
8
 
9
9
  # Install missing deps and yield up to regular linux installation
10
10
  def install(opts=nil, &block)
11
- install_kernel_deps(opts, &block)
11
+ if upgrade_kernel?
12
+ upgrade_kernel(opts, &block)
13
+ else
14
+ install_kernel_deps(opts, &block)
15
+ end
12
16
  super
13
17
  end
14
18
 
19
+ def installer_options
20
+ @installer_options ||= {
21
+ allow_kernel_upgrade: false,
22
+ reboot_timeout: 300
23
+ }.merge!(super)
24
+ end
25
+
15
26
  protected
16
27
 
28
+ def upgrade_kernel?
29
+ installer_options[:allow_kernel_upgrade]
30
+ end
31
+
17
32
  def install_kernel_deps(opts=nil, &block)
18
33
  unless has_kernel_devel_info?
19
34
  update_release_repos(opts, &block)
@@ -58,12 +73,26 @@ module VagrantVbguest
58
73
  communicate.sudo(cmd, opts, &block)
59
74
  end
60
75
 
76
+ def upgrade_kernel(opts=nil, &block)
77
+ communicate.sudo('yum update -y kernel', opts, &block)
78
+ communicate.sudo('yum install -y kernel-devel', opts, &block)
79
+
80
+ env.ui.info(I18n.t("vagrant_vbguest.centos.rebooting", vm_name: vm.name))
81
+ communicate.sudo('shutdown -r now', opts, &block)
82
+
83
+ sleep_guard = installer_options[:reboot_timeout]
84
+ begin
85
+ sleep 10
86
+ sleep_guard -= 10
87
+ end while sleep_guard >= 0 && !@vm.communicate.ready?
88
+ end
89
+
61
90
  def dependencies
62
- if has_kernel_devel_info?
91
+ if !upgrade_kernel? && has_kernel_devel_info?
63
92
  # keep the original redhat dependencies
64
93
  super
65
94
  else
66
- # we should have installed kernel-devel-`uname -r` via install_kernel_devel
95
+ # we should have installed kernel-devel(-`uname -r`) via install_kernel_devel or upgrade_kernel
67
96
  ['gcc', 'binutils', 'make', 'perl', 'bzip2', 'elfutils-libelf-devel'].join(' ')
68
97
  end
69
98
  end
@@ -24,7 +24,7 @@ module VagrantVbguest
24
24
 
25
25
  protected
26
26
  def install_dependencies_cmd
27
- "apt-get install -y #{dependencies}"
27
+ "DEBIAN_FRONTEND=noninteractive apt-get install -y #{dependencies}"
28
28
  end
29
29
 
30
30
  def dependencies
@@ -0,0 +1,4 @@
1
+ en:
2
+ vagrant_vbguest:
3
+ centos:
4
+ rebooting: "[%{vm_name}] Rebooting after kernel upgrade."
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-vbguest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.0
4
+ version: 0.24.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Schulze
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-05 00:00:00.000000000 Z
11
+ date: 2020-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: micromachine
@@ -101,6 +101,7 @@ files:
101
101
  - lib/vagrant-vbguest/middleware.rb
102
102
  - lib/vagrant-vbguest/version.rb
103
103
  - locales/en.yml
104
+ - locales/en_centos.yml
104
105
  - locales/en_windows.yml
105
106
  - vagrant-vbguest.gemspec
106
107
  homepage: https://github.com/dotless-de/vagrant-vbguest