1
0
IaC/ansible/roles/libvirt-server/tasks/main.yml
2022-09-05 21:27:26 +12:00

158 lines
3.9 KiB
YAML

---
- name: install libvirt server packages
become: true
community.general.pacman:
name: "{{ libvirt_server_packages }}"
state: latest
update_cache: true
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: set cluster network variables
set_fact:
libvirt_network_name: "{{ libvirt_cluster_network_name }}"
libvirt_network_domain: "{{ libvirt_cluster_network_name }}"
- name: define vm cluster network
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: create
- 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: set zfs pool variables
set_fact:
libvirt_pool_type: zfs
libvirt_pool_name: "{{ libvirt_zfs_pool_name }}"
libvirt_pool_source: "{{ libvirt_zfs_pool_path }}"
libvirt_pool_target: ""
- name: define zfs storage pool
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: set iso pool variables
set_fact:
libvirt_pool_type: dir
libvirt_pool_name: "{{ libvirt_iso_pool_name }}"
libvirt_pool_source: ""
libvirt_pool_target: "{{ libvirt_iso_pool_path }}"
- 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
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: set iso pool variables
set_fact:
libvirt_pool_type: dir
libvirt_pool_name: "{{ libvirt_qcow_pool_name }}"
libvirt_pool_source: ""
libvirt_pool_target: "{{ libvirt_qcow_pool_path }}"
- 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
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