diff --git a/lib/ansible/module_utils/facts/virtual/freebsd.py b/lib/ansible/module_utils/facts/virtual/freebsd.py index 47360aa6cc9..cfaf880ee87 100644 --- a/lib/ansible/module_utils/facts/virtual/freebsd.py +++ b/lib/ansible/module_utils/facts/virtual/freebsd.py @@ -41,7 +41,8 @@ class FreeBSDVirtual(Virtual, VirtualSysctlDetectionMixin): 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_product_facts = self.detect_virt_product('kern.vm_guest') or self.detect_virt_product( + 'hw.hv_vendor') or self.detect_virt_product('security.jail.jailed') virtual_facts.update(virtual_product_facts) if virtual_facts['virtualization_type'] == '': diff --git a/lib/ansible/module_utils/facts/virtual/sysctl.py b/lib/ansible/module_utils/facts/virtual/sysctl.py index b1583949fea..1c4a02071d1 100644 --- a/lib/ansible/module_utils/facts/virtual/sysctl.py +++ b/lib/ansible/module_utils/facts/virtual/sysctl.py @@ -48,6 +48,9 @@ class VirtualSysctlDetectionMixin(object): elif out.rstrip() == 'RHEV Hypervisor': virtual_product_facts['virtualization_type'] = 'RHEV' virtual_product_facts['virtualization_role'] = 'guest' + elif (key == 'security.jail.jailed') and (out.rstrip() == '1'): + virtual_product_facts['virtualization_type'] = 'jails' + virtual_product_facts['virtualization_role'] = 'guest' return virtual_product_facts