ansible.builtin.getent – A wrapper to the unix getent utility

Note

This module is part of ansible-core and included in all Ansible installations. In most cases, you can use the short module name getent 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.8: of ansible.builtin

Synopsis

  • Runs getent against one of it’s various databases and returns information into the host’s facts, in a getent_<database> prefixed variable.

Parameters

Parameter Choices/Defaults Comments
database
string / required
The name of a getent database supported by the target system (passwd, group, hosts, etc).
fail_key
boolean
    Choices:
  • no
  • yes ←
If a supplied key is missing this will make the task fail if yes.
key
string
Default:
""
Key from which to return values from the specified database, otherwise the full contents are returned.
service
string
added in 2.9 of ansible.builtin
Override all databases with the specified service
The underlying system must support the service flag which is not always available.
split
string
Character used to split the database values into lists/arrays such as ':' or ' ', otherwise it will try to pick one depending on the database.

Attributes

Attribute

Support

Description

check_mode

Support: full

Can run in check_mode and return changed status prediction withought modifying target

diff_mode

Support: none

Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode

facts

Support: full

Action returns an ansible_facts dictionary that will update existing host facts

platform

Platform: posix

Target OS/families that can be operated against

Notes

Note

  • Not all databases support enumeration, check system documentation for details.

Examples

- name: Get root user info
  getent:
    database: passwd
    key: root
- debug:
    var: ansible_facts.getent_passwd

- name: Get all groups
  getent:
    database: group
    split: ':'
- debug:
    var: ansible_facts.getent_group

- name: Get all hosts, split by tab
  getent:
    database: hosts
- debug:
    var: ansible_facts.getent_hosts

- name: Get http service info, no error if missing
  getent:
    database: services
    key: http
    fail_key: False
- debug:
    var: ansible_facts.getent_services

- name: Get user password hash (requires sudo/root)
  getent:
    database: shadow
    key: www-data
    split: ':'
- debug:
    var: ansible_facts.getent_shadow

Returned Facts

Facts returned by this module are added/updated in the hostvars host facts and can be referenced by name just like any other host fact. They do not need to be registered in order to use them.

Fact Returned Description
getent_
list / elements=string
always
A list of results or a single result as a list of the fields the db provides
The list elements depend on the database queried, see getent man page for the structure
Starting at 2.11 it now returns multiple duplicate entries, previouslly it only returned the last one



Authors

  • Brian Coca (@bcoca)