community.general.ipa_user (8.5.0) — module

Manage FreeIPA users

Authors: Thomas Krahn (@Nosmoht)

Install collection

Install with ansible-galaxy collection install community.general:==8.5.0


Add to requirements.yml

  collections:
    - name: community.general
      version: 8.5.0

Description

Add, modify and delete user within IPA server.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Ensure pinky is present and always reset password
  community.general.ipa_user:
    name: pinky
    state: present
    krbpasswordexpiration: 20200119235959
    givenname: Pinky
    sn: Acme
    mail:
    - pinky@acme.com
    telephonenumber:
    - '+555123456'
    sshpubkey:
    - ssh-rsa ....
    - ssh-dsa ....
    uidnumber: '1001'
    gidnumber: '100'
    homedirectory: /home/pinky
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Ensure brain is absent
  community.general.ipa_user:
    name: brain
    state: absent
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Ensure pinky is present but don't reset password if already exists
  community.general.ipa_user:
    name: pinky
    state: present
    givenname: Pinky
    sn: Acme
    password: zounds
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret
    update_password: on_create
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Ensure pinky is present and using one time password and RADIUS authentication
  community.general.ipa_user:
    name: pinky
    state: present
    userauthtype:
      - otp
      - radius
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret

Inputs

    
sn:
    description:
    - Surname.
    - If user does not exist and O(state=present), the usage of O(sn) is required.
    type: str

uid:
    aliases:
    - name
    description: uid of the user.
    required: true
    type: str

mail:
    description:
    - List of mail addresses assigned to the user.
    - If an empty list is passed all assigned email addresses will be deleted.
    - If None is passed email addresses will not be checked or changed.
    elements: str
    type: list

state:
    choices:
    - absent
    - disabled
    - enabled
    - present
    default: present
    description: State to ensure.
    type: str

title:
    description: Title.
    type: str

ipa_host:
    default: ipa.example.com
    description:
    - IP or hostname of IPA server.
    - If the value is not specified in the task, the value of environment variable E(IPA_HOST)
      will be used instead.
    - If both the environment variable E(IPA_HOST) and the value are not specified in
      the task, then DNS will be used to try to discover the FreeIPA server.
    - The relevant entry needed in FreeIPA is the C(ipa-ca) entry.
    - If neither the DNS entry, nor the environment E(IPA_HOST), nor the value are available
      in the task, then the default value will be used.
    type: str

ipa_pass:
    description:
    - Password of administrative user.
    - If the value is not specified in the task, the value of environment variable E(IPA_PASS)
      will be used instead.
    - Note that if the C(urllib_gssapi) library is available, it is possible to use GSSAPI
      to authenticate to FreeIPA.
    - If the environment variable E(KRB5CCNAME) is available, the module will use this
      kerberos credentials cache to authenticate to the FreeIPA server.
    - If the environment variable E(KRB5_CLIENT_KTNAME) is available, and E(KRB5CCNAME)
      is not; the module will use this kerberos keytab to authenticate.
    - If GSSAPI is not available, the usage of O(ipa_pass) is required.
    type: str

ipa_port:
    default: 443
    description:
    - Port of FreeIPA / IPA server.
    - If the value is not specified in the task, the value of environment variable E(IPA_PORT)
      will be used instead.
    - If both the environment variable E(IPA_PORT) and the value are not specified in
      the task, then default value is set.
    type: int

ipa_prot:
    choices:
    - http
    - https
    default: https
    description:
    - Protocol used by IPA server.
    - If the value is not specified in the task, the value of environment variable E(IPA_PROT)
      will be used instead.
    - If both the environment variable E(IPA_PROT) and the value are not specified in
      the task, then default value is set.
    type: str

ipa_user:
    default: admin
    description:
    - Administrative account used on IPA server.
    - If the value is not specified in the task, the value of environment variable E(IPA_USER)
      will be used instead.
    - If both the environment variable E(IPA_USER) and the value are not specified in
      the task, then default value is set.
    type: str

password:
    description:
    - Password for a user.
    - Will not be set for an existing user unless O(update_password=always), which is
      the default.
    type: str

gidnumber:
    description:
    - Posix Group ID.
    type: str

givenname:
    description:
    - First name.
    - If user does not exist and O(state=present), the usage of O(givenname) is required.
    type: str

sshpubkey:
    description:
    - List of public SSH key.
    - If an empty list is passed all assigned public keys will be deleted.
    - If None is passed SSH public keys will not be checked or changed.
    elements: str
    type: list

uidnumber:
    description:
    - Account Settings UID/Posix User ID number.
    type: str

loginshell:
    description: Login shell.
    type: str

displayname:
    description: Display name.
    type: str

ipa_timeout:
    default: 10
    description:
    - Specifies idle timeout (in seconds) for the connection.
    - For bulk operations, you may want to increase this in order to avoid timeout from
      IPA server.
    - If the value is not specified in the task, the value of environment variable E(IPA_TIMEOUT)
      will be used instead.
    - If both the environment variable E(IPA_TIMEOUT) and the value are not specified
      in the task, then default value is set.
    type: int

userauthtype:
    choices:
    - password
    - radius
    - otp
    - pkinit
    - hardened
    - idp
    - passkey
    description:
    - The authentication type to use for the user.
    - To remove all authentication types from the user, use an empty list V([]).
    - The choice V(idp) and V(passkey) has been added in community.general 8.1.0.
    elements: str
    type: list
    version_added: 1.2.0
    version_added_collection: community.general

homedirectory:
    description:
    - Default home directory of the user.
    type: str
    version_added: 0.2.0
    version_added_collection: community.general

validate_certs:
    default: true
    description:
    - This only applies if O(ipa_prot) is V(https).
    - If set to V(false), the SSL certificates will not be validated.
    - This should only set to V(false) used on personally controlled sites using self-signed
      certificates.
    type: bool

telephonenumber:
    description:
    - List of telephone numbers assigned to the user.
    - If an empty list is passed all assigned telephone numbers will be deleted.
    - If None is passed telephone numbers will not be checked or changed.
    elements: str
    type: list

update_password:
    choices:
    - always
    - on_create
    default: always
    description:
    - Set password for a user.
    type: str

krbpasswordexpiration:
    description:
    - Date at which the user password will expire.
    - In the format YYYYMMddHHmmss.
    - e.g. 20180121182022 will expire on 21 January 2018 at 18:20:22.
    type: str

Outputs

user:
  description: User as returned by IPA API
  returned: always
  type: dict