Class: Vmit::Plugins::Bootstrap

Inherits:
Clamp::Command
  • Object
show all
Defined in:
lib/vmit/plugins/bootstrap.rb

Overview

Bootstrap allows to initialize a virtual machine from (currently) a (SUSE) repository.

It will perform an autoinstallation based on the repository.

Instance Method Summary collapse

Instance Method Details

#executeObject



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/vmit/plugins/bootstrap.rb', line 68

def execute
  Vmit.logger.info 'Starting bootstrap'
  workspace = Vmit::Workspace.from_pwd

  Vmit.logger.info '  Deleting old images'
  FileUtils.rm_f(Dir.glob('*.qcow2'))
  opts = {}
  opts[:disk_size] = disk_size if disk_size
  workspace.disk_image_init!(opts)
  workspace.save_config!

  location = location_list.join(' ')
  install_media = Vmit::InstallMedia.scan(location)

  Vmit.logger.info "Install media: #{install_media}"

  packages.each do |pkg|
    install_media.unattended_install.config.add_packages!(pkg)
  end

  vm = Vmit::LibvirtVM.from_pwd
  install_media.autoinstall(vm)

  Vmit.logger.info 'Creating snapshot of fresh system.'
  workspace.disk_snapshot!
  Vmit.logger.info 'Bootstraping done. Call vmit run to start your system.'
end