Files
ansible-freeipa/README-server.md
Thomas Woerner 16795b8bfd New server management module
There is a new server management module placed in the plugins folder:

    plugins/modules/ipaserver.py

The server module allows to ensure presence and absence of servers. The
module requires an existing server, the deployment of a new server can
not be done with the module.

DNSName has been added to ansible_freeipa_module in plugins/module_utils
as this is used for locations.

Here is the documentation for the module:

    README-server.md

New example playbooks have been added:

    playbooks/server/server-absent-continue.yml
    playbooks/server/server-absent-force.yml
    playbooks/server/server-absent-ignore_last_of_role.yml
    playbooks/server/server-absent-ignore_topology_disconnect.yml
    playbooks/server/server-absent.yml
    playbooks/server/server-hidden.yml
    playbooks/server/server-location.yml
    playbooks/server/server-no-location.yml
    playbooks/server/server-no-service-weight.yml
    playbooks/server/server-not-hidden.yml
    playbooks/server/server-present.yml
    playbooks/server/server-service-weight.yml

New tests for the module:

    tests/server/test_server.yml

Change in module_utils/ansible_freeipa_module:

    DNSName is imported from ipapython.dnsutil and also added to __all__
2021-05-18 14:56:17 +02:00

5.3 KiB

Server module

Description

The server module allows to ensure presence and absence of servers. The module requires an existing server, the deployment of a new server can not be done with the module.

Features

  • Server management

Supported FreeIPA Versions

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

Requirements

Controller

  • Ansible version: 2.8+

Node

  • Supported FreeIPA version (see above)

Usage

Example inventory file

[ipaserver]
ipaserver.test.local

Example playbook to make sure server "server.example.com" is present:

---
- name: Playbook to manage IPA server.
  hosts: ipaserver
  become: yes

  tasks:
  - ipaserver:
      ipaadmin_password: SomeADMINpassword
      name: server.example.com

Example playbook to make sure server "server.example.com" is present with location mylocation:

---
- name: Playbook to manage IPA server.
  hosts: ipaserver
  become: yes

  tasks:
  - ipaserver:
      ipaadmin_password: SomeADMINpassword
      name: server.example.com
      location: mylocation

Example playbook to make sure server "server.example.com" is present without a location:

---
- name: Playbook to manage IPA server.
  hosts: ipaserver
  become: yes

  tasks:
  - ipaserver:
      ipaadmin_password: SomeADMINpassword
      name: server.example.com
      location: ""

Example playbook to make sure server "server.example.com" is present with service weight 1:

---
- name: Playbook to manage IPA server.
  hosts: ipaserver
  become: yes

  tasks:
  - ipaserver:
      ipaadmin_password: SomeADMINpassword
      name: server.example.com
      service_weight: 1

Example playbook to make sure server "server.example.com" is present without service weight:

---
- name: Playbook to manage IPA server.
  hosts: ipaserver
  become: yes

  tasks:
  - ipaserver:
      ipaadmin_password: SomeADMINpassword
      name: server.example.com
      service_weight: -1

Example playbook to make sure server "server.example.com" is present and hidden:

---
- name: Playbook to manage IPA server.
  hosts: ipaserver
  become: yes

  tasks:
  - ipaserver:
      ipaadmin_password: SomeADMINpassword
      name: server.example.com
      hidden: yes

Example playbook to make sure server "server.example.com" is present and not hidden:

---
- name: Playbook to manage IPA server.
  hosts: ipaserver
  become: yes

  tasks:
  - ipaserver:
      ipaadmin_password: SomeADMINpassword
      name: server.example.com
      hidden: no

Example playbook to make sure server "server.example.com" is absent:

---
- name: Playbook to manage IPA server.
  hosts: ipaserver
  become: yes

  tasks:
  - ipaserver:
      ipaadmin_password: SomeADMINpassword
      name: server.example.com
      state: absent

Example playbook to make sure server "server.example.com" is absent in continuous mode in error case:

---
- name: Playbook to manage IPA server.
  hosts: ipaserver
  become: yes

  tasks:
  - ipaserver:
      ipaadmin_password: SomeADMINpassword
      name: server.example.com
      continue: yes
      state: absent

Example playbook to make sure server "server.example.com" is absent with last of role check skip:

---
- name: Playbook to manage IPA server.
  hosts: ipaserver
  become: yes

  tasks:
  - ipaserver:
      ipaadmin_password: SomeADMINpassword
      name: server.example.com
      ignore_last_of_role: yes
      state: absent

Example playbook to make sure server "server.example.com" is absent iwith topology disconnect check skip:

---
- name: Playbook to manage IPA server.
  hosts: ipaserver
  become: yes

  tasks:
  - ipaserver:
      ipaadmin_password: SomeADMINpassword
      name: server.example.com
      ignore_topology_disconnect: yes
      state: absent

MORE EXAMPLE PLAYBOOKS HERE

Variables

ipaserver

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
name | cn The list of server name strings. yes
location | ipalocation_location The server location string. Only in state: present. "" for location reset. no
service_weight | ipaserviceweight Weight for server services. Type Values 0 to 65535, -1 for weight reset. Only in state: present. (int) no
hidden Set hidden state of a server. Only in state: present. (bool) no
no_members Suppress processing of membership attributes. Only in state: present. (bool) no
delete_continue | continue Continuous mode: Don't stop on errors. Only in state: absent. (bool) no
ignore_last_of_role Skip a check whether the last CA master or DNS server is removed. Only in state: absent. (bool) no
ignore_topology_disconnect Ignore topology connectivity problems after removal. Only in state: absent. (bool) no
force Force server removal even if it does not exist. Will always result in changed. Only in state: absent. (bool) no
state The state to ensure. It can be one of present, absent, default: present. present is only working with existing servers. no

Authors

Thomas Woerner