Blame README-topology.md

Packit 8cb997
Topology modules
Packit 8cb997
================
Packit 8cb997
Packit 8cb997
Description
Packit 8cb997
-----------
Packit 8cb997
Packit 8cb997
These modules allow to manage the topology. That means that it can made sure that topology segments are present, absent or reinitialized. Also it is possible to verify topology suffixes.
Packit 8cb997
Packit 8cb997
Packit 8cb997
Features
Packit 8cb997
--------
Packit 8cb997
* Topology management
Packit 8cb997
Packit 8cb997
Packit 8cb997
Supported FreeIPA Versions
Packit 8cb997
--------------------------
Packit 8cb997
Packit 8cb997
FreeIPA versions 4.4.0 and up are supported by the ipatopologysegment and ipatopologysuffix modules.
Packit 8cb997
Packit 8cb997
Packit 8cb997
Requirements
Packit 8cb997
------------
Packit 8cb997
Packit 8cb997
**Controller**
Packit 8cb997
* Ansible version: 2.8+
Packit 8cb997
Packit 8cb997
**Node**
Packit 8cb997
* Supported FreeIPA version (see above)
Packit 8cb997
Packit 8cb997
Packit 8cb997
Usage
Packit 8cb997
=====
Packit 8cb997
Packit 8cb997
Example inventory file
Packit 8cb997
Packit 8cb997
```ini
Packit 8cb997
[ipaserver]
Packit 8cb997
ipaserver.test.local
Packit 8cb997
```
Packit 8cb997
Packit 8cb997
Packit 8cb997
Example playbook to add a topology segment with default name (cn):
Packit 8cb997
Packit 8cb997
```yaml
Packit 8cb997
---
Packit 8cb997
- name: Playbook to handle topologysegment
Packit 8cb997
  hosts: ipaserver
Packit 8cb997
  become: true
Packit 8cb997
Packit 8cb997
  tasks:
Packit 8cb997
  - name: Add topology segment
Packit 8cb997
    ipatopologysegment:
Packit 8cb997
      ipaadmin_password: MyPassword123
Packit 8cb997
      suffix: domain
Packit 8cb997
      left: ipareplica1.test.local
Packit 8cb997
      right: ipareplica2.test.local
Packit 8cb997
      state: present
Packit 8cb997
```
Packit 8cb997
The name (cn) can also be set if it should not be the default `{left}-to-{right}`.
Packit 8cb997
Packit 8cb997
Packit 8cb997
Example playbook to delete a topology segment:
Packit 8cb997
Packit 8cb997
```yaml
Packit 8cb997
---
Packit 8cb997
- name: Playbook to handle topologysegment
Packit 8cb997
  hosts: ipaserver
Packit 8cb997
  become: true
Packit 8cb997
Packit 8cb997
  tasks:
Packit 8cb997
  - name: Delete topology segment
Packit 8cb997
    ipatopologysegment:
Packit 8cb997
      ipaadmin_password: MyPassword123
Packit 8cb997
      suffix: domain
Packit 8cb997
      left: ipareplica1.test.local
Packit 8cb997
      right: ipareplica2.test.local
Packit 8cb997
      state: absent
Packit 8cb997
```
Packit 8cb997
It is possible to either use the name (cn) or left and right nodes. If left and right nodes are used, then the name will be searched and used internally.
Packit 8cb997
Packit 8cb997
Packit 8cb997
Example playbook to reinitialize a topology segment:
Packit 8cb997
Packit 8cb997
```yaml
Packit 8cb997
---
Packit 8cb997
- name: Playbook to handle topologysegment
Packit 8cb997
  hosts: ipaserver
Packit 8cb997
  become: true
Packit 8cb997
Packit 8cb997
  tasks:
Packit 8cb997
  - name: Reinitialize topology segment
Packit 8cb997
    ipatopologysegment:
Packit 8cb997
      ipaadmin_password: MyPassword123
Packit 8cb997
      suffix: domain
Packit 8cb997
      left: ipareplica1.test.local
Packit 8cb997
      right: ipareplica2.test.local
Packit 8cb997
      direction: left-to-right
Packit 8cb997
      state: reinitialized
Packit 8cb997
```
Packit 8cb997
It is possible to either use the name (cn) or left and right nodes. If left and right nodes are used, then the name will be searched and used internally.
Packit 8cb997
Packit 8cb997
Packit 8cb997
Example playbook to verify a topology suffix:
Packit 8cb997
Packit 8cb997
```yaml
Packit 8cb997
---
Packit 8cb997
- name: Playbook to handle topologysuffix
Packit 8cb997
  hosts: ipaserver
Packit 8cb997
  become: true
Packit 8cb997
Packit 8cb997
  tasks:
Packit 8cb997
  - name: Verify topology suffix
Packit 8cb997
    ipatopologysuffix:
Packit 8cb997
      ipaadmin_password: MyPassword123
Packit 8cb997
      suffix: domain
Packit 8cb997
      state: verified
Packit 8cb997
```
Packit 8cb997
Packit 8cb997
Example playbook to add or remove or check or reinitialize a list of topology segments:
Packit 8cb997
Packit 8cb997
```yaml
Packit 8cb997
---
Packit 8cb997
- name: Add topology segments
Packit 8cb997
  hosts: ipaserver
Packit 8cb997
  become: true
Packit 8cb997
  gather_facts: false
Packit 8cb997
Packit 8cb997
  vars:
Packit 8cb997
    ipaadmin_password: password1
Packit 8cb997
    ipatopology_segments:
Packit 8cb997
    - {suffix: domain, left: replica1.test.local, right: replica2.test.local}
Packit 8cb997
    - {suffix: domain, left: replica2.test.local, right: replica3.test.local}
Packit 8cb997
    - {suffix: domain, left: replica3.test.local, right: replica4.test.local}
Packit 8cb997
    - {suffix: domain+ca, left: replica4.test.local, right: replica1.test.local}
Packit 8cb997
Packit 8cb997
  tasks:
Packit 8cb997
  - name: Add topology segment
Packit 8cb997
    ipatopologysegment:
Packit 8cb997
      ipaadmin_password: "{{ ipaadmin_password }}"
Packit 8cb997
      suffix: "{{ item.suffix }}"
Packit 8cb997
      name: "{{ item.name | default(omit) }}"
Packit 8cb997
      left: "{{ item.left }}"
Packit 8cb997
      right: "{{ item.right }}"
Packit 8cb997
      state: present
Packit 8cb997
      #state: absent
Packit 8cb997
      #state: checked
Packit 8cb997
      #state: reinitialized
Packit 8cb997
    loop: "{{ ipatopology_segments | default([]) }}"
Packit 8cb997
```
Packit 8cb997
Packit 8cb997
Packit 8cb997
Variables
Packit 8cb997
=========
Packit 8cb997
Packit 8cb997
ipatopologysegment
Packit 8cb997
------------------
Packit 8cb997
Packit 8cb997
Variable | Description | Required
Packit 8cb997
-------- | ----------- | --------
Packit 8cb997
`ipaadmin_principal` | The admin principal is a string and defaults to `admin` | no
Packit 8cb997
`ipaadmin_password` | The admin password is a string and is required if there is no admin ticket available on the node | no
Packit 8cb997
`suffix` | The topology suffix to be used, this can either be `domain`, `ca` or `domain+ca` | yes
Packit 8cb997
`name` \| `cn` | The topology segment name (cn) is the unique identifier for a segment. | no
Packit 8cb997
`left` \| `leftnode` | The left replication node string - an IPA server | no
Packit 8cb997
`right` \| `rightnode` | The right replication node string - an IPA server | no
Packit 8cb997
`direction` | The direction a segment will be reinitialized. It can either be `left-to-right` or `right-to-left` and only used with `state: reinitialized` | 
Packit 8cb997
`state` | The state to ensure. It can be one of `present`, `absent`, `enabled`, `disabled`, `checked` or `reinitialized` | yes
Packit 8cb997
Packit 8cb997
Packit 8cb997
ipatopologysuffix
Packit 8cb997
-----------------
Packit 8cb997
Packit 8cb997
Verify FreeIPA topology suffix
Packit 8cb997
Packit 8cb997
Variable | Description | Required
Packit 8cb997
-------- | ----------- | --------
Packit 8cb997
`ipaadmin_principal` | The admin principal is a string and defaults to `admin` | no
Packit 8cb997
`ipaadmin_password` | The admin password is a string and is required if there is no admin ticket available on the node | no
Packit 8cb997
`suffix` | The topology suffix to be used, this can either be `domain` or `ca` | yes
Packit 8cb997
`state` | The state to ensure. It can only be `verified` | yes
Packit 8cb997
Packit 8cb997
Packit 8cb997
Authors
Packit 8cb997
=======
Packit 8cb997
Packit 8cb997
Thomas Woerner