### Summary

SInce updating to `core 2.11.3` some `ansible_os_family` variables on some servers are being returned as Debian instead of Redhat (Amazon Linux2).



### Issue Type

Bug Report

### Component Name

yum

### Ansible Version

```console
$ ansible --version
ansible [core 2.11.3] 
  config file = /home/russell/repos/ansible/ansible.cfg
  configured module search path = ['/home/russell/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.9/site-packages/ansible
  ansible collection location = /home/russell/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.9.6 (default, Jun 30 2021, 10:22:16) [GCC 11.1.0]
  jinja version = 3.0.1
  libyaml = True

(Colleague running 2.11.3 version, I am still on 2.9.10 to make testing easier)
```


### Configuration

```console
$ ansible-config dump --only-changed
ANSIBLE_NOCOWS(/home/russell/repos/ansible/ansible.cfg) = False
DEFAULT_ROLES_PATH(/home/russell/repos/ansible/ansible.cfg) = ['/home/russell/repos/ansible/roles', '/home/russell/ansible/roles']
DEFAULT_STRATEGY(/home/russell/repos/ansible/ansible.cfg) = linear
DEFAULT_TIMEOUT(/home/russell/repos/ansible/ansible.cfg) = 30
DEFAULT_VAULT_PASSWORD_FILE(/home/russell/repos/ansible/ansible.cfg) = /home/russell/.vault_pass.txt
HOST_KEY_CHECKING(/home/russell/repos/ansible/ansible.cfg) = False

(Colleague running 2.11.3 version, I am still on 2.9.10 to make testing easier)
```


### OS / Environment

```
$ uname -r
4.14.104-95.84.amzn2.x86_64
```

### Steps to Reproduce

When running a playbook that uses `ansible_pkg_mgr` on ansible version `2.9.10` to a Amazon Linux2 host, `yum` is returned.

When running the same playbook on `core: 2.11.3` to a Amazon Linux2 host `apt` is returned.

Task in question:

```
- name: ensure sudo package is installed
  action:
    module: '{{ ansible_pkg_mgr }}'
    name: '{{ admin_users_sudo_package }}'
    state: present
  when: admin_users_sudo_package is defined```
```

Ran on 2.9.10:

```
TASK [ae.users : debug ansible family] *****************************************************************
ok: [ip-10-80-0-135.us-east-2.compute.internal] => {
    "msg": "family: RedHat"
}
ok: [ip-10-80-0-164.us-east-2.compute.internal] => {
    "msg": "family: RedHat"
}
ok: [ip-10-80-0-71.us-east-2.compute.internal] => {
    "msg": "family: Debian"
}
ok: [ip-10-80-0-211.us-east-2.compute.internal] => {
    "msg": "family: RedHat"
}

TASK [ae.users : ensure sudo package is installed] *****************************************************
ok: [ip-10-80-0-135.us-east-2.compute.internal]
ok: [ip-10-80-0-211.us-east-2.compute.internal]
ok: [ip-10-80-0-164.us-east-2.compute.internal]
ok: [ip-10-80-0-71.us-east-2.compute.internal]

```

Ran on 2.11.3

```
TASK [ae.users : ensure sudo package is installed] ********************************************************************************
ok: [ip-10-18-0-76.us-west-2.compute.internal]
ok: [ip-10-18-0-171.us-west-2.compute.internal]
[WARNING]: Updating cache and auto-installing missing dependency: python-apt
fatal: [ec2-44-225-183-160.us-west-2.compute.amazonaws.com]: FAILED! => {"changed": false, "cmd": "apt-get update", "msg": "[Errno 2] No such file or directory", "rc": 2, "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
```

Host in question:

```
root@x-useast2-es-3[x-useast2]:~$ uname
Linux

root@x-useast2-es-3[x-useast2]:~$ uname -r
4.14.104-95.84.amzn2.x86_64
```

### Expected Results

I expect yum to returned on yum based hosts, not apt.

### Actual Results

```console
[WARNING]: Updating cache and auto-installing missing dependency: python-apt
fatal: [ec2-44-225-183-160.us-west-2.compute.amazonaws.com]: FAILED! => {"changed": false, "cmd": "apt-get update", "msg": "[Errno 2] No such file or directory", "rc": 2, "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}```
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
continue
                    
                    
                    display.debug("extending task lists for all hosts with included blocks")
                    for host in hosts_left:
                        iterator.add_tasks(host, all_blocks[host])
                    display.debug("done extending task lists")
                    display.debug("done processing included files")
                display.debug("results queue empty")
                display.debug("checking for any_errors_fatal")
                failed_hosts = []
                unreachable_hosts = []
                for res in results:
                    
                    
                    if (res.is_failed() or res._task.action in C._ACTION_META) and iterator.is_failed(res._host):
                        failed_hosts.append(res._host.name)
                    elif res.is_unreachable():
                        unreachable_hosts.append(res._host.name)
                
                if any_errors_fatal and (len(failed_hosts) > 0 or len(unreachable_hosts) > 0):
                    dont_fail_states = frozenset([iterator.ITERATING_RESCUE, iterator.ITERATING_ALWAYS])
                    for host in hosts_left:
                        (s, _) = iterator.get_next_task_for_host(host, peek=True)
                        
                        
                        s = iterator.get_active_state(s)
                        if s.run_state not in dont_fail_states or \
                           s.run_state == iterator.ITERATING_RESCUE and s.fail_state & iterator.FAILED_RESCUE != 0:
                            self._tqm._failed_hosts[host.name] = True