diff --git a/defaults/main.yml b/defaults/main.yml index 899397d..4142463 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -162,3 +162,27 @@ libvirt_host_vnc_tls_enabled: false # Whether to configure AppArmor for directory storage pools. libvirt_host_configure_apparmor: "{{ libvirt_host_install_daemon | bool }}" + +# Whether to disable and mask libvirt modular systemd units +# See: https://libvirt.org/daemons.html +libvirt_disable_modular_systemd_units: true + +# A list of libvirt modular daemon drivers +libvirtd_modular_daemon_drivers: + - qemu + - interface + - network + - nodedev + - nwfilter + - proxy + - secret + - storage + +# A list of libvirt modular systemd services. +# The {driver} replacement string is populated +# from libvirtd_modular_daemon_drivers. +libvirtd_modular_services: + - virt{driver}d.service + - virt{driver}d.socket + - virt{driver}d-ro.socket + - virt{driver}d-admin.socket diff --git a/tasks/config.yml b/tasks/config.yml index 49c4e71..1ae4a30 100644 --- a/tasks/config.yml +++ b/tasks/config.yml @@ -221,3 +221,7 @@ enabled: "{{ libvirt_host_tls_listen | bool }}" - service: libvirtd enabled: true + +- name: Disable libvirt modular systemd units + include_tasks: disable-modular-systemd-units.yml + when: libvirt_disable_modular_systemd_units diff --git a/tasks/disable-modular-systemd-units.yml b/tasks/disable-modular-systemd-units.yml new file mode 100644 index 0000000..ec2e961 --- /dev/null +++ b/tasks/disable-modular-systemd-units.yml @@ -0,0 +1,13 @@ +--- + +- name: Disable and mask libvirtd modular systemd services and sockets + systemd: + name: "{{ service_name }}" + state: stopped + enabled: false + masked: true + loop: "{{ libvirtd_modular_daemon_drivers | product(libvirtd_modular_services) }}" + vars: + service_name: "{{ item[1].format(driver=item[0]) }}" + loop_control: + label: "{{ service_name }}"