Blob Blame Raw
# Turn off automatic python byte compilation because these are Ansible
# roles and the files are transferred to the node and compiled there with
# the python verison used in the node
%define __brp_python_bytecompile %{nil}

Summary: Roles and playbooks to deploy FreeIPA servers, replicas and clients
Name: ansible-freeipa
Version: 0.1.5
Release: 2%{?dist}
License: GPLv3+
Patch2: 0002-ipauser-exmaple-playbooks-More-updates.patch
BuildArch: noarch

#Requires: ansible

ansible-freeipa provides Ansible roles and playbooks to install and uninstall
FreeIPA servers, replicas and clients.

Note: The ansible playbooks and roles require a configured ansible environment
where the ansible nodes are reachable and are properly set up to have an IP
address and a working package manager.


- Server, replica and client deployment
- Cluster deployments: Server, replicas and clients in one playbook
- One-time-password (OTP) support for client installation
- Repair mode for clients

Supported FreeIPA Versions

FreeIPA versions 4.6 and up are supported by all roles.

The client role supports versions 4.4 and up, the server role is working with
versions 4.5 and up, the replica role is currently only working with versions
4.6 and up.

Supported Distributions

- RHEL/CentOS 7.4+
- Fedora 26+
- Ubuntu


  - Ansible version: 2.5+
  - python3-gssapi is required on the controller if a one time password (OTP)
    is used to install the client.

  - Supported FreeIPA version (see above)
  - Supported distribution (needed for package installation only, see above)


External CA support is not supported or working. The currently needed two step
process is an issue for the processing in the role. The configuration of the
server is partly done already and needs to be continued after the CSR has been
handled. This is for example breaking the deployment of a server with replicas
or clients in one playbook.

%setup -q
# Do not create backup files with patches
%patch1 -p1
%patch2 -p1
# Fix python modules and module utils:
# - Remove shebang
# - Remove execute flag
for i in roles/ipa*/library/*.py roles/ipa*/module_utils/*.py plugins/*/*.py; do
    sed -i '/\/usr\/bin\/python*/d' $i
    chmod a-x $i
# Add execute flag to scripts
chmod a+x roles/ipa*/files/


install -m 755 -d %{buildroot}%{_datadir}/ansible/roles/
cp -rp roles/ipaserver %{buildroot}%{_datadir}/ansible/roles/
cp -rp roles/ipaserver/
cp -rp roles/ipareplica %{buildroot}%{_datadir}/ansible/roles/
cp -rp roles/ipareplica/
cp -rp roles/ipaclient %{buildroot}%{_datadir}/ansible/roles/
cp -rp roles/ipaclient/
install -m 755 -d %{buildroot}%{_datadir}/ansible/plugins/
cp -rp plugins/* %{buildroot}%{_datadir}/ansible/plugins/

%license COPYING
%doc README*.md
%doc playbooks

* Tue Jul  9 2019 Thomas Woerner <> - 0.1.5-2
- Update Fixed examples, new example
- ipauser example playbooks: Fixed actions, new example

* Tue Jul  9 2019 Thomas Woerner <> - 0.1.5-1
- Update to version 0.1.5
  - Support for IPA 4.8.0
  - New user management module
  - New group management module
  - ipaserver: Support external signed CA
  - RHEL-8 specific vars files to be able to install needed modules
  - ipareplica: Fixes for certmonger and kra setup
  - New tests folder
  - OTP related updates to README files
- Updates of version 0.1.4
  - ipatopologysegment: Use commands, not command
- Updates of version 0.1.3
  - ipaclient_test: Fix Python2 decode use with Python3
  - Fixed: #86 (AttributeError: 'str' object has no attribute 'decode')
  - ipaclient_get_otp: Remove ansible_python_interpreter handling
  - ipaclient: Use omit (None) for password, keytab, no string length checks
  - ipaclient_join: Support to use ipaadmin_keytab without ipaclient_use_otp
  - ipaclient: Report error message if ipaclient_get_otp failed
  - Fixes #17 Improve how tasks manage package installation
  - ipareplica: The dm password is not needed for ipareplica_master_password
  - ipareplica: Use ipareplica_server if set
  - ipatopologysegment: Allow domain+ca suffix, new state: checked
  - Documentation updates
  - Cleanups
- Update of version 0.1.2
  - Now a new Ansible Collection
  - Fix gssapi requirement for OTP: It is only needed if keytab is used with
    OTP now.
  - Fix wrong ansible argument types
  - Do not fail on textwrap for replica deployments with CA
  - Ansible lint and galaxy fixes
  - Disable automatic removal of replication agreements in uninstall
  - Enable freeipa-trust service if adtrust is enabled
  - Add support for hidden replica
  - New topology managament modules
  - Add support for pki_config_override
  - Fix host name setup in server deployment
  - Fix errors when ipaservers variable is not set
  - Fix ipaclient install role length typo
  - Cleanups

* Mon May  6 2019 Thomas Woerner <> - 0.1.1-1
- Initial package