##### 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"}
```

"""
    This is a macOS hostname manipulation strategy class. It uses
    /usr/sbin/scutil to set ComputerName, HostName, and LocalHostName.
    HostName corresponds to what most platforms consider to be hostname.
    It controls the name used on the command line and SSH.
    However, macOS also has LocalHostName and ComputerName settings.
    LocalHostName controls the Bonjour/ZeroConf name, used by services
    like AirDrop. This class implements a method, _scrub_hostname(), that mimics
    the transformations macOS makes on hostnames when enterened in the Sharing
    preference pane. It replaces spaces with dashes and removes all special
    characters.
    ComputerName is the name used for user-facing GUI services, like the
    System Preferences/Sharing pane and when users connect to the Mac over the network.
    """
    def __init__(self, module):