diff --git a/lib/ansible/module_utils/facts/system/distribution.py b/lib/ansible/module_utils/facts/system/distribution.py index 3cf6763fc6..001f605e53 100644 --- a/lib/ansible/module_utils/facts/system/distribution.py +++ b/lib/ansible/module_utils/facts/system/distribution.py @@ -315,6 +315,15 @@ class DistributionFiles: elif 'SteamOS' in data: debian_facts['distribution'] = 'SteamOS' # nothing else to do, SteamOS gets correct info from python functions + elif 'Devuan' in data: + debian_facts['distribution'] = 'Devuan' + release = re.search(r"PRETTY_NAME=[^(]+ \(?([^)]+?)\)", data) + if release: + debian_facts['distribution_release'] = release.groups()[0] + version = re.search(r"VERSION_ID=\"(.*)\"", data) + if version: + debian_facts['distribution_version'] = version.group(1) + debian_facts['distribution_major_version'] = version.group(1) else: return False, debian_facts @@ -414,7 +423,7 @@ class Distribution(object): 'Ascendos', 'CloudLinux', 'PSBM', 'OracleLinux', 'OVS', 'OEL', 'Amazon', 'Virtuozzo', 'XenServer'], 'Debian': ['Debian', 'Ubuntu', 'Raspbian', 'Neon', 'KDE neon', - 'Linux Mint', 'SteamOS'], + 'Linux Mint', 'SteamOS', 'Devuan'], 'Suse': ['SuSE', 'SLES', 'SLED', 'openSUSE', 'openSUSE Tumbleweed', 'SLES_SAP', 'SUSE_LINUX', 'openSUSE Leap'], 'Archlinux': ['Archlinux', 'Antergos', 'Manjaro'], diff --git a/test/units/module_utils/test_distribution_version.py b/test/units/module_utils/test_distribution_version.py index 8472db214e..46261050d6 100644 --- a/test/units/module_utils/test_distribution_version.py +++ b/test/units/module_utils/test_distribution_version.py @@ -427,6 +427,28 @@ DISTRIB_DESCRIPTION="SteamOS 2.0" 'distribution_version': u'2.0' } }, + { + 'name': "Devuan", + 'input': { + '/etc/os-release': """PRETTY_NAME="Devuan GNU/Linux 1 (jessie)" +NAME="Devuan GNU/Linux" +VERSION_ID="1" +VERSION="1 (jessie)" +ID=devuan +HOME_URL="http://www.devuan.org/" +SUPPORT_URL="http://www.devuan.org/support/" +BUG_REPORT_URL="https://bugs.devuan.org/" +""" + }, + 'platform.dist': ('', '', ''), + 'result': { + 'distribution': u'Devuan', + 'distribution_major_version': u'1', + 'distribution_release': u'jessie', + 'os_family': 'Debian', + 'distribution_version': u'1' + } + }, { "platform.dist": [ "Ubuntu",