Libvirt Topologies

Simple Libvirt Topology

---
 topology_name: "libvirt_simple"
 resource_groups:
   -
     resource_group_name: "simple"
     res_group_type: "libvirt"
     res_defs:

       - res_name: "centos72"
         res_type: "libvirt_node"
         driver: 'qemu'
         uri: 'qemu:///system'
         image_src: 'file:///tmp/linchpin_centos71.img'
         count: 2
         memory: 2048
         vcpus: 2
         networks:
           - name: linchpin-centos72

       - res_name: "centos71"
         res_type: "libvirt_node"
         uri: 'qemu:///system'
         count: 1
         image_src: 'http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1608.qcow2.xz'
         memory: 2048
         vcpus: 2
         arch: x86_64
         networks:
           - name: linchpin-centos71

Note

Each set of nodes can only be assigned one network at this time.

Note

The above topology assumes both networks exist and are running at provision time. If they are not, or do not exist, they will not be created and will fail.

Complete Libvirt Topology

---
topology_name: "libvirt_test"
resource_groups:
  -
    resource_group_name: "libvirt1"
    res_group_type: "libvirt"
    res_defs:

      - res_name: "linchpin-centos72"
        res_type: "libvirt_network"
        ip: 192.168.77.100
        dhcp_start: 192.168.77.101
        dhcp_end: 192.168.77.112

      - res_name: "linchpin-centos74"
        res_type: "libvirt_network"

      - res_name: "centos72"
        res_type: "libvirt_node"
        uri: 'qemu:///system'
        count: 2
        memory: 2048
        vcpus: 2
        networks:
          - name: linchpin-centos72

      - res_name: "centos74"
        res_type: "libvirt_node"
        uri: 'qemu://libvirt.example.com/system'
        memory: 1024
        vcpus: 1
        networks:
          - name: linchpin-centos74

Libvirt Topology With cloud init config

---
topology_name: "libvirt"
resource_groups:
  -
    resource_group_name: "ex"
    res_group_type: "libvirt"
    res_defs:
      - res_name: "fedoramachine"
        res_type: "libvirt_node"
        uri: "qemu:///system"
        remote_user: "root" # remote user to be specified when not running as root
        count: 1
        driver: qemu
        image_src: 'https://pubmirror2.math.uh.edu/fedora-buffet/alt/atomic/stable/Fedora-Atomic-25-20170705.0/CloudImages/x86_64/images/Fedora-Atomic-25-20170705.0.x86_64.qcow2' # image url to be specified
        memory: 6144
        vcpus: 3
        arch: x86_64
        copy_ssh_keys: true # option to specify ssh keys while booting instance
        network_bridge: "virbr0" # optional specification to be added default is other than virbr0
        additional_storage: 15G # resizes the qcow2 images without requiring storage pools
        cloud_config:  # parameter to sepecify the cloud_config strings
          users:
            - name: admin
              gecos: Admin User
              groups: wheel
              sudo: ALL=(ALL) NOPASSWD:ALL
              ssh-import-id: None
              lock_passwd: true
        networks:
          - name: default

Note

as compared with the simple topology above, this topology defines and enables the network(s) with the res_type of libvirt_network.

Note

The linchpin-centos72 network will support dhcp, with a defined pool.

Note

The linchpin-centos74 is providing only the network definition. Each defined node would need to manually configure its own ip address.

Note

Libvirt provisioning does not yet support assoc_creds as simple adjustments can be made to a hypervisor to accommodate authentication.