mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
parent
29c3bb48e9
commit
545edc9114
3 changed files with 13 additions and 2 deletions
2
changelogs/fragments/49158-detect-kvm-on-freebsd.yaml
Normal file
2
changelogs/fragments/49158-detect-kvm-on-freebsd.yaml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- Detect FreeBSD KVM guests in facts (https://github.com/ansible/ansible/issues/49158)
|
|
@ -19,9 +19,10 @@ __metaclass__ = type
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from ansible.module_utils.facts.virtual.base import Virtual, VirtualCollector
|
from ansible.module_utils.facts.virtual.base import Virtual, VirtualCollector
|
||||||
|
from ansible.module_utils.facts.virtual.sysctl import VirtualSysctlDetectionMixin
|
||||||
|
|
||||||
|
|
||||||
class FreeBSDVirtual(Virtual):
|
class FreeBSDVirtual(Virtual, VirtualSysctlDetectionMixin):
|
||||||
"""
|
"""
|
||||||
This is a FreeBSD-specific subclass of Virtual. It defines
|
This is a FreeBSD-specific subclass of Virtual. It defines
|
||||||
- virtualization_type
|
- virtualization_type
|
||||||
|
@ -39,6 +40,14 @@ class FreeBSDVirtual(Virtual):
|
||||||
virtual_facts['virtualization_type'] = 'xen'
|
virtual_facts['virtualization_type'] = 'xen'
|
||||||
virtual_facts['virtualization_role'] = 'guest'
|
virtual_facts['virtualization_role'] = 'guest'
|
||||||
|
|
||||||
|
if virtual_facts['virtualization_type'] == '':
|
||||||
|
virtual_product_facts = self.detect_virt_product('kern.vm_guest') or self.detect_virt_product('hw.hv_vendor')
|
||||||
|
virtual_facts.update(virtual_product_facts)
|
||||||
|
|
||||||
|
if virtual_facts['virtualization_type'] == '':
|
||||||
|
virtual_vendor_facts = self.detect_virt_vendor('hw.model')
|
||||||
|
virtual_facts.update(virtual_vendor_facts)
|
||||||
|
|
||||||
return virtual_facts
|
return virtual_facts
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ class VirtualSysctlDetectionMixin(object):
|
||||||
if self.sysctl_path:
|
if self.sysctl_path:
|
||||||
rc, out, err = self.module.run_command("%s -n %s" % (self.sysctl_path, key))
|
rc, out, err = self.module.run_command("%s -n %s" % (self.sysctl_path, key))
|
||||||
if rc == 0:
|
if rc == 0:
|
||||||
if re.match('(KVM|Bochs|SmartDC).*', out):
|
if re.match('(KVM|kvm|Bochs|SmartDC).*', out):
|
||||||
virtual_product_facts['virtualization_type'] = 'kvm'
|
virtual_product_facts['virtualization_type'] = 'kvm'
|
||||||
virtual_product_facts['virtualization_role'] = 'guest'
|
virtual_product_facts['virtualization_role'] = 'guest'
|
||||||
elif re.match('.*VMware.*', out):
|
elif re.match('.*VMware.*', out):
|
||||||
|
|
Loading…
Add table
Reference in a new issue