Commit Graph

88 Commits

Author SHA1 Message Date
Thomas Woerner
3de056bc60 ipaclient_test: Fix Python2 decode use with Python3
This is a remain of the Python2 version and has been fixed.

Fixed: #86 (AttributeError: 'str' object has no attribute 'decode')
2019-06-12 11:00:59 +02:00
Thomas Woerner
6d328caa59 ipaserver_test: Treat host, domain and realm settings in the same was as the cli
The code for host_name, the domain_name and also the realm_name has been
adapted to the code in the command line installer. The _hostname_overridden
setting is now only true if the hostname has been changed.
2019-06-07 17:59:12 +02:00
Thomas Woerner
6fe001e804 ipaserver: Only use install checks in _prepare, not also in _test
The install checks have been done temporarily in _test and finally also
in _prepare. This is not needed and also not done this way in the command
line installers.
2019-06-07 17:57:17 +02:00
Thomas Woerner
e1aa9641a4 ipaserver: Add log, debug and info to AnsibleModuleLog
This makes AnsibleModuleLog compatible to the version in ipareplica role.
2019-06-07 17:48:19 +02:00
Thomas Woerner
7d43c861bb ipaserver: Add support for pki_config_override
The addtion is not oly adding the config setting, but also fixing the
deployment without the setting as functions and methods have been changed
for pki_config_override.

There is a new setting for the ipaserver role:

ipaserver_pki_config_override
2019-06-07 17:45:16 +02:00
Thomas Woerner
df65de902d ipaserver_setup_http: Only use tasks.restore_context for old releases
tasks.restore_context is only used in old releases. The existence of
paths.CACHE_IPA_SESSIONS is used to determine if the call needs to be
done or not.
2019-06-07 17:39:41 +02:00
Thomas Woerner
46925086b7 ipaserver: Remove old section for client side deployment using command line
The section is not used since a long time any more and can therefore be
removed.
2019-06-07 17:28:29 +02:00
Thomas Woerner
c82867585b Increase minimal Ansible version to 2.8
ansible-freeipa is a new Ansible Collection introduced with Ansible 2.8 and
Ansible Galaxy 3.2.
2019-06-05 17:55:21 +02:00
Thomas Woerner
c822423b14 Move role documentation into the specific role locations as README.md
This will result in a better role documentation on galaxy.
2019-06-05 16:38:12 +02:00
Thomas Woerner
b51397eb89 ipa[server,replica,client]: Deactivate Python2/3 test
This test is not properly working with EL-8 nodes as the default system
python is not located in /usr/bin. Additionally Ansible 2.8 is able to
detect the default python version on the system. As the installation
base for IPA 4.5.90 where the Python 3 bindings have not been working
properly should be really small or not existing any more the deactivation
of this test should be fine.
2019-06-04 11:58:52 +02:00
Thomas Woerner
5951b954be ipa[server,replica]: Enable freeipa-trust service if adtrust is enabled
The freeipa-trust service has not been added if adtrust was enabled. For
ipareplica the addition of freeipa-replication has been removed as the
used port is not used anymore since some time.

Fixes: #83 (when installing with ipaserver_setup_adtrust: true the firewalld
service freeipa-trust is not added)
2019-05-31 18:04:07 +02:00
Thomas Woerner
dd321b2065 ipa[server,replica]: Fix wrong ansible argment types
This fixes the type warnings while deploying server and replica.
2019-05-31 17:29:59 +02:00
Thomas Woerner
0ddd62ea01 Comment out EL-8 for now. It is not known by ansible galaxy so far 2019-05-03 19:13:37 +02:00
Thomas Woerner
36afd2220e ipa[server,replica]: Calm down ansible and yaml lint in ansible-galaxy 2019-05-03 19:11:58 +02:00
Thomas Woerner
2be00c1e0f ipa[server,replica]: Remove ipaclient dependency again
The dependency is either working with galaxy or with local role collection
but not with both because the role name is for the first t_woerner.ipaclient
but for the second it needs to be ipaclient only.
2019-05-03 19:09:37 +02:00
Thomas Woerner
bb9abeec8c ipa[server,replica]: Use proper dependency for ipaclient role 2019-05-03 17:42:47 +02:00
Thomas Woerner
8c77c34d5f ipa[server,replica,client]: Update galaxy info
Dependencies and platforms have been updated. Commented out lines has been
removed.
2019-05-03 17:37:32 +02:00
Thomas Woerner
12006859d9 Fix white space issues in yaml files and ansible vars 2019-05-03 17:36:52 +02:00
Thomas Woerner
4d759b64ab Revert "ipa[server,replica,client]: Do not enforce ansible_fqdn as hostname"
This reverts commit bbaaf1f74c.
2019-04-18 17:56:14 +02:00
Thomas Woerner
a980aec1f8 ipaserver_setup_adtrust: Add missing settings for adtrust and module
There have been missing settings that have not been provided to
ipaserver_setup_adtrust. These are: enable_compat, rid_base and
secondary_rid_base.

The settings rid_base and secondary_rid_base are now initialized in
ipaserver_test and propagated in the results.

The two settings netbios_name and reset_netbios_name are placed in the
adtrust binding in the adtrust.install_check call. These are now saved
when ipaserver_test finishes and are written back in the fist steps of
ipaserver_setup_adtrust to make adtrust.install working.

The settings add_sids and add_agents are now initialized in
ansible_ipa_server in the same way as in ServerMasterInstall. These
settings are fixed in the server deployment.
2019-04-17 17:16:48 +02:00
Thomas Woerner
482e3e944f ipaserver_test: Fix traceback caused by an Error
In case of an RuntimeError, ValueError or ScriptError the fail_json call
was done on module instead of ansible_module. module simply does not exist.
2019-04-17 17:01:30 +02:00
Thomas Woerner
0954f84572 ipa[server,replica,client]: Do not use meta end_play
Meta end_play has been used as a simple solution to end the playbook
processing in special conditions, like for example when the deployment
was already done before.

meta end_play has been replaced with blocks and conditions for these
blocks.

Fixes: #70 (Avoid using meta end_play)
2019-04-17 15:08:36 +02:00
Thomas Woerner
bbaaf1f74c ipa[server,replica,client]: Do not enforce ansible_fqdn as hostname
The ansible_fqdn hostname has been enforced to be set and used in
ipaserver, ipareplica and also ipaclient role. This has been removed as
the hostname should only be set if specified explicitly with
ipa[server,replica,client]_hostname.
2019-04-17 15:06:23 +02:00
Thomas Woerner
cdc431ff92 ipa[client,replica,server]: Make sure that installer logs are created
The installer logs have not been created using the ansible ipaclient,
ipareplica and ipaserver roles. This has been fixed and the installer
logs are created now. This is a new and fixed version of 2113c79 where
verbose mode is turned off.
2019-04-16 14:50:55 +02:00
Thomas Woerner
0b5b5756c7 Revert "ipa[client,replica,server]: Make sure that installer logs are created"
The call of standard_logging_setup results in verbose and debug output in
the ansible modules. This needs to be done in an altenative way.

This reverts commit 2113c79111.
2019-04-05 18:12:07 +02:00
Thomas Woerner
387f555560 ansible_ipa_server: Add missing inspect import
The inspect binding is needed because of the inspection of
validate_domain_name that has been introduced with commit
818db5cb4d for FreeIPA versions prior
to 4.7.
2019-04-05 12:25:49 +02:00
Thomas Woerner
818db5cb4d ipa[client,server]: Inspect validate_domain_name for 4.6 and prior
The entity argument for validate_domain_name is only available in
FreeIPA 4.7 and later. This has been fixed using inspect to be able to
detect if entity is a valid argument. If not the whole realm name check
is skipped.

Related: #61 (ipaserver role - Fails on ipaclient install)
Fixes: #66 (Python 2 error with validate_domain)
2019-04-04 17:20:15 +02:00
Thomas Woerner
25495d1e40 ipaserver_test: Do not show traceback in case of testing failures
ipaserver_test was not handling possible exceptions in the tests which
resulted in a traceback. This has been fixed.
2019-04-04 14:51:54 +02:00
Thomas Woerner
f33d234d5a ansible_ipa_server: Remove user_input, add missing DN and ntpinstance
Removed unused user_input import from ipapython.ipautil. Added import
of DN from ipapython.dn. Set ntpinstance to None if timeconf or
sync_time could not be imported on older FreeIPA releases.
2019-04-03 19:00:53 +02:00
Thomas Woerner
b6a562b818 ipaserver: Use ipaserver_install_packages for ipaclient deployment part
Use ipaserver_install_packages to enable or disable package installation
for the client deployment part with ipaclient role.
2019-04-03 19:00:53 +02:00
Thomas Woerner
2113c79111 ipa[client,replica,server]: Make sure that installer logs are created
The installer logs have not been created using the ansible ipaclient,
ipareplica and ipaserver roles. This has been fixed and the installer
logs are created now.
2019-04-03 14:20:18 +02:00
Thomas Woerner
4557292743 ipa[server,replica,client]: Do not try to execute tasks after the role test
The role test is executed in the ipa[server,replica,client] roles first.
These tests are usable in the Ansible test mode, but the folllowing steps
in the task list are not. Therefore the blocks following the tests are
limited to not being executed in test mode.
2019-03-26 14:22:26 +01:00
Thomas Woerner
82588026bf python_2_3_test: Make sure that python_2_3_test is also executed in test mode
python_2_3_test needs to be executed also in test mode to make sure that the
follwing ipa[server,replica,client]_test modules could be executed also in
test mode.
2019-03-26 14:19:56 +01:00
Thomas Woerner
9a9138150b ipaserver_test: Do not mark ipaserver_test as changed.
The changed flag is not set to True any more to make sure that the try
to deploy an already deployed server again will not result in an error.
2019-03-26 14:17:05 +01:00
Thomas Woerner
7ce09b2cc9 python_2_3_test: Add result_ prefix to registered result from py3test.py script
For consitency the result_ prefix has been added to the registered result
of the py3test.py script.
2019-03-26 14:03:31 +01:00
David Sastre Medina
9504c71214 Move module_utils to role specific locations 2019-02-20 11:05:59 +01:00
Thomas Woerner
a28378396f ipa[server,replica]: Renamed X_no_firewalld to X_setup_firewalld
The use of the _no_ prefix was not good and has been fixed now.

The X_setup_firewalld settings default to yes.
2019-02-12 13:50:07 +01:00
Thomas Woerner
77d0a1067a ipa[server,replica,client]: New setting X_install_packages
With these settings for server, replica and client it is possible to skip
package installation. This is for example useful if the packages are already
installed. The settings default to yes

The setting ipareplica_no_package_install has been removed.
2019-02-12 13:50:04 +01:00
Alessandro De Blasis
3c952cdb16 Fixes #51 upstream 2019-02-01 13:15:44 +00:00
Thomas Woerner
36c7e0e122 ipaserver_setup_custodia: options.promote needs to be set
The use of custodiainstance.get_custodia_instance requires that
options.promote exists. As this is a server installation, promote
is set to False.
2018-11-22 16:29:34 +01:00
Thomas Woerner
20d25d0d43 Replace deprecated include with import_tasks and include_tasks
As the old way to include tasks is deprecated, replace static include
statements with import_tasks and dynamic ones with include_tasks.

Increaded the required ansible version to 2.5.0 to make sure that
include_tasks and import_tasks is working as expected.

Fixes issue #38
2018-11-22 16:26:58 +01:00
Thomas Woerner
6910d99fc9 ipaserver: Fix NameError: name 'api_Backend_ldap2_connect' is not defined
ipaserver_setup_adtrust was using api_Backend_ldap2_connect instead of
api_Backend_ldap2 with attribute connect set to True.

Fixes issue #39
2018-11-22 15:39:41 +01:00
Thomas Woerner
cd96c8a07c ipaserver: Transform DNS overlap end_play into a failure
This is more like the normal installer behavior and should also help with
issue #50: https://github.com/freeipa/ansible-freeipa/issues/50
2018-11-22 15:27:12 +01:00
Thomas Woerner
785cff9a0e ipaserver: Fix use of subject_validator in ipaserver_test
subject_validator and also VALID_SUBJECT_ATTRS are provided of the ca
binding.

Fixes issue #43
2018-11-22 12:36:20 +01:00
Thomas Woerner
a128726567 ipaserver: Delay enabling services until end of installer
Service entries in cn=FQDN,cn=masters,cn=ipa,cn=etc are no longer
created as enabled. Instead they are flagged as configuredService. At
the very end of the installer, the service entries are switched from
configured to enabled service.

This is related to freeipa upstream commit:

Delay enabling services until end of installer:
  https://github.com/freeipa/freeipa/commit/7284097
2018-11-22 11:51:36 +01:00
Thomas Woerner
73b0505299 ipaserver: Use Custodia instance in installers and setup before CA
Custodia is configured before CA and used in the setup of CA. Also add
support for name FIRST_MASTER as a replacement for MASTER_PEER.

This is related to the freeipa upstream commits:

Use single Custodia instance in installers:
  https://github.com/freeipa/freeipa/commit/994f71a
Rename CustodiaModes.STANDALONE to CustodiaModes.FIRST_MASTER:
  https://github.com/freeipa/freeipa/commit/842cb5f
2018-11-22 11:51:08 +01:00
Thomas Woerner
b2583f7078 Ubuntu support added (partly pick from pyguy)
This is a partly pick of the changes done by pyguy for pull request #28.
The unrelated changed on inventory files have been removed and the change
to the README has been adapted to use the "Supported Distributions" section.

The original commits by pyguy in https://github.com/pyguy/ansible-freeipa
are:

commit 1ed1fa845eafd69432b1fd1fc8e5329e4991e84a
Author: pyguy <hr.josheghani@gmail.com>
Date:   Mon Jun 25 17:17:31 2018 +0430

    Ubuntu Support added

commit 9a4a7c84e4af20af27e814aba4fc2c6b8b35ec0f
Author: pyguy <hr.josheghani@gmail.com>
Date:   Sun Jun 24 10:58:07 2018 +0430

    Ubuntu support added
2018-07-23 11:07:23 +02:00
Thomas Woerner
b282fc5088 ipaserver/library/ipaserver_test: adtrust message should be warning
Tee message for a domain and realm name mismatch should be a warning and
not a fail in the ipaserver test. It is also a warning in the normal
installer.
2018-07-09 13:39:17 +02:00
Thomas Woerner
c8be120e78 ipaserver: Do no use IPA version to check for get_custodia_instance existance
The use of IPA versions to determine if get_custodia_instance should be
used was not optimal as the patch that introduced this has been back-ported
to the EL-7 package with verion 4.5.4. As get_custodia_instance was not
available before we can simply check if get_custodia_instance exists in
custodiainstance.
2018-07-09 13:07:47 +02:00
Siva Paramasivam
2f3ee6dc29 Added missing parameter realm to setup_kra 2018-07-06 23:04:55 -07:00