ansible.builtin.hostname – Manage hostname


This module is part of ansible-core and included in all Ansible installations. In most cases, you can use the short module name hostname even without specifying the collections: keyword. However, we recommend you use the FQCN for easy linking to the module documentation and to avoid conflicting with other collections that may have the same module name.

New in version 1.4: of ansible.builtin


  • Set system’s hostname. Supports most OSs/Distributions including those using systemd.

  • Windows, HP-UX, and AIX are not currently supported.


The below requirements are needed on the host that executes this module.

  • hostname


Parameter Choices/Defaults Comments
string / required
Name of the host.
If the value is a fully qualified domain name that does not resolve from the given host, this will cause the module to hang for a few seconds while waiting for the name resolution attempt to timeout.
added in 2.9 of ansible.builtin
  • alpine
  • debian
  • freebsd
  • generic
  • macos
  • macosx
  • darwin
  • openbsd
  • openrc
  • redhat
  • sles
  • solaris
  • systemd
Which strategy to use to update the hostname.
If not set we try to autodetect, but this can be problematic, particularly with containers as they can present misleading information.
Note that 'systemd' should be specified for RHEL/EL/CentOS 7+. Older distributions should use 'redhat'.



  • This module does NOT modify /etc/hosts. You need to modify it yourself using other modules such as ansible.builtin.template or ansible.builtin.replace.

  • On macOS, this module uses scutil to set HostName, ComputerName, and LocalHostName. Since LocalHostName cannot contain spaces or most special characters, this module will replace characters when setting LocalHostName.

  • Supports check_mode.


- name: Set a hostname
    name: web01

- name: Set a hostname specifying strategy
    name: web01
    strategy: systemd


  • Adrian Likins (@alikins)

  • Hideki Saito (@saito-hideki)