Repository: ansible/ansible

Issue:
ansible_distribution fact broken for SteamOS
##### ISSUE TYPE
 - Bug Report

##### COMPONENT NAME
setup

##### ANSIBLE VERSION
```
ansible 2.4.2.0
  config file = None
  configured module search path = [u'/home/[redacted]/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 2.7.12 (default, Nov 20 2017, 18:23:56) [GCC 5.4.0 20160609]
```

##### CONFIGURATION
no changes to Ansible configuration

##### OS / ENVIRONMENT
Control machine: Ubuntu 16.04.3
Managed machine: SteamOS 2.121

##### SUMMARY
The `ansible_distribution` fact for SteamOS is broken.

The value changed from `Steamos` (observe the lower case of the OS) to `SteamOS GNU/Linux` in Ansible 2.4. When running the reproduction command below with 2.3 against the same managed machine (no changes), the result is `Steamos`. Hence the change was not directly triggered by a change to OS meta data in SteamOS itself.

This breaks a lot of use cases, especially the best practice of using `ansible_distribution`-named vars includes and imports, since `{{ ansible_distribution }}.yaml` will be templated to `SteamOS GNU/Linux.yaml`, which is not a valid Linux file name.

Changing the fact value back to `Steamos` would maintain backwards-compatibility, while "SteamOS" (observe case) might arguably be more readable.

##### STEPS TO REPRODUCE
```
ansible -i managed_machine, -m setup all | grep ansible_distribution
```

##### EXPECTED RESULTS
```
"ansible_distribution": "Steamos",
```
or
```
"ansible_distribution": "SteamOS",
```
The value used to be "Steamos" until Ansible 2.3.2.0.

##### ACTUAL RESULTS
```
"ansible_distribution": "SteamOS GNU/Linux",
```


Discussion:
Files identified in the description:
* [lib/ansible/modules/system/setup.py](https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/system/setup.py)

If these files are inaccurate, please update the `component name` section of the description or use the `!component` bot command.

[click here for bot help](https://github.com/ansible/ansibullbot/blob/master/ISSUE_HELP.md)
<!--- boilerplate: components_banner --->
cc @david_obrien
[click here for bot help](https://github.com/ansible/ansibullbot/blob/master/ISSUE_HELP.md)
<!--- boilerplate: notify --->

Resolving patch:
diff --git a/lib/ansible/module_utils/facts/system/distribution.py b/lib/ansible/module_utils/facts/system/distribution.py
--- a/lib/ansible/module_utils/facts/system/distribution.py
+++ b/lib/ansible/module_utils/facts/system/distribution.py
@@ -311,6 +311,9 @@ def parse_distribution_file_Debian(self, name, data, path, collected_facts):
         elif 'Ubuntu' in data:
             debian_facts['distribution'] = 'Ubuntu'
             # nothing else to do, Ubuntu gets correct info from python functions
+        elif 'SteamOS' in data:
+            debian_facts['distribution'] = 'SteamOS'
+            # nothing else to do, SteamOS gets correct info from python functions
         else:
             return False, debian_facts
 
@@ -410,7 +413,7 @@ class Distribution(object):
                                 'Ascendos', 'CloudLinux', 'PSBM', 'OracleLinux', 'OVS',
                                 'OEL', 'Amazon', 'Virtuozzo', 'XenServer'],
                      'Debian': ['Debian', 'Ubuntu', 'Raspbian', 'Neon', 'KDE neon',
-                                'Linux Mint'],
+                                'Linux Mint', 'SteamOS'],
                      'Suse': ['SuSE', 'SLES', 'SLED', 'openSUSE', 'openSUSE Tumbleweed',
                               'SLES_SAP', 'SUSE_LINUX', 'openSUSE Leap'],
                      'Archlinux': ['Archlinux', 'Antergos', 'Manjaro'],


Test patch:
diff --git a/test/units/module_utils/test_distribution_version.py b/test/units/module_utils/test_distribution_version.py
--- a/test/units/module_utils/test_distribution_version.py
+++ b/test/units/module_utils/test_distribution_version.py
@@ -377,6 +377,34 @@
             'distribution_version': u'7.9'
         }
     },
+    {
+        'name': "SteamOS 2.0",
+        'input': {
+            '/etc/os-release': """PRETTY_NAME="SteamOS GNU/Linux 2.0 (brewmaster)"
+NAME="SteamOS GNU/Linux"
+VERSION_ID="2"
+VERSION="2 (brewmaster)"
+ID=steamos
+ID_LIKE=debian
+HOME_URL="http://www.steampowered.com/"
+SUPPORT_URL="http://support.steampowered.com/"
+BUG_REPORT_URL="http://support.steampowered.com/"
+""",
+            '/etc/lsb-release': """DISTRIB_ID=SteamOS
+DISTRIB_RELEASE=2.0
+DISTRIB_CODENAME=brewmaster
+DISTRIB_DESCRIPTION="SteamOS 2.0"
+"""
+        },
+        'platform.dist': ('Steamos', '2.0', 'brewmaster'),
+        'result': {
+            'distribution': u'SteamOS',
+            'distribution_major_version': u'2',
+            'distribution_release': u'brewmaster',
+            "os_family": "Debian",
+            'distribution_version': u'2.0'
+        }
+    },
     {
         "platform.dist": [
             "Ubuntu",