--- - name: install libvirt server packages become: true community.general.pacman: name: "{{ libvirt_server_packages }}" state: latest update_cache: true reason: explicit when: - ansible_os_family == 'Arch' - name: add user to libvirt group become: true ansible.builtin.user: name: "{{ ansible_user }}" groups: libvirt append: true - name: start and enable libvirt service become: true ansible.builtin.service: name: libvirtd.service state: started enabled: yes - name: define vm cluster network libvirt_network_name: "{{ libvirt_cluster_network_name }}" libvirt_network_domain: "{{ libvirt_cluster_network_name }}" community.libvirt.virt_net: name: "{{ libvirt_cluster_network_name }}" command: define xml: '{{ lookup("template", "network.xml.j2") }}' - name: build vm cluster network community.libvirt.virt_net: name: "{{ libvirt_cluster_network_name }}" command: build - name: start vm cluster network community.libvirt.virt_net: name: "{{ libvirt_cluster_network_name }}" state: active autostart: true - name: remove default libvirt network community.libvirt.virt_net: name: default state: absent - name: create libvirt zfs dataset community.general.zfs: name: "{{ libvirt_zfs_pool_path }}" state: present extra_zfs_properties: - canmount: off - mountpoint: none - compression: off - primarycache: metadata - secondarycache: none - reservation: none - refreservation: none - dedup: off - encryption: off - volmode: dev - devices: off - atime: off - name: define zfs storage pool libvirt_pool_type: zfs libvirt_pool_name: "{{ libvirt_zfs_pool_name }}" libvirt_pool_path: "{{ libvirt_zfs_pool_path }}" community.libvirt.virt_pool: name: "{{ libvirt_zfs_pool_name }}" command: define xml: '{{ lookup("template", "pool.xml.j2") }}' - name: build zfs storage pool community.libvirt.virt_pool: name: "{{ libvirt_zfs_pool_name }}" command: build - name: start zfs storage pool community.libvirt.virt_pool: name: "{{ libvirt_zfs_pool_name }}" state: active autostart: true - name: create iso storage dir become: true ansible.builtin.file: path: "{{ libvirt_iso_pool_path }}" state: directory owner: root group: libvirt mode: 0775 - name: define iso storage pool libvirt_pool_type: dir libvirt_pool_name: "{{ libvirt_iso_pool_name }}" libvirt_pool_path: "{{ libvirt_iso_pool_path }}" community.libvirt.virt_pool: name: "{{ libvirt_iso_pool_name }}" command: define xml: '{{ lookup("template", "pool.xml.j2") }}' - name: build iso storage pool community.libvirt.virt_pool: name: "{{ libvirt_iso_pool_name }}" command: build - name: start iso storage pool community.libvirt.virt_pool: name: "{{ libvirt_iso_pool_name }}" state: active autostart: true - name: create qcow storage dir become: true ansible.builtin.file: path: "{{ libvirt_qcow_pool_path }}" state: directory owner: root group: libvirt mode: 0775 - name: define qcow storage pool libvirt_pool_type: dir libvirt_pool_name: "{{ libvirt_qcow_pool_name }}" libvirt_pool_path: "{{ libvirt_qcow_pool_path }}" community.libvirt.virt_pool: name: "{{ libvirt_qcow_pool_name }}" command: define xml: '{{ lookup("template", "pool.xml.j2") }}' - name: build qcow storage pool community.libvirt.virt_pool: name: "{{ libvirt_qcow_pool_name }}" command: build - name: start qcow storage pool community.libvirt.virt_pool: name: "{{ libvirt_qcow_pool_name }}" state: active autostart: true