class Vagrant::Plugin::V1::Guest
The base class for a guest. A guest represents an installed system within a machine that Vagrant
manages. There are some portions of Vagrant
which are OS-specific such as mounting shared folders and halting the machine, and this abstraction allows the implementation for these to be separate from the core of Vagrant
.
Attributes
The VM which this system is tied to.
Public Class Methods
Initializes the system. Any subclasses MUST make sure this method is called on the parent. Therefore, if a subclass overrides ‘initialize`, then you must call `super`.
# File lib/vagrant/plugin/v1/guest.rb, line 22 def initialize(vm) @vm = vm end
Public Instance Methods
Called to change the hostname of the virtual machine.
# File lib/vagrant/plugin/v1/guest.rb, line 86 def change_host_name(name) raise BaseError, _key: :unsupported_host_name end
Configures the given list of networks on the virtual machine.
The networks parameter will be an array of hashes where the hashes represent the configuration of a network interface. The structure of the hash will be roughly the following:
{
type: :static, ip: "192.168.33.10", netmask: "255.255.255.0", interface: 1
}
# File lib/vagrant/plugin/v1/guest.rb, line 81 def configure_networks(networks) raise BaseError, _key: :unsupported_configure_networks end
This method is automatically called when the system is available (when Vagrant
can successfully SSH into the machine) to give the system a chance to determine the distro and return a distro-specific system.
If this method returns nil, then this instance is assumed to be the most specific guest implementation.
# File lib/vagrant/plugin/v1/guest.rb, line 32 def distro_dispatch end
Halt the machine. This method should gracefully shut down the operating system. This method will cause ‘vagrant halt` and associated commands to block, meaning that if the machine doesn’t halt in a reasonable amount of time, this method should just return.
If when this method returns, the machine’s state isn’t “powered_off,” Vagrant
will proceed to forcefully shut the machine down.
# File lib/vagrant/plugin/v1/guest.rb, line 42 def halt raise BaseError, _key: :unsupported_halt end
Mounts a shared folder via NFS. This assumes that the exports via the host are already done.
# File lib/vagrant/plugin/v1/guest.rb, line 64 def mount_nfs(ip, folders) raise BaseError, _key: :unsupported_nfs end