community.general.ldap_inc module – Use the Modify-Increment LDAP V3 feature to increment an attribute value
Note
This module is part of the community.general collection (version 10.2.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: community.general.ldap_inc
.
New in community.general 10.2.0
Synopsis
Atomically increments the value of an attribute and return its new value.
Requirements
The below requirements are needed on the host that executes this module.
python-ldap
Parameters
Parameter |
Comments |
---|---|
The attribute to increment. |
|
A DN to bind with. Try to use a SASL bind with the EXTERNAL mechanism as default when this parameter is omitted. Use an anonymous bind if the parameter is blank. |
|
The password to use with Default: |
|
Set the path to PEM file with CA certs. |
|
PEM formatted certificate chain file to be used for SSL client authentication. Required if |
|
PEM formatted file that contains your private key to be used for SSL client authentication. Required if |
|
The DN entry containing the attribute to increment. |
|
The value of the increment to apply. Default: |
|
If If Choices:
|
|
Set the referrals chasing behavior.
Choices:
|
|
The class to use for SASL authentication. Choices:
|
|
The The default value lets the underlying LDAP client library look for a UNIX domain socket in its default location. Note that when using multiple URIs you cannot determine to which URI your client gets connected. For URIs containing additional fields, particularly when using commas, behavior is undefined. Default: |
|
Use the START_TLS LDAP extension if set to Choices:
|
|
If set to This should only be used on sites using self-signed certificates. Choices:
|
|
Set the behavior on how to process Xordered DNs.
Choices:
|
Attributes
Attribute |
Support |
Description |
---|---|---|
Support: full |
Can run in |
|
Support: none |
Will return details on what has changed (or possibly needs changing in |
Notes
Note
When implemented by the directory server, the module uses the ModifyIncrement extension defined in RFC4525 and the control PostRead. This extension and the control are implemented in OpenLdap but not all directory servers implement them. In this case, the module automatically uses a more classic method based on two phases, first the current value is read then the modify operation remove the old value and add the new one in a single request. If the value has changed by a concurrent call then the remove action will fail. Then the sequence is retried 3 times before raising an error to the playbook. In an heavy modification environment, the module does not guarante to be systematically successful.
This only deals with integer attribute of an existing entry. To modify attributes of an entry, see community.general.ldap_attrs or to add or remove whole entries, see community.general.ldap_entry.
The default authentication settings will attempt to use a SASL EXTERNAL bind over a UNIX domain socket. This works well with the default Ubuntu install for example, which includes a
cn=peercred,cn=external,cn=auth
ACL rule allowing root to modify the server configuration. If you need to use a simple bind to access your server, pass the credentials inbind_dn
andbind_pw
.
Examples
- name: Increments uidNumber 1 Number for example.com
community.general.ldap_inc:
dn: "cn=uidNext,ou=unix-management,dc=example,dc=com"
attribute: "uidNumber"
increment: "1"
register: ldap_uidNumber_sequence
- name: Modifies the user to define its identification number (uidNumber) when incrementation is successful
community.general.ldap_attrs:
dn: "cn=john,ou=posix-users,dc=example,dc=com"
state: present
attributes:
- uidNumber: "{{ ldap_uidNumber_sequence.value }}"
when: ldap_uidNumber_sequence.incremented
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
The name of the attribute that was incremented. Returned: success Sample: |
|
It is set to Returned: success Sample: |
|
Is Returned: success Sample: |
|
The new value after incrementing. Returned: success Sample: |