Commit Graph

566 Commits

Author SHA1 Message Date
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
2cffd6ebf9 ipaclient_setup_ntp: Use time sync code from 4.6.4 if sync_time is not defined
The FreeIPA versions since 4.7.0 are using chrony and also the new
sync_time function for time synchronization which has been added to
ipaclient/install/client.py.

The old version in ipaclient_setup_ntp has been updated to the code that
has been used in 4.6.4.
2019-04-17 14:36:50 +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
819bb5700e ipareplica/tasks/install.yml: Omit forward_policy if not set in ipareplica_test
forward_policy is only set in dns.install_test in ipareplica_test if
setup_dns is enabled. Therefore forward_policy will be ommited in this
case.
2019-04-05 19:16:17 +02:00
Thomas Woerner
658f830970 ipaclient_setup_ntp: Add missing cli_servers, fix options.ntp_servers check
cli_servers from ipaclient_test was missing in ipaclient_setup_ntp. This
resulted in a backtrace and is fixed now. Fix options.ntp_servers check
to not use length on NoneType.
2019-04-05 19:09:08 +02:00
Thomas Woerner
40905510ca ansible_ipa_replica: Add import of ntpinstance again
This is needed in ipareplica_setup_ds and has been removed before as part
of commit f33d234d5a.
2019-04-05 18:29:49 +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
15f650ccaa ipaclient: Fix issues with FreeIPA 4.6 and prior
check_ldap_conf is only available in FreeIPA 4.7 and later and
tasks.is_nosssd_supported is only available since 4.6.90.pre2.

check_ldap_conf is None (ansible_ipa_client) if it can not be imported.
hasattr has been added to check if is_nosssd_supported is a valid
attribute in tasks.

Fixes: #61 (ipaserver role - Fails on ipaclient install)
2019-04-04 17:28:37 +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
de039aa0c8 ipaclient: Use ipaclient_all_ip_addresses instead of ipahost_all_ip_addresses (2)
This setting had the wrong and unsed prefix ipahost. THis has been fixed and
the proper prefix ipaclient is now used.

The change in ipaclient/defaults/main.yml was missing from the first commit
b5d6dc00d2
2019-04-03 21:30:15 +02:00
Thomas Woerner
5d79745e88 ipareplica_test: Deactivate adtrust_imported and kra_imported tests
These test are failing because there is no adtrust_imported and
kra_imported setting yet in ansible_ipa_replica.
2019-04-03 19:16:21 +02:00
Thomas Woerner
7a2d2c5236 ipareplica_prepare: Properly fail if replica_conn_check failed
If replica_conn_check failed a back trace was printed instead of a proper
failure in ansible. Thias has been fixed.
2019-04-03 19:16:21 +02:00
Thomas Woerner
44ce7263de ipareplica: Fix DNS setup issues
The configuration of DNS failed because of missing DNS settings in the
ipareplica_prepare and ipareplica_setup_dns.

Some fixed settings for use with DNSInstallInterface have been added
to ansible_ipa_replica:

options.dnssec_master = False
options.disable_dnssec_master = False
options.kasp_db_file = None
options.force = False

Fixes: #58 (install-replica fails: reverse_zones seems to be empty)
Fixes: #63 (ipareplica_setup_dns fails)
2019-04-03 19:15:26 +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
995864cf52 ipareplica: Use ipareplica_install_packages for ipaclient deployment part
Use ipareplica_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
b8885c8dfd ipareplica_enable_ipa: DO not create unused replica config
Replica config is not needed and there fore has been removed.
2019-04-03 19:00:53 +02:00
Thomas Woerner
69f0f1e59c ipareplica_setup_ds: Cleanup of unused dns settings in options
The dns settings in options have not been used and also not provided to
the module in the tasks file. Therefore these settings shoul dbe removed.
2019-04-03 19:00:53 +02:00
Thomas Woerner
cc942cb932 ipareplica_install_ca_certs: Cleanup of unused dns settings in options
The dns settings in options have not been used and also not provided to
the module in the tasks file. Therefore these settings shoul dbe removed.
2019-04-03 19:00:42 +02:00
Thomas Woerner
9bfd76a60f ipareplica_create_ipa_conf: Cleanup of unused dns settings in options
The dns settings in options have not been used and also not provided to
the module in the tasks file. Therefore these settings shoul dbe removed.
2019-04-03 18:55:32 +02:00
Thomas Woerner
88f5a68e10 ipareplica: Replace ipaserver_master_password, remove ipaserver_setup_ntp
ipaserver_master_password and ipaserver_setup_ntp have been linked from
the ipaserver role before. With the move of the module_utils parts to the
specific role locations the use of ipaserver modules leads to the missing
dependency ansible_ipa_server, that is now only available in the server
role.

The ipaserver_master_password module has been replaced by the ipareplica
specific ipareplica_master_password module. The ipaserver_setup_ntp module
has been removed as the time related changes for replica are done in the
client install part.

Fixes: #59 (Module is missing interpreter line)
2019-04-03 18:37:50 +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
b5d6dc00d2 ipaclient: Use ipaclient_all_ip_addresses instead of ipahost_all_ip_addresses
This setting had the wrong and unsed prefix ipahost. THis has been fixed and
the proper prefix ipaclient is now used.
2019-04-03 14:17:16 +02:00
Thomas Woerner
07a97cb83f ipaclient: Krb5 should only be configured if ipaclient_on_master is not set
Krb5 configuration was also done if ipaclient_on_master was set. This
resulted in a reverted configuration while deploying the client part in
a server deploment.
2019-04-03 14:08:45 +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
88cbbf6309 ipareplica_test: Dop not fail, but end play if replica is already installed
Up to now the try to deploy an already deployed replica resulted in an
error. Now this ends in an end play and no error is reported.
2019-03-26 14:12:17 +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
Thomas Woerner
5b770ae135 New ipareplica_enable_ipa: Use of ipaserver_enable_ipa is not possible anymore
With the changes for IPA enablement in the replica installer it is not
possible anymore to enable the IPA server in the same way as in the
server deployment.

The new module ipareplica_enable_ipa has been added and the link for
ipaserver_enable_ipa has been removed.
2019-03-26 13:39:36 +01:00
Thomas Woerner
98a6e0a78c ipareplica_setup_adtrust: Fix setup_ca, master_host_name and ldap2 backend connection
The parameter config_setup_ca has been renamed to setup_ca and added to
options. master_host_name has been added to config. Also a call for
api.Backend.ldap2.connect has been added to make sure that the backend is
connected.
2019-03-26 13:39:36 +01:00
Thomas Woerner
ebce1ace1a ipareplica_setup_krb: Use inspect on install_krb
The promote argument has been dropped with the final removal of domain
level 0 support in version 4.7.1. The fstore argument has been added
with the 4.7.1 version also.
2019-03-26 13:39:36 +01:00
Thomas Woerner
5f6efc32d2 ipareplica_setup_http: Use inspect on install_http
The promote argument has been dropped with the final removal of domain
level 0 support in version 4.7.1. The fstore argument has been added
with the 4.7.1 version also.
2019-03-26 13:39:36 +01:00
Thomas Woerner
9fb32b2322 ipareplica_setup_ds: Use inspect on install_replica_ds and install_dns_records
The promote argument has been dropped with the final removal of domain
level 0 support in version 4.7.1. The fstore argument has been added
with the 4.7.1 version also.
2019-03-26 13:39:36 +01:00
Thomas Woerner
b8dd597a69 ansible_ipa_replica: Cleaned up double and unused imports
Double imports and also the import of create_replica_config from
ipaserver.install.installutils have been removed. create_replica_config
is not used because the use of domain level 0 is not supported.
2019-03-26 13:39:36 +01:00
Thomas Woerner
475df2bf5e ipareplica_test: Added ntp_server, ntp_pool and some ntp related tests
ntp_server and ntp_pool are now provided to ipareplica_test. A conflict
test with no_ntp has been added from the normal installer.

Also added are references to options.password and options.dm_password, but
these are commented out and not used or provided to the module.

Proper ntp_servers and ntp_pool tests are needed still.
2019-03-26 13:39:36 +01:00
Thomas Woerner
a441df090b ipareplica_prepare: Use MIN_DOMAIN_LEVEL instead of DOMAIN_LEVEL_1 in checks
With FreeIPA 4.7.0 there is no support for domain level 0 anymore, the
check for the minimal domain level should use MIN_DOMAIN_LEVEL instead of
DOMAIN_LEVEL_1.
2019-03-26 11:42:15 +01:00
Thomas Woerner
1df12a614b ipareplica py3test: Try to import promote_check if install_check is not defined
Since FreeIPA version 4.7.1 there is no install_check defined anymore in
ipaserver.install.server.replicainstall.
2019-03-26 11:38:44 +01:00
Thomas Woerner
059eae4717 ipaclient_test: Added error message to ScriptError calls only using rval
The use of ScriptError without an error message but with rval resulted in
very limited information in ansible. The error messages from logger.error
calls have have added to these ScriptError raises.
2019-03-26 11:34:07 +01:00
Thomas Woerner
3251d0acd4 ipaclient/tasks/install.yml: Removed empty line in ipaclient_setup_sssd section
Removed addtional empty line in ipaclient_setup_sssd sectio
2019-03-26 11:08:12 +01:00
Thomas Woerner
c7fd2cacf3 ipaclient/tasks/install.yml: Removed default(omit) for bool variables
default(omit) is not needed for bool values, as these need to be set either
way.
2019-03-26 11:05:30 +01:00
Thomas Woerner
90b101310a module_utils/ansible_ipa_client: Deactivate __getattr__ in installer_obj
The __getattr__ method in installer_obj was used for debugging to make
sure that all needed settings in the installer object have been set.
2019-03-26 09:56:49 +01:00
Thomas Woerner
314010c043 ipaclient_test: Remove debugging warning output
A remain from debugging in ipaclient_test has been removed.
2019-03-26 09:43:11 +01:00
Thomas Woerner
fdb44fc2c4 ipaclient_get_otp: Fix password encoding
Deploying a client with one-time password use was failing in latest tests
using ansible 2.7 and FreeIPA 4.7 because of an encoding problem.
2019-03-25 19:52:40 +01:00
Thomas Woerner
a6ee0d0756 ipaclient: End install if already installed and no allow_repair and force_join
If the client is already installed and the allow_repair and force_join
options are not set end the playbook processing. This is useful if an
inventory file contains existing and new machines.
2019-03-25 19:51:58 +01:00
Thomas Woerner
099317fe9c New ipaclient_setup_krb5: Use ipaclient_setup_krb5 instead of ipa-krb5 role
The advantage of this is that the krb5 configuration is created in the same
way as in the normal installers. The same functionality as in the normal
installers is used in ipaclient_setup_krb5. There is no need to adapt the
ipa-krb5 role or the the ask file for changes in how the krb5 configuration
is done. Additionally ipaclient_force is now a supported parameter as
it is in the normal installer.

New config option:

ipaclient_force

The variable has been added to ipaclient/defaults/main.yml.
2019-03-25 16:53:32 +01:00
Thomas Woerner
b942661788 New ipaclient_ipa_conf: Use ipaclient_ipa_conf instead of ipaconf role
The advantage of this is that the ipa default configuration is created in
the same way as in the normal installers. The same functionality as in the
normal installers is used in ipaclient_ipa_conf.
2019-03-25 16:48:29 +01:00