##### SUMMARY

Ironically, specifying `use: redhat` for the Ansible `hostname` module makes the task fail for a Red Hat control node, while dropping the argument makes it succeed.

##### ISSUE TYPE
- Documentation Report

##### COMPONENT NAME

- `hostname` module, `RedHatStrategy`
- https://github.com/ansible/ansible/blob/stable-2.9/lib/ansible/modules/system/hostname.py

##### ANSIBLE VERSION

```text
ansible 2.9.10
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/ec2-user/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Mar 20 2020, 17:08:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
```

##### CONFIGURATION

```text
DEFAULT_LOG_PATH(/etc/ansible/ansible.cfg) = /var/log/ansible.log
LOCALHOST_WARNING(env: ANSIBLE_LOCALHOST_WARNING) = False
```

##### OS / ENVIRONMENT

Managed node: RHEL 7.6 AWS VM

Contents of `/etc/os-release`:

```
NAME="Red Hat Enterprise Linux Server"
VERSION="7.6 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.6"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.6 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.6:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.6
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.6"
```

Contents of `cat /etc/sysconfig/network`:

```
# Created by cloud-init on instance boot automatically, do not edit.
#
NETWORKING=yes
```

Snippet from `hostnamectl`:

```
    Virtualization: xen
  Operating System: Red Hat Enterprise Linux Server 7.6 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.6:GA:server
            Kernel: Linux 3.10.0-957.21.3.el7.x86_64
      Architecture: x86-64
```

##### STEPS TO REPRODUCE

**BROKEN version**:

```yaml
- name: change hostname
  hosts: all
  tasks:
    - hostname:
        name: newhost
        use: redhat
      become: true
```

**WORKING version** (remove `use`):

```yaml
- name: change hostname
  hosts: all
  tasks:
    - hostname:
        name: newhost
      become: true
```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS

`use` should make things more reliable rather than less.

##### ACTUAL RESULTS

```paste below
TASK [hostname] ********************************
fatal: [xx.xx.xx.xx]: FAILED! => {"changed": false, "msg": "Command failed rc=1, out=, err=Unknown operation newhost\n"}
```

if not os.path.isfile(self.HOSTNAME_FILE):
            try:
                open(self.HOSTNAME_FILE, "a").write("")
            except IOError as e:
                self.module.fail_json(msg="failed to write file: %s" %
                                          to_native(e), exception=traceback.format_exc())
        try:
            f = open(self.HOSTNAME_FILE)
            try:
                return f.read().strip()
            finally:
                f.close()
        except Exception as e:
            self.module.fail_json(msg="failed to read hostname: %s" %
                                      to_native(e), exception=traceback.format_exc())
    def set_permanent_hostname(self, name):
        try:
            f = open(self.HOSTNAME_FILE, 'w+')
            try:
                f.write("%s\n" % name)
            finally:
                f.close()
        except Exception as e:
            self.module.fail_json(msg="failed to update hostname: %s" %
                                      to_native(e), exception=traceback.format_exc())
class SolarisStrategy(GenericStrategy):