2020-08-18 15:27:55 +02:00
|
|
|
defaults = {
|
|
|
|
'apt': {
|
|
|
|
'packages': {
|
|
|
|
'libvirt-clients': {},
|
|
|
|
'libvirt-daemon-system': {},
|
2021-05-23 12:24:00 +02:00
|
|
|
'netcat-openbsd': {}, # for virt-manager
|
2020-11-13 14:47:40 +01:00
|
|
|
'qemu-utils': {},
|
|
|
|
'qemu-system-x86': {},
|
2020-04-11 11:25:24 +02:00
|
|
|
},
|
2020-08-18 15:27:55 +02:00
|
|
|
},
|
2020-11-21 20:58:55 +01:00
|
|
|
'icinga2_api': {
|
|
|
|
'vmhost': {
|
|
|
|
'services': {
|
2020-12-21 09:50:15 +01:00
|
|
|
'LIBVIRT PROCESS': {
|
|
|
|
'command_on_monitored_host': '/usr/lib/nagios/plugins/check_procs -C libvirtd -c 1:',
|
|
|
|
},
|
2020-11-21 20:58:55 +01:00
|
|
|
'QEMU VM STATUS': {
|
|
|
|
'command_on_monitored_host': 'sudo /usr/local/share/icinga/plugins/check_vm_status',
|
2020-11-22 08:24:44 +01:00
|
|
|
'vars.notification.mail': True,
|
2020-11-21 20:58:55 +01:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2022-03-11 13:58:38 +01:00
|
|
|
'pacman': {
|
|
|
|
'packages': {
|
2022-03-11 14:03:24 +01:00
|
|
|
'edk2-ovmf': {},
|
2022-03-11 13:58:38 +01:00
|
|
|
'libvirt': {},
|
|
|
|
'qemu-headless': {},
|
|
|
|
},
|
|
|
|
},
|
2020-08-18 15:27:55 +02:00
|
|
|
}
|
2021-05-23 12:24:00 +02:00
|
|
|
|
2021-05-23 14:54:47 +02:00
|
|
|
if node.os == 'debian' and node.os_version[0] < 11:
|
|
|
|
defaults['apt']['packages']['qemu-kvm'] = {}
|
|
|
|
|
2021-05-23 12:24:00 +02:00
|
|
|
if node.has_bundle('zfs'):
|
|
|
|
defaults['apt']['packages']['libvirt-daemon-driver-storage-zfs'] = {}
|
2021-06-03 13:59:15 +02:00
|
|
|
|
|
|
|
if node.has_bundle('nftables'):
|
|
|
|
defaults['apt']['packages']['firewalld'] = {
|
|
|
|
'needed_by': {
|
|
|
|
'pkg_apt:libvirt-daemon-system',
|
|
|
|
},
|
|
|
|
}
|
2021-08-22 07:25:46 +02:00
|
|
|
|
2022-03-11 13:58:38 +01:00
|
|
|
if node.has_bundle('arch-with-gui'):
|
|
|
|
defaults['pacman']['packages']['virt-manager'] = {}
|
|
|
|
|
2021-08-22 07:25:46 +02:00
|
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
|
|
'users',
|
|
|
|
)
|
|
|
|
def libvirt_group_for_admins(metadata):
|
|
|
|
result = {}
|
|
|
|
for user, config in metadata.get('users', {}).items():
|
|
|
|
if config.get('is_admin', False):
|
|
|
|
result[user] = {
|
|
|
|
'groups': {
|
|
|
|
'libvirt',
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
return {
|
|
|
|
'users': result,
|
|
|
|
}
|