Commit Graph

52 Commits

Author SHA1 Message Date
Thomas Woerner
d2968b2611 ipaserver: Support sync_time changes of 4.8.0
sync_time is not using options anymore, but has two new arguments. These
are ntp_servers and ntp_pool. The options argument is not used anymore.

This requires to use inspect on sync_time to be able to detect if the old
or the new function is available.

The call for get_time_source has been added, but is documented out as the
call is only useful in interactive mode.

ipaserver_test now returns ntp_servers and ntp_pool, which are then used
for ipaserver_setup_ntp.
2019-07-05 17:56:38 +02:00
Thomas Woerner
45d8008033 ipaserver: Add support for external signed CA
This adds support for the --external-ca option to ipaserver. Lots of
additional tests and checks from ServerInstallInterface.__init__ have
been added to ipaserver_test. Also duplicate tests cna checks have been
removed.

Installer settings in ansible_ipa_server module_util are now also set
to the defaults that are used in Installable, ServerInstallInterface,
ServerMasterInstall, ADTrustInstallInterface and Uninstall.

The /root/ipa.csr file generated on the node in ca.install_step_0 will
be copied to the controller as "{{ inventory_hostname }}-ipa.csr".

The new task file copy_external_cert.yml has been added to copy the
generated certificate defined in ipaserver_external_cert_files to the node
to continue with ca.install_step_1.

The tasks/install.yml file has been adapted to make sure that the steps
that will be done in step two will be skipped after step one has been
done.
2019-06-27 12:06:56 +02:00
Thomas Woerner
5f580b5152 ipa[server,replica,client]: Remove tasks folder prefix for include_tasks
This is not needed and will calm down ansible-lint, which is not able
to handle the extra tasks folder prefix.
2019-06-26 18:20:41 +02:00
Thomas Woerner
0f73362ef5 Merge pull request #60 from dawud/feature/improve_package_installation_tasks
Fixes #17 Improve how tasks manage package installation
2019-06-17 15:49:33 +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
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
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
David Sastre Medina
20e5338ad5 Fixes #17 Improve how tasks manage package installation
The use of squash_actions to invoke a package module, such as “yum”, to
only invoke the module once is deprecated, and will be removed in
Ansible 2.11.
Instead of relying on implicit squashing, tasks should instead supply
the list directly to the name, pkg or package parameter of the module.

See [1] for a reference to the upstream documentation.

The ipa-krb5 and ipa-sssd modules include *_packages variables in both
defaults/ and vars/, additionally, the list of packages in ipa-sssd differs
from one to the other.
Unify list of packages into vars/

[1]: https://docs.ansible.com/ansible/latest/porting_guides/porting_guide_2.7.html#using-a-loop-on-a-package-module-via-squash-actions
2019-06-04 12:42:19 +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
36afd2220e ipa[server,replica]: Calm down ansible and yaml lint in ansible-galaxy 2019-05-03 19:11:58 +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
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
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
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
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
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
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
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
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
Siva Paramasivam
2f3ee6dc29 Added missing parameter realm to setup_kra 2018-07-06 23:04:55 -07:00
Thomas Woerner
14f975b411 ipaserver: Add support for 4.7 (4.6.90-pre2)
With IPA 4.7 bigger changes have been introduced

Changes:
- Use of timeconf and chrony instead of ntpconf and ntpd.
- New IPAChangeConf (not used in ipaserver modules)
- New check_ldap_conf form ipaclient.install.client
- custodia instance needed for ca and kra
- no_ntp defaults to yes for client installation part
- A new option ntp_pool has been introduced (set to None).
2018-06-21 13:21:10 +02:00
Thomas Woerner
0c942baea2 ipaserver: Fix issue with setup_dns and forwarders or no_forwarders
When forwarders list or the no_forwarders flag has been set, the
configuraiton does not reflect the setting. With no_forwarders
the preparation step of the DNS server could fail in ipaserver_prepare.

This is addressing the issue of pull request #25.
2018-06-11 15:33:08 +02:00
Kellin
75cd130d4a Capturing python3 check result is not a change
- Do not register a change in the playbook run when registering the
  variable checking for whether or not Python 3 imports work

Signed-off-by: Kellin <kellin@retromud.org>
2018-04-10 21:01:13 -04:00
Thomas Woerner
4f897d37f5 Server: Configure firewalld by default, new switch: ipaserver_no_firewalld
A new section has been added to configure firewalld automatically as the
last step of the server installation.

A new switch has been added to be able to turn firewalld configuration off:
ipaserver_no_firewalld. It defaults to no.
2018-02-09 16:57:14 +01:00
Thomas Woerner
3e03d7f44d ipaclient/tasks/install: Fix client installation on master within server role
The client role is used also while installing the server. There has been an
issue where the server installation has not been complete because of a
playbook termination in the client.

This has been fixed and the client and also the server are fully configured
in the server installation.
2018-02-09 16:56:53 +01:00
Scott Poore
f3ef5f5fc8 server install force and allow_zone_overlap fixes
force and allow_zone_overlap options were missing from a couple places.

Signed-off-by: Scott Poore <spoore@redhat.com>
2018-02-08 18:47:19 -06:00
Thomas Woerner
583c951a18 ipaserver/tasks/install.yml: Finally use include_role for client setup on master 2018-01-31 23:46:47 +01:00
Thomas Woerner
9adfb2f5a0 ipaserver/tasks/uninstall.yml: Fix error for using uninstall on not installed server 2018-01-31 23:46:43 +01:00
Thomas Woerner
986ac80a60 ipaserver: End play if server is already configured or client is configured 2018-01-31 23:46:41 +01:00
Thomas Woerner
4e2b687723 ipaserver/tasks/install.yml: Add no-log got master password generation again 2018-01-31 23:46:39 +01:00
Thomas Woerner
3dc9ab9999 ipaserver: Add no_host_dns for ipaserver_test
This is needed to fix the installation without configuring the dns server in
the IPA server.
2018-01-31 23:46:37 +01:00
Thomas Woerner
ecdbcea1e8 ipaserver: Fix DNS installation forward policy and DNSSEC validation
forward_policy needs to be None for the DNS check for proper initialization
if the user is not providing another forward_policy value. forward_policy will
be set in the DNS check.

no_dnssec_validation is enabled in the DNS check if the forwarders do not
provide DNSSEC validation. Therefore this needs to be handed over to the dns
installation later on.

New return values for forward_policy and no_dnssec_validation have been added
to the ipaserver_test module.
2018-01-30 10:25:56 +01:00
Thomas Woerner
80d503a21c ipaserver_prepare: Add missing no_dnssec_validation setting 2018-01-29 18:09:13 +01:00
Thomas Woerner
21eea732cc ipaserver/tasks/install.yml: Properly order settings for ipaserver_prepare 2018-01-29 18:05:58 +01:00
Thomas Woerner
55d9ca8215 ipaserver: Use result_ prefix for results 2018-01-29 17:56:30 +01:00
Thomas Woerner
bc253e7233 ipaserver: Use ipaclient_ prefix for client settings
The client settings are:

ipaclient_mkhomedir
ipaclient_no_ntp
ipaclient_ssh_trust_dns
ipaclient_no_ssh
ipaclient_no_sshd
ipaclient_no_dns_sshfp
2018-01-29 17:46:53 +01:00
Thomas Woerner
9faea32375 ipaserver: Renamed ipaserver_*_password
ipaserver_password has been renamed to ipaadmin_password
ipaserver_dm_password has been renamed to ipadm_password
2018-01-29 17:40:59 +01:00
Thomas Woerner
1bebc6c4e9 ipaserver/library/ipaserver_master_password.py: Renamed name of password return
With using the name password for the password return it will be hidden
automatically and an error message will still be visible.
2018-01-29 17:35:24 +01:00
Thomas Woerner
d84a199345 roles/ipaserver/tasks/install.yml: Remove test section remain 2018-01-29 17:33:35 +01:00
Thomas Woerner
7180d1beff ipaclient,ipaserver: Better names for package tasks 2018-01-29 17:30:11 +01:00
Thomas Woerner
4228ae7d80 ipaserver: Drop unused test file install_cache 2018-01-29 17:22:46 +01:00
Thomas Woerner
cce86d09ef ipaserver: Drop ipaserver_allow_repair
There is no way to repair a server installation like it is possible with a
client.
2018-01-29 17:22:25 +01:00
Thomas Woerner
c5462d4aac roles/ipaserver/library/ipaserver_test: Return dns.ip_adresses and dns.reverse_zones
These global variables are initialized in the dns module in the
dns.install_check function. The settings are needed to be able to do a
proper dns setup in the ipaserver_setup_dns ansible module.
2017-12-08 13:39:36 +01:00