New OS created due to facts mismatch for operatingsystem for RHSM, Puppet and Ansible
Description of problem:
- When rhsm or puppet is sending facts for the OS it updates the facts to the name of "RedHat".
- If an Ansible role is later run it uses "RedHatEnterprise" (RHEL 8) or "RedHatEnterpriseServer" (RHEL 7).
Version-Release number of selected component (if applicable):
- Satellite 6.10.1
- The OS is created automatically in Hosts => Operating Systems
- To check for the name go into each OS and check the Name field
Steps to Reproduce:
1. Register RHEl 8 client to Satellite
2. Run "subscription-manager facts --update"
3. The OS should be set to an OS which Name is "RedHat"
4. Run any playbook on the client that gathers facts
5. The OS for the client is updated to an OS that has "RedHatEnterprise" in its name
If the option "ignore_facts_for_operating system" is set to "no" (default) the OS for a client is updated
to the last fact that was reported. This leads to the OS for a client to constantly switch between the
different OS and double the OS entries created than required.
The Ansible reported fact for OS should be matched to the one that is reported by RHSM or Puppet.
- The fact matcher for Ansible seems to use ansible_lsb.id which delivers different values'
Fixes #33981 - fix the RHEL OS name parsing
When the parser lived in the foreman_ansible plugin, it started to
prefer the lsb facts over the distribution one, which is correct
for more details.
However the Red Hat Enterprise Linux is reported as either
RedHatEnterprise for RHEL 8 or RedHatEnterpriseServer or
RedHatEnterpriseWorkstation for RHEL 7. When user has more fact sources
like RHSM or Puppet, the host flips between 2 operating systems. This
add the additional mapping of these extra values.
It also adds anonymized facts snapshots from RHEL 7 and RHEL 8 machines.