File: //proc/self/root/usr/lib/python3.9/site-packages/ansible/modules/__pycache__/getent.cpython-39.pyc
a
�)g? � @ s^ d dl mZmZmZ eZdZdZdZd dl Z d dl
mZ d dlm
Z
dd � Zed
krZe� dS )� )�absolute_import�division�print_functiona�
---
module: getent
short_description: A wrapper to the unix getent utility
description:
- Runs getent against one of its various databases and returns information into
the host's facts, in a getent_<database> prefixed variable.
version_added: "1.8"
options:
database:
description:
- The name of a getent database supported by the target system (passwd, group,
hosts, etc).
type: str
required: True
key:
description:
- Key from which to return values from the specified database, otherwise the
full contents are returned.
type: str
default: ''
service:
description:
- Override all databases with the specified service
- The underlying system must support the service flag which is not always available.
type: str
version_added: "2.9"
split:
description:
- Character used to split the database values into lists/arrays such as C(:) or C(\t),
otherwise it will try to pick one depending on the database.
type: str
fail_key:
description:
- If a supplied key is missing this will make the task fail if C(true).
type: bool
default: 'yes'
extends_documentation_fragment:
- action_common_attributes
- action_common_attributes.facts
attributes:
check_mode:
support: full
diff_mode:
support: none
facts:
support: full
platform:
platforms: posix
notes:
- Not all databases support enumeration, check system documentation for details.
author:
- Brian Coca (@bcoca)
aD
- name: Get root user info
ansible.builtin.getent:
database: passwd
key: root
- ansible.builtin.debug:
var: ansible_facts.getent_passwd
- name: Get all groups
ansible.builtin.getent:
database: group
split: ':'
- ansible.builtin.debug:
var: ansible_facts.getent_group
- name: Get all hosts, split by tab
ansible.builtin.getent:
database: hosts
- ansible.builtin.debug:
var: ansible_facts.getent_hosts
- name: Get http service info, no error if missing
ansible.builtin.getent:
database: services
key: http
fail_key: False
- ansible.builtin.debug:
var: ansible_facts.getent_services
- name: Get user password hash (requires sudo/root)
ansible.builtin.getent:
database: shadow
key: www-data
split: ':'
- ansible.builtin.debug:
var: ansible_facts.getent_shadow
a�
ansible_facts:
description: Facts to add to ansible_facts.
returned: always
type: dict
contains:
getent_<database>:
description:
- 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
returned: always
type: list
N)�
AnsibleModule)� to_nativec
C sb t ttddd�tddd�tdd�tdd�tddd�d �dd
�} g d�}| jd }| j�d
�}| j�d�}| j�d�}| j�d�}| �dd�}|d ur�|||g}n||g}|d ur�|�d|g� |d u r�||v r�d}z| �|�\} }
}W n< t�y" } z"| jt |�t
�� d� W Y d }~n
d }~0 0 d}
d| }|i i}| dk�ri }|
�� D ]�}|�
|�}|d |v �r�||d dk�r�|| |d g|| |d <