From a72a25d19106ad959d936cc0772f95e96074899e Mon Sep 17 00:00:00 2001 From: dgeo Date: Tue, 15 Oct 2019 01:01:27 +0200 Subject: [PATCH] [backport 2.9] facts: detect FreeBSD jails guest (#62857) (#62913) * facts: detect FreeBSD jails guest (#62857) * facts: detect FreeBSD jails * PEP8 fix * changelog for pr62913 --- changelogs/fragments/62857-detect-freebsd-jails.yaml | 2 ++ lib/ansible/module_utils/facts/virtual/freebsd.py | 3 ++- lib/ansible/module_utils/facts/virtual/sysctl.py | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/62857-detect-freebsd-jails.yaml diff --git a/changelogs/fragments/62857-detect-freebsd-jails.yaml b/changelogs/fragments/62857-detect-freebsd-jails.yaml new file mode 100644 index 00000000000..e7b48b52355 --- /dev/null +++ b/changelogs/fragments/62857-detect-freebsd-jails.yaml @@ -0,0 +1,2 @@ +bugfixes: + - facts/virtual #62857 detect FreeBSD jails guest 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