Blame README-hostgroup.md

Packit Service 0a38ef
Hostgroup module
Packit Service 0a38ef
================
Packit Service 0a38ef
Packit Service 0a38ef
Description
Packit Service 0a38ef
-----------
Packit Service 0a38ef
Packit Service 0a38ef
The hostgroup module allows to ensure presence and absence of hostgroups and members of hostgroups.
Packit Service 0a38ef
Packit Service 0a38ef
The hostgroup module is as compatible as possible to the Ansible upstream `ipa_hostgroup` module, but additionally offers to make sure that hosts are present or absent in a hostgroup.
Packit Service 0a38ef
Packit Service 0a38ef
Packit Service 0a38ef
Features
Packit Service 0a38ef
--------
Packit Service 0a38ef
* Hostgroup management
Packit Service 0a38ef
Packit Service 0a38ef
Packit Service 0a38ef
Supported FreeIPA Versions
Packit Service 0a38ef
--------------------------
Packit Service 0a38ef
Packit Service 0a38ef
FreeIPA versions 4.4.0 and up are supported by the ipahostgroup module.
Packit Service 0a38ef
Packit Service a166ed
Some variables are only supported on newer versions of FreeIPA. Check `Variables` section for details.
Packit Service a166ed
Packit Service 0a38ef
Packit Service 0a38ef
Requirements
Packit Service 0a38ef
------------
Packit Service 0a38ef
Packit Service 0a38ef
**Controller**
Packit Service 0a38ef
* Ansible version: 2.8+
Packit Service 0a38ef
Packit Service 0a38ef
**Node**
Packit Service 0a38ef
* Supported FreeIPA version (see above)
Packit Service 0a38ef
Packit Service 0a38ef
Packit Service 0a38ef
Usage
Packit Service 0a38ef
=====
Packit Service 0a38ef
Packit Service 0a38ef
Example inventory file
Packit Service 0a38ef
Packit Service 0a38ef
```ini
Packit Service 0a38ef
[ipaserver]
Packit Service 0a38ef
ipaserver.test.local
Packit Service 0a38ef
```
Packit Service 0a38ef
Packit Service 0a38ef
Packit Service 0a38ef
Example playbook to make sure hostgroup databases exists:
Packit Service 0a38ef
Packit Service 0a38ef
```yaml
Packit Service 0a38ef
---
Packit Service 0a38ef
- name: Playbook to handle hostgroups
Packit Service 0a38ef
  hosts: ipaserver
Packit Service 0a38ef
  become: true
Packit Service 0a38ef
Packit Service 0a38ef
  tasks:
Packit Service 0a38ef
  # Ensure host-group databases is present
Packit Service 0a38ef
  - ipahostgroup:
Packit Service 0a38ef
      ipaadmin_password: SomeADMINpassword
Packit Service 0a38ef
      name: databases
Packit Service 0a38ef
      host:
Packit Service 0a38ef
      - db.example.com
Packit Service 0a38ef
      hostgroup:
Packit Service 0a38ef
      - mysql-server
Packit Service 0a38ef
      - oracle-server
Packit Service 0a38ef
```
Packit Service 0a38ef
Packit Service 0a38ef
Example playbook to make sure that hosts and hostgroups are present in existing databases hostgroup:
Packit Service 0a38ef
Packit Service 0a38ef
```yaml
Packit Service 0a38ef
---
Packit Service 0a38ef
- name: Playbook to handle hostgroups
Packit Service 0a38ef
  hosts: ipaserver
Packit Service 0a38ef
  become: true
Packit Service 0a38ef
Packit Service 0a38ef
  tasks:
Packit Service 0a38ef
  # Ensure hosts and hostgroups are present in existing databases hostgroup
Packit Service 0a38ef
  - ipahostgroup:
Packit Service 0a38ef
      ipaadmin_password: SomeADMINpassword
Packit Service 0a38ef
      name: databases
Packit Service 0a38ef
      host:
Packit Service 0a38ef
      - db.example.com
Packit Service 0a38ef
      hostgroup:
Packit Service 0a38ef
      - mysql-server
Packit Service 0a38ef
      - oracle-server
Packit Service 0a38ef
      action: member
Packit Service 0a38ef
```
Packit Service 0a38ef
`action` controls if a the hostgroup or member will be handled. To add or remove members, set `action` to `member`.
Packit Service 0a38ef
Packit Service 0a38ef
Example playbook to make sure hosts and hostgroups are absent in databases hostgroup:
Packit Service 0a38ef
Packit Service 0a38ef
```yaml
Packit Service 0a38ef
---
Packit Service 0a38ef
- name: Playbook to handle hostgroups
Packit Service 0a38ef
  hosts: ipaserver
Packit Service 0a38ef
  become: true
Packit Service 0a38ef
Packit Service 0a38ef
  tasks:
Packit Service 0a38ef
  # Ensure hosts and hostgroups are absent in databases hostgroup
Packit Service 0a38ef
  - ipahostgroup:
Packit Service 0a38ef
      ipaadmin_password: SomeADMINpassword
Packit Service 0a38ef
      name: databases
Packit Service 0a38ef
      host:
Packit Service 0a38ef
      - db.example.com
Packit Service 0a38ef
      hostgroup:
Packit Service 0a38ef
      - mysql-server
Packit Service 0a38ef
      - oracle-server
Packit Service 0a38ef
      action: member
Packit Service 0a38ef
      state: absent
Packit Service 0a38ef
```
Packit Service 0a38ef
Packit Service a166ed
Example playbook to rename an existing playbook:
Packit Service a166ed
Packit Service a166ed
```yaml
Packit Service a166ed
---
Packit Service a166ed
- name: Playbook to handle hostgroups
Packit Service a166ed
  hosts: ipaserver
Packit Service a166ed
  become: true
Packit Service a166ed
Packit Service a166ed
  tasks:
Packit Service a166ed
  # Ensure host-group databases is absent
Packit Service a166ed
  - ipahostgroup:
Packit Service a166ed
      ipaadmin_password: SomeADMINpassword
Packit Service a166ed
      name: databases
Packit Service a166ed
      rename: datalake
Packit Service a166ed
      state: renamed
Packit Service a166ed
```
Packit Service a166ed
Packit Service 0a38ef
Example playbook to make sure host-group databases is absent:
Packit Service 0a38ef
Packit Service 0a38ef
```yaml
Packit Service 0a38ef
---
Packit Service 0a38ef
- name: Playbook to handle hostgroups
Packit Service 0a38ef
  hosts: ipaserver
Packit Service 0a38ef
  become: true
Packit Service 0a38ef
Packit Service 0a38ef
  tasks:
Packit Service 0a38ef
  # Ensure host-group databases is absent
Packit Service 0a38ef
  - ipahostgroup:
Packit Service 0a38ef
      ipaadmin_password: SomeADMINpassword
Packit Service 0a38ef
      name: databases
Packit Service 0a38ef
      state: absent
Packit Service 0a38ef
```
Packit Service 0a38ef
Packit Service 0a38ef
Variables
Packit Service 0a38ef
=========
Packit Service 0a38ef
Packit Service 0a38ef
ipahostgroup
Packit Service 0a38ef
-------
Packit Service 0a38ef
Packit Service 0a38ef
Variable | Description | Required
Packit Service 0a38ef
-------- | ----------- | --------
Packit Service 0a38ef
`ipaadmin_principal` | The admin principal is a string and defaults to `admin` | no
Packit Service 0a38ef
`ipaadmin_password` | The admin password is a string and is required if there is no admin ticket available on the node | no
Packit Service 0a38ef
`name` \| `cn` | The list of hostgroup name strings. | no
Packit Service 0a38ef
`description` | The hostgroup description string. | no
Packit Service 0a38ef
`nomembers` | Suppress processing of membership attributes. (bool) | no
Packit Service 0a38ef
`host` | List of host name strings assigned to this hostgroup. | no
Packit Service 0a38ef
`hostgroup` | List of hostgroup name strings assigned to this hostgroup. | no
Packit Service 0a38ef
`membermanager_user` | List of member manager users assigned to this hostgroup. Only usable with IPA versions 4.8.4 and up. | no
Packit Service 0a38ef
`membermanager_group` | List of member manager groups assigned to this hostgroup. Only usable with IPA versions 4.8.4 and up. | no
Packit Service a166ed
`rename` \| `new_name` | Rename hostgroup to the provided name. Only usable with IPA versions 4.8.7 and up. | no
Packit Service 0a38ef
`action` | Work on hostgroup or member level. It can be on of `member` or `hostgroup` and defaults to `hostgroup`. | no
Packit Service a166ed
`state` | The state to ensure. It can be one of `present`, `absent` or `renamed`, default: `present`. | no
Packit Service 0a38ef
Packit Service 0a38ef
Packit Service 0a38ef
Authors
Packit Service 0a38ef
=======
Packit Service 0a38ef
Packit Service 0a38ef
Thomas Woerner