1
0
IaC/ansible/roles/libvirt-server/tasks/main.yml

144 lines
3.7 KiB
YAML

---
- 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