Files
ansible-freeipa/plugins/modules
Thomas Woerner 0e2e6a6653 ipagroup: Use PARAM_MAPPING and query state support
The ipagroup module has been reworked to use the new PARAM_MAPPING
added to ansible_freeipa_module.

The member handling for user, group, service and membermanager has
been simplified by using gen_member_add_del_lists. The member entries
in PARAM_MAPPING are now marked with "member": True. This replaces the
manual calls to gen_add_del_lists, gen_add_list and
gen_intersection_list across separate action/state branches with a
single unified call. externalmember and idoverrideuser are still
handled manually since they need SID-based comparison.

The new query state allows to retrieve group information from IPA.
The query_param option controls which fields are returned: BASE for
essential fields, ALL for all fields, PKEY_ONLY for group names only,
or a list of specific field names.

Here is the updated documentation of the module:

    README-group.md

New tests for the query state can be found at:

    tests/group/test_group_query.yml
2026-07-16 17:09:37 +02:00
..

Writing a new Ansible FreeIPA module

A ansible-freeipa module should have:

  • Code:

    • A module file placed in plugins/modules/<ipa_module_name>.py
  • Documentation:

    • README-<module_name>.md file in the root directory and linked from the main README.md
    • Example playbooks in playbooks/<module_name>/ directory
  • Tests:

    • Test cases (also playbooks) defined in tests/<module_name>/test_<something>.yml. It's ok to have multiple files in this directory.

Use the script utils/new_module to create the stub files for a new module.