defaults = { 'apt': { 'packages': { 'libvirt-clients': {}, 'libvirt-daemon-system': {}, 'netcat-openbsd': {}, # for virt-manager 'qemu-utils': {}, 'qemu-system-x86': {}, }, }, 'icinga2_api': { 'vmhost': { 'services': { 'LIBVIRT PROCESS': { 'command_on_monitored_host': '/usr/lib/nagios/plugins/check_procs -C libvirtd -c 1:', }, 'QEMU VM STATUS': { 'command_on_monitored_host': 'sudo /usr/local/share/icinga/plugins/check_vm_status', 'vars.notification.mail': True, }, }, }, }, 'pacman': { 'packages': { 'edk2-ovmf': {}, 'libvirt': {}, }, }, } if node.os == 'debian' and node.os_version[0] < 11: defaults['apt']['packages']['qemu-kvm'] = {} if node.has_bundle('zfs'): defaults['apt']['packages']['libvirt-daemon-driver-storage-zfs'] = {} if node.has_bundle('nftables'): defaults['apt']['packages']['firewalld'] = { 'needed_by': { 'pkg_apt:libvirt-daemon-system', }, } if node.has_bundle('arch-with-gui'): defaults['pacman']['packages']['virt-manager'] = {} @metadata_reactor.provides( 'users', ) def libvirt_group_for_admins(metadata): result = {} for user, config in metadata.get('users', {}).items(): if 'ALL' in config.get('sudo_commands', set()): result[user] = { 'groups': { 'libvirt', }, } return { 'users': result, }