stackhpc.libvirt-vm

Libvirt VM

==========

This guide explains how to set up and manage Virtual Machines (VMs) on a KVM hypervisor using a specific role.

Requirements

  • The host machine must have Virtualization Technology (VT) enabled.
  • It should already be set up with libvirt and KVM.

Role Variables

Here are the main settings you can define:

  • Console Log Directory: The default folder for VM console logs, if no specific path is provided. Default: /var/log/libvirt-consoles.

  • UUID Generation: Set whether the UUID (a unique identifier) should be generated based on the VM name (this can be random instead). Default: False.

  • Image Cache Path: Directory for storing downloaded images. Default: /tmp/.

  • Instance Images Path: Where instance images are saved. Default: /var/lib/libvirt/images.

  • Backing Volume Type: The type of storage used (e.g., block, file, network). Default: volume.

  • Volume Format: The format for created volumes. Default: qcow2.

  • Device Appearance: How the device shows up in the guest OS. Default: disk.

  • Virtualization Engine: The virtualization engine used (auto-detect if not specified).

  • Emulator Path: Path for the emulator binary (auto-detect if not specified).

  • CPU Mode: Default CPU mode if unspecified.

  • CPU Architecture: Default is x86_64.

  • Connection URI: Override the libvirt connection URI if needed. See libvirt docs for details.

  • Virsh Environment Variables: Variables added when running virsh commands.

  • Clock Offset: Set the clock offset value for the instance. Defaults to local time.

  • Trust Guest Filters: Set whether to trust guest receive filters. Default: false.

  • VM List: List of VMs to create or destroy, with details on each one like state, name, uuid, memory_mb, vcpus, and more.

  • USB Devices: List of USB devices to connect to the VM, needing vendor and product IDs.

  • Network Interfaces: Set up network interfaces with type and attachment details.

  • Console Logging: Control logging to a file or to a PTY (default is PTY).

  • Start & Auto-start: Options to control if the VM starts immediately or on host startup.

  • Boot Firmware: Choose boot firmware type, default is bios.

  • Custom XML File: Option to provide a modified XML template for defining VMs.

Deprecated Variables: Some older variables are no longer used. If libvirt_vms isn't set, a default VM spec using these variables will apply.

Dependencies

You need qemu-img (part of the qemu-utils package) if using qcow2 format drives.

Example Playbook

Here's a simple example of how to create VMs:

---
- name: Create VMs
  hosts: hypervisor
  roles:
    - role: stackhpc.libvirt-vm
      libvirt_vms:
        - state: present
          name: 'vm1'
          memory_mb: 512
          vcpus: 2
          volumes:
            - name: 'data1'
              device: 'disk'
              format: 'qcow2'
              capacity: '400GB'
              pool: 'my-pool'
            - name: 'debian-10.2.0-amd64-netinst.iso'
              type: 'file'
              device: 'cdrom'
              format: 'raw'
              target: 'hda'
            - type: 'block'
              format: 'raw'
              dev: '/dev/sda'
          interfaces:
            - network: 'br-datacentre'
          usb_devices:
            - vendor: '0x0781'
              product: '0x5567'
        - state: present
          name: 'vm2'
          memory_mb: 1024
          vcpus: 1
          volumes:
            - name: 'data2'
              device: 'disk'
              format: 'qcow2'
              capacity: '200GB'
              pool: 'my-pool'
          interfaces:
            - type: 'direct'
              source:
                dev: 'eth123'
                mode: 'private'

Author Information

Informazioni sul progetto

Role to configure and create VMs on a Libvirt/KVM hypervisor

Installa
ansible-galaxy install stackhpc.libvirt-vm
Licenza
Unknown
Download
380.3k
Proprietario
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.