Maintainer | Sean Whitton <spwhitton@spwhitton.name> |
---|---|
Safe Haskell | None |
Language | Haskell98 |
Synopsis
- newtype NumVCPUs = NumVCPUs Int
- newtype MiBMemory = MiBMemory Int
- data AutoStart
- data DiskImageType = Raw
- installed :: Property DebianLike
- defaultNetworkAutostarted :: Property DebianLike
- defaultNetworkStarted :: Property DebianLike
- defined :: DiskImageType -> MiBMemory -> NumVCPUs -> AutoStart -> Host -> Property (HasInfo + DebianLike)
Documentation
Whether the virtual machine should be started after it is defined, and at host system boot
installed :: Property DebianLike Source #
Install basic libvirt components
defaultNetworkAutostarted :: Property DebianLike Source #
Ensure that the default libvirt network is set to autostart, and start it.
On Debian, it is not started by default after installation of libvirt.
defaultNetworkStarted :: Property DebianLike Source #
Ensure that the default libvirt network is started.
defined :: DiskImageType -> MiBMemory -> NumVCPUs -> AutoStart -> Host -> Property (HasInfo + DebianLike) Source #
Builds a disk image with the properties of the given Host, installs a libvirt configuration file to boot the image, and if it is set to autostart, start the VM.
Note that building the disk image happens only once. So if you change the
properties of the given Host, this property will not modify the disk image.
In order to later apply properties to the VM, you should spin it directly, or
arrange to have it spun with a property like runPropellor
, or use
Conductor
from the VM host.
Suggested usage in config.hs
:
mybox = host "mybox.example.com" $ props & osDebian (Stable "stretch") X86_64 & Libvirt.defaultNetworkAutostarted & Libvirt.defined Libvirt.Raw (Libvirt.MiBMemory 2048) (Libvirt.NumVCPUs 2) Libvirt.NoAutoStart subbox subbox = host "subbox.mybox.example.com" $ props & osDebian Unstable X86_64 & hasPartition ( partition EXT4 `mountedAt` "/" `addFreeSpace` MegaBytes 10240 ) & Apt.installed ["linux-image-amd64"] & Grub.installed PC & ipv4 "192.168.122.31" & Network.static "ens3" (IPv4 "192.168.122.31") (Just (Network.Gateway (IPv4 "192.168.122.1"))) `requires` Network.cleanInterfacesFile & Hostname.sane