ansible.builtin.ipa_host (v2.9.27) — module

Manage FreeIPA host

| "added in version" 2.3 of ansible.builtin"

Authors: Thomas Krahn (@Nosmoht)

preview | supported by community

Install Ansible via pip

Install with pip install ansible==2.9.27

Description

Add, modify and delete an IPA host using IPA API

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Ensure host is present
- ipa_host:
    name: host01.example.com
    description: Example host
    ip_address: 192.168.0.123
    ns_host_location: Lab
    ns_os_version: CentOS 7
    ns_hardware_platform: Lenovo T61
    mac_address:
    - "08:00:27:E3:B1:2D"
    - "52:54:00:BD:97:1E"
    state: present
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Generate a random password for bulk enrolment
- ipa_host:
    name: host01.example.com
    description: Example host
    ip_address: 192.168.0.123
    state: present
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret
    validate_certs: False
    random_password: True
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Ensure host is disabled
- ipa_host:
    name: host01.example.com
    state: disabled
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Ensure that all user certificates are removed
- ipa_host:
    name: host01.example.com
    user_certificate: []
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Ensure host is absent
- ipa_host:
    name: host01.example.com
    state: absent
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Ensure host and its DNS record is absent
- ipa_host:
    name: host01.example.com
    state: absent
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret
    update_dns: True

Inputs

    
fqdn:
    aliases:
    - name
    description:
    - Full qualified domain name.
    - Can not be changed as it is the unique identifier.
    required: true

force:
    description:
    - Force host name even if not in DNS.
    required: false
    type: bool

state:
    choices:
    - present
    - absent
    - enabled
    - disabled
    default: present
    description: State to ensure

ipa_host:
    default: ipa.example.com
    description:
    - IP or hostname of IPA server.
    - If the value is not specified in the task, the value of environment variable C(IPA_HOST)
      will be used instead.
    - If both the environment variable C(IPA_HOST) and the value are not specified in
      the task, then DNS will be used to try to discover the FreeIPA server.
    - The relevant entry needed in FreeIPA is the 'ipa-ca' entry.
    - If neither the DNS entry, nor the environment C(IPA_HOST), nor the value are available
      in the task, then the default value will be used.
    - Environment variable fallback mechanism is added in Ansible 2.5.
    type: str

ipa_pass:
    description:
    - Password of administrative user.
    - If the value is not specified in the task, the value of environment variable C(IPA_PASS)
      will be used instead.
    - Note that if the 'urllib_gssapi' library is available, it is possible to use GSSAPI
      to authenticate to FreeIPA.
    - If the environment variable C(KRB5CCNAME) is available, the module will use this
      kerberos credentials cache to authenticate to the FreeIPA server.
    - If the environment variable C(KRB5_CLIENT_KTNAME) is available, and C(KRB5CCNAME)
      is not; the module will use this kerberos keytab to authenticate.
    - If GSSAPI is not available, the usage of 'ipa_pass' is required.
    - Environment variable fallback mechanism is added in Ansible 2.5.
    type: str

ipa_port:
    default: 443
    description:
    - Port of FreeIPA / IPA server.
    - If the value is not specified in the task, the value of environment variable C(IPA_PORT)
      will be used instead.
    - If both the environment variable C(IPA_PORT) and the value are not specified in
      the task, then default value is set.
    - Environment variable fallback mechanism is added in Ansible 2.5.
    type: int

ipa_prot:
    choices:
    - http
    - https
    default: https
    description:
    - Protocol used by IPA server.
    - If the value is not specified in the task, the value of environment variable C(IPA_PROT)
      will be used instead.
    - If both the environment variable C(IPA_PROT) and the value are not specified in
      the task, then default value is set.
    - Environment variable fallback mechanism is added in Ansible 2.5.
    type: str

ipa_user:
    default: admin
    description:
    - Administrative account used on IPA server.
    - If the value is not specified in the task, the value of environment variable C(IPA_USER)
      will be used instead.
    - If both the environment variable C(IPA_USER) and the value are not specified in
      the task, then default value is set.
    - Environment variable fallback mechanism is added in Ansible 2.5.
    type: str

ip_address:
    description:
    - Add the host to DNS with this IP address.

update_dns:
    default: false
    description:
    - If set C("True") with state as C("absent"), then removes DNS records of the host
      managed by FreeIPA DNS.
    - This option has no effect for states other than "absent".
    type: bool
    version_added: '2.5'
    version_added_collection: ansible.builtin

description:
    description:
    - A description of this host.

ipa_timeout:
    default: 10
    description:
    - Specifies idle timeout (in seconds) for the connection.
    - For bulk operations, you may want to increase this in order to avoid timeout from
      IPA server.
    - If the value is not specified in the task, the value of environment variable C(IPA_TIMEOUT)
      will be used instead.
    - If both the environment variable C(IPA_TIMEOUT) and the value are not specified
      in the task, then default value is set.
    type: int

mac_address:
    aliases:
    - macaddress
    description:
    - List of Hardware MAC address(es) off this host.
    - If option is omitted MAC addresses will not be checked or changed.
    - If an empty list is passed all assigned MAC addresses will be removed.
    - MAC addresses that are already assigned but not passed will be removed.

ns_os_version:
    aliases:
    - nsosversion
    description:
    - Host operating system and version (e.g. "Fedora 9")

validate_certs:
    default: true
    description:
    - This only applies if C(ipa_prot) is I(https).
    - If set to C(no), the SSL certificates will not be validated.
    - This should only set to C(no) used on personally controlled sites using self-signed
      certificates.
    type: bool

random_password:
    default: false
    description: Generate a random password to be used in bulk enrollment
    type: bool
    version_added: '2.5'
    version_added_collection: ansible.builtin

ns_host_location:
    aliases:
    - nshostlocation
    description:
    - Host location (e.g. "Lab 2")

user_certificate:
    aliases:
    - usercertificate
    description:
    - List of Base-64 encoded server certificates.
    - If option is omitted certificates will not be checked or changed.
    - If an empty list is passed all assigned certificates will be removed.
    - Certificates already assigned but not passed will be removed.

ns_hardware_platform:
    aliases:
    - nshardwareplatform
    description:
    - Host hardware platform (e.g. "Lenovo T61")

Outputs

host:
  description: Host as returned by IPA API.
  returned: always
  type: dict
host_diff:
  description: List of options that differ and would be changed
  returned: if check mode and a difference is found
  type: list