Skip to content
Snippets Groups Projects
Select Git revision
  • 3a304e8bd7c9426908e968e841cb9976a9b9a79c
  • master default protected
  • v1.14.7
  • v1.14.6
  • v1.14.5
  • v1.14.4
  • v1.14.3
  • v1.14.2
  • v1.14.1
  • v1.14.0
  • v1.13.2
  • v1.13.1
  • v1.13.0
  • v1.12.1
  • v1.12.0
  • v1.11.1
  • v1.11.0
  • v1.10.0
  • v1.9.2
  • v1.9.1
  • v1.9.0
  • v1.8.4
22 results

README-group.md

Blame
  • user avatar
    Rafael Guterres Jeffman authored
    As ansible-freeipa roles do not support version 2.8 anymore, change the
    minimum supported version to 2.13, which is the currently minimum
    available and supported Ansible version.
    
    This patch fixes documentation on all plugin READMEs, spec file and
    module templates.
    0a3cd06c
    History

    Group module

    Description

    The group module allows to ensure presence and absence of groups and members of groups.

    The group module is as compatible as possible to the Ansible upstream ipa_group module, but additionally offers to add users to a group and also to remove users from a group.

    Note

    Ensuring presence (adding) of several groups with mixed types (external, nonposix and posix) requires a fix in FreeIPA. The module implements a workaround to automatically use client context if the fix is not present in the target node FreeIPA and if more than one group is provided to the task using the groups parameter. If ipaapi_context is forced to be server, the module will fail in this case.

    Features

    • Group management

    Supported FreeIPA Versions

    FreeIPA versions 4.4.0 and up are supported by the ipagroup module.

    Some variables are only supported on newer versions of FreeIPA. Check Variables section for details.

    Requirements

    Controller

    • Ansible version: 2.13+

    Node

    • Supported FreeIPA version (see above)

    Usage

    Example inventory file

    [ipaserver]
    ipaserver.test.local

    Example playbook to add groups:

    ---
    - name: Playbook to handle groups
      hosts: ipaserver
      become: true
    
      tasks:
      # Create group ops with gid 1234
      - ipagroup:
          ipaadmin_password: SomeADMINpassword
          name: ops
          gidnumber: 1234
    
      # Create group sysops
      - ipagroup:
          ipaadmin_password: SomeADMINpassword
          name: sysops
          user:
          - pinky
    
      # Create group appops
      - ipagroup:
          ipaadmin_password: SomeADMINpassword
          name: appops

    These three ipagroup module calls can be combined into one with the groups variable:

    ---
    - name: Playbook to handle groups
      hosts: ipaserver
    
      tasks:
      - name: Ensure groups ops, sysops and appops are present
        ipagroup:
          ipaadmin_password: SomeADMINpassword
          groups:
          - name: ops
            gidnumber: 1234
          - name: sysops
            user:
            - pinky
          - name: appops

    You can also alternatively use a json file containing the groups, here groups_present.json:

    {
      "groups": [
        {
          "name": "group1",
          "description": "description group1"
        },
        {
          "name": "group2",
          "description": "description group2"
        }
      ]
    }

    And ensure the presence of the groups with this example playbook:

    ---
    - name: Tests
      hosts: ipaserver
      gather_facts: false
    
      tasks:
      - name: Include groups_present.json
        include_vars:
          file: groups_present.json
    
      - name: Groups present
        ipagroup:
          ipaadmin_password: SomeADMINpassword
          groups: "{{ groups }}"

    Example playbook to add users to a group:

    ---
    - name: Playbook to handle groups
      hosts: ipaserver
      become: true
    
      tasks:
      # Add user member brain to group sysops
      - ipagroup:
          ipaadmin_password: SomeADMINpassword
          name: sysops
          action: member
          user:
          - brain

    action controls if a the group or member will be handled. To add or remove members, set action to member.

    Example playbook to add group members to a group:

    ---
    - name: Playbook to handle groups
      hosts: ipaserver
      become: true
    
      tasks:
      # Add group members sysops and appops to group ops
      - ipagroup:
          ipaadmin_password: SomeADMINpassword
          name: ops
          group:
          - sysops
          - appops

    Example playbook to add members from a trusted realm to an external group:

    ---
    - name: Playbook to handle groups.
      hosts: ipaserver
      
      tasks:
      - name: Create an external group and add members from a trust to it.
        ipagroup:
          ipaadmin_password: SomeADMINpassword
          name: extgroup
          external: yes
          externalmember:
          - WINIPA\\Web Users
          - WINIPA\\Developers

    Example playbook to add nonposix and external groups:

    ---
    - name: Playbook to add nonposix and external groups
      hosts: ipaserver
    
      tasks:
      - name: Add nonposix group sysops and external group appops
        ipagroup:
          ipaadmin_password: SomeADMINpassword
          groups:
          - name: sysops
            nonposix: true
          - name: appops
            external: true

    Example playbook to remove groups:

    ---
    - name: Playbook to handle groups
      hosts: ipaserver
      become: true
    
      tasks:
      # Remove groups sysops, appops and ops
      - ipagroup:
          ipaadmin_password: SomeADMINpassword
          name: sysops,appops,ops
          state: absent

    Example playbook to ensure groups are absent:

    ---
    - name: Playbook to handle groups
      hosts: ipaserver
    
      tasks:
      - name: Ensure groups ops and sysops are absent
        ipagroup:
          ipaadmin_password: SomeADMINpassword
          groups:
          - name: ops
          - name: sysops
          state: absent

    Variables

    Variable Description Required
    ipaadmin_principal The admin principal is a string and defaults to admin no
    ipaadmin_password The admin password is a string and is required if there is no admin ticket available on the node no
    ipaapi_context The context in which the module will execute. Executing in a server context is preferred. If not provided context will be determined by the execution environment. Valid values are server and client. no
    ipaapi_ldap_cache Use LDAP cache for IPA connection. The bool setting defaults to
    . (bool)
    no
    name | cn The list of group name strings. no
    groups The list of group dicts. Each groups dict entry can contain group variables.
    There is one required option in the groups dict:
    no
      name - The group name string of the entry. yes
    description The group description string. no
    gid | gidnumber The GID integer. no
    posix Create a non-POSIX group or change a non-POSIX to a posix group. nonposix, posix and external are mutually exclusive. (bool) no
    nonposix Create as a non-POSIX group. nonposix, posix and external are mutually exclusive. (bool) no
    external Allow adding external non-IPA members from trusted domains. nonposix, posix and external are mutually exclusive. (bool) no
    nomembers Suppress processing of membership attributes. (bool) no
    user List of user name strings assigned to this group. no
    group List of group name strings assigned to this group. no
    service List of service name strings assigned to this group. Only usable with IPA versions 4.7 and up. no
    membermanager_user List of member manager users assigned to this group. Only usable with IPA versions 4.8.4 and up. no
    membermanager_group List of member manager groups assigned to this group. Only usable with IPA versions 4.8.4 and up. no
    externalmember | ipaexternalmember | external_member List of members of a trusted domain in DOM\name or name@domain form. no
    idoverrideuser List of user ID overrides to manage. Only usable with IPA versions 4.8.7 and up. no
    action Work on group or member level. It can be on of member or group and defaults to group. no
    state The state to ensure. It can be one of present or absent, default: present. yes

    Authors

    Thomas Woerner