class VagrantVbguest::Installers::CentOS
Public Class Methods
match?(vm)
click to toggle source
Calls superclass method
# File lib/vagrant-vbguest/installers/centos.rb, line 5 def self.match?(vm) super && communicate_to(vm).test('test -f /etc/centos-release') end
Public Instance Methods
install(opts=nil, &block)
click to toggle source
Install missing deps and yield up to regular linux installation
Calls superclass method
# File lib/vagrant-vbguest/installers/centos.rb, line 10 def install(opts=nil, &block) if upgrade_kernel? upgrade_kernel(opts, &block) else install_kernel_deps(opts, &block) end super end
installer_options()
click to toggle source
Calls superclass method
# File lib/vagrant-vbguest/installers/centos.rb, line 19 def installer_options @installer_options ||= { allow_kernel_upgrade: false, reboot_timeout: 300 }.merge!(super) end
Protected Instance Methods
dependencies()
click to toggle source
Calls superclass method
# File lib/vagrant-vbguest/installers/centos.rb, line 109 def dependencies if !upgrade_kernel? && has_kernel_devel_info? # keep the original redhat dependencies super else # we should have installed kernel-devel(-`uname -r`) via install_kernel_devel or upgrade_kernel ['gcc', 'binutils', 'make', 'perl', 'bzip2', 'elfutils-libelf-devel'].join(' ') end end
enablerepo()
click to toggle source
parse the installer_option :enablerepo
# File lib/vagrant-vbguest/installers/centos.rb, line 33 def enablerepo unless instance_variable_defined?(:@enablerepo) enablerepo = installer_options.fetch(:enablerepo, false) @enablerepo = case enablerepo when String "--enablerepo=#{enablerepo}" when Array enablerepo.map { |e| "--enablerepo=#{e}" }.join(" ") when true rel = has_rel_repo? ? release_version : '*' "--enablerepo=C#{rel}-base --enablerepo=C#{rel}-updates" else nil end end @enablerepo end
has_kernel_devel_info?()
click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 59 def has_kernel_devel_info? unless instance_variable_defined?(:@has_kernel_devel_info) @has_kernel_devel_info = communicate.test('yum info kernel-devel-`uname -r`', sudo: true) end @has_kernel_devel_info end
has_rel_repo?()
click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 66 def has_rel_repo? unless instance_variable_defined?(:@has_rel_repo) rel = release_version @has_rel_repo = communicate.test("yum repolist --enablerepo=C#{rel}-base --enablerepo=C#{rel}-updates") end @has_rel_repo end
install_kernel_deps(opts=nil, &block)
click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 52 def install_kernel_deps(opts=nil, &block) unless has_kernel_devel_info? update_release_repos(opts, &block) install_kernel_devel(opts, &block) end end
install_kernel_devel(opts=nil, &block)
click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 90 def install_kernel_devel(opts=nil, &block) cmd = "yum install -y kernel-devel-`uname -r` #{enablerepo}" communicate.sudo(cmd, opts, &block) end
release_version()
click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 74 def release_version unless instance_variable_defined?(:@release_version) @release_version = nil version_pattern = /(\d+\.\d+(\.\d+)?)/ communicate.sudo('cat /etc/centos-release') do |type, data| v = VagrantVbguest::Version(data, version_pattern) @release_version = v if v end end @release_version end
update_release_repos(opts=nil, &block)
click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 86 def update_release_repos(opts=nil, &block) communicate.sudo('yum install -y centos-release', opts, &block) end
upgrade_kernel(opts=nil, &block)
click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 95 def upgrade_kernel(opts=nil, &block) communicate.sudo('yum update -y kernel', opts, &block) communicate.sudo('yum install -y kernel-devel', opts, &block) env.ui.info(I18n.t("vagrant_vbguest.centos.rebooting", vm_name: vm.name)) communicate.sudo('shutdown -r now', opts, &block) sleep_guard = installer_options[:reboot_timeout] begin sleep 10 sleep_guard -= 10 end while sleep_guard >= 0 && !@vm.communicate.ready? end
upgrade_kernel?()
click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 28 def upgrade_kernel? installer_options[:allow_kernel_upgrade] end