Skip to content

dhoppeIT/terraform-proxmox-vm_qemu

Repository files navigation

terraform-proxmox-vm_qemu

Terraform module to manage the following Proxmox resources:

  • proxmox_vm_qemu

Usage

Copy and paste the following code snippet to your Terraform configuration, specify the required variables and run the command terraform init.

module "proxmox_vm_qemu" {
  source  = "gitlab.com/terraform-child-modules-48151/terraform-proxmox-vm-qemu/local"
  version = "1.0.1"
}

Requirements

Name Version
terraform >= 1.0
proxmox 3.0.2-rc01

Providers

Name Version
proxmox 3.0.2-rc01

Modules

No modules.

Resources

Name Type
proxmox_vm_qemu.this resource

Inputs

Name Description Type Default Required
agent Set to 1 to enable the QEMU Guest Agent number 0 no
agent_timeout Timeout in seconds to keep trying to obtain an IP address from the guest agent one we have a connection number 90 no
automatic_reboot Automatically reboot the VM when parameter changes require this bool true no
balloon The minimum amount of memory to allocate to the VM in Megabytes, when Automatic Memory Allocation is desired number 0 no
bios The BIOS to use, options are seabios or ovmf for UEFI string "seabios" no
bootdisk Enable booting from specified disk string null no
ci_wait How to long in seconds to wait for before provisioning number 30 no
cicustom Instead specifying ciuser, cipasword, etc. you can specify the path to a custom cloud-init config file here string null no
cipassword Override the default cloud-init user's password string null no
ciupgrade Whether to upgrade the packages on the guest during provisioning bool false no
ciuser Override the default cloud-init user for provisioning string null no
clone The base VM name from which to clone to create the new VM string null no
clone_id The base VM id from which to clone to create the new VM number null no
cpu The cpu block is used to configure the CPU settings map(any) {} no
define_connection_info Whether to let terraform define the (SSH) connection parameters for preprovisioners bool true no
desc The description of the VM string null no
disk The disk block is used to configure the disk devices list(any) [] no
efidisk The efidisk block is used to configure the disk used for EFI data storage map(any) {} no
force_create If false, and a VM of the same name, on the same node exists, terraform will attempt to reconfigure that VM with these settings bool false no
force_recreate_on_change_of If the value of this string changes, the VM will be recreated string null no
full_clone Set to true to create a full clone, or false to create a linked clone bool true no
hagroup The HA group identifier the resource belongs to (requires hastate to be set!) string null no
hastate Requested HA state for the resource string null no
hotplug Comma delimited list of hotplug features to enable string "network,disk,usb" no
ipconfig0 The first IP address to assign to the gues string "" no
ipconfig1 The second IP address to assign to the guest string "" no
memory The amount of memory to allocate to the VM in Megabytes number 0 no
name The name of the VM within Proxmox string n/a yes
nameserver Sets default DNS server for guest string null no
network The network block is used to configure the network devices list(any) [] no
onboot Whether to have the VM startup after the PVE node starts bool false no
os_network_config Network configuration to be copied into the VM when preprovisioning ubuntu or centos guests string null no
os_type Which provisioning method to use, based on the OS type string null no
pci The pci block is used to configure PCI devices list(any) [] no
pool The resource pool to which the VM will be added string null no
protection Enable/disable the VM protection from being removed bool false no
pxe If set to true, enable PXE boot of the VM bool null no
qemu_os The type of OS in the guest string "l26" no
scsihw The SCSI controller to emulate string "lsi" no
searchdomain Sets default DNS search domain suffix string null no
serial The serial block is used to configure the serial devices list(any) [] no
skip_ipv4 Tells proxmox that acquiring an IPv4 address from the qemu guest agent isn't required, it will still return an ipv4 address if it could obtain one bool null no
skip_ipv6 Tells proxmox that acquiring an IPv6 address from the qemu guest agent isn't required, it will still return an ipv6 address if it could obtain one bool null no
ssh_forward_ip The IP (and optional colon separated port), to use to connect to the host for preprovisioning string null no
ssh_private_key The private key to use when connecting to the guest for preprovisioning string null no
ssh_user The user with which to connect to the guest for preprovisioning string null no
sshkeys Newline delimited list of SSH public keys to add to authorized keys file for the cloud-init user string null no
startup The startup and shutdown behaviour string "" no
tablet Enable/disable the USB tablet device bool true no
tags Tags of the VM string null no
target_node The name of the Proxmox Node on which to place the VM string null no
target_nodes A list of PVE node names on which to place the VM list(string) null no
usb The usb block is used to configure USB devices list(any) [] no
vga The vga block is used to configure the display device list(any) [] no
vm_state The desired state of the VM, options are running, stopped and started string "running" no
vmid The ID of the VM in Proxmox number 0 no

Outputs

Name Description
default_ipv4_address The default IPv4 address
default_ipv6_address The default IPv6 address
ssh_host The hostname or IP to use to connect to the VM for preprovisioning
ssh_port The port to connect to the VM over SSH for preprovisioning

Authors

Created and maintained by Dennis Hoppe.

License

Apache 2 licensed. See LICENSE for full details.