Commit Graph

404 Commits

Author SHA1 Message Date
Thomas Woerner
fd88ba1c7d roles/ipaclient/tasks/install.yml: Checks for principal, keytab and password 2017-09-15 12:51:40 +02:00
Thomas Woerner
2d95d0df95 roles/ipaclient: New ipaclient_use_otp setting to force otp usage
The use of otp can be forced to not transfer the admin password while setting
up the ipa client. Only the one-time-password will be transferred to the
client machine.

ipaclient_password will be overwritten by the otp password.
2017-09-15 12:49:22 +02:00
Thomas Woerner
c088e3f9a6 library/ipajoin.py: Add kinit_attempts default value
Also: Add ipaclient_kinit_attempts default value to
roles/ipaclient/defaults/main.yml
2017-09-15 12:26:03 +02:00
Thomas Woerner
3cd878d10b library/ipajoin.py: Fix required_one_of, add mutually_exclusive
The one_of check was using a tuple instead of a list, the check for principal
or keytab has been removed, a new mutually exclusive check for password
xor keytab has been added.
2017-09-15 12:22:34 +02:00
Thomas Woerner
fa1eeb042c library/ipa{api,discovery,extras,nss,sssd}.py: Drop unused required_one_of 2017-09-15 12:20:46 +02:00
Thomas Woerner
e7520a5b1f roles/ipaclient/tasks/install.yml: Tew additional checks for password, keytab and otp 2017-09-15 10:09:28 +02:00
Thomas Woerner
fcea9c2b6c library/ipaclient.py: Compatibility to ipa 4.4 and later 2017-09-15 10:08:36 +02:00
Thomas Woerner
d1a36f4342 library/ipaextras.py: Compatibility to ipa 4.4 and later, new version check 2017-09-15 09:40:09 +02:00
Thomas Woerner
71b19d3f07 library/ipanss.py: Compatibilty to ipa 4.4 and later, new version check 2017-09-15 09:40:08 +02:00
Thomas Woerner
2c2ae77bed library/ipaapi.py: Compatibilty to ipa 4.4 and later, new version check 2017-09-15 09:40:08 +02:00
Thomas Woerner
0b4aec7b6a roles/krb5: Compatibility for ipa 4.4 and later
New variables have been added (undefined by default):
  krb5_dns_canonicalize_hostname
  krb5_pkinit_anchors
  krb5_pkinit_pool

These are set according to the ipa version requirements. See
roles/ipaclient/tasks/install.yml
2017-09-15 09:40:08 +02:00
Thomas Woerner
a5fb29566f library/ipasssd.py: Compatibilty to ipa 4.4 and later, new version check
For ipa versions prior to 4.5 it is needed to use ipa-client-install script
as a source for functions. But the script contains a global finally clause
in which the generated ccache file gets removed. Threfore the script is
temporarily copied to ipa_client_install.py and the global finally clause
gets removed from the copy. All this is done in a temporary directory, which
gets removed right after the import has been done.
2017-09-15 09:40:08 +02:00
Thomas Woerner
a572dfb69e library/sssd.py: Renamed to ipasssd 2017-09-15 09:40:08 +02:00
Thomas Woerner
218d77e9c6 library/ipajoin.py: Compatibilty to ipa 4.4 and later, new version check
For ipa versions prior to 4.5 it is needed to use ipa-client-install script
as a source for functions. But the script contains a global finally clause
in which the generated ccache file gets removed. Threfore the script is
temporarily copied to ipa_client_install.py and the global finally clause
gets removed from the copy. All this is done in a temporary directory, which
gets removed right after the import has been done.

A Object called options is generated as ipa-client-install and also
ipaclient/install/client.py functions are using this object.

inspect.argspec is used on configure_krb5_conf to find out if the function
requires configure_sssd as an optional argument or in the options object.
2017-09-15 09:40:08 +02:00
Thomas Woerner
6e3f133aee library/ipafstore.py: Compatibilty to ipa 4.4 and later, new version check 2017-09-15 09:40:08 +02:00
Thomas Woerner
56063ae373 library/ipadiscovery.py: Compatibilty to ipa 4.4 and later, new version check
freeipa 4.4 is the first version that supports all needed functions.
Therefore a check has been added to make sure that ipadiscovery fails for
versions before 4.4.

The python bindings of ipa versions before 4.6 are having a different
structure.
2017-09-15 09:40:08 +02:00
Thomas Woerner
4f06e9df65 library/ipadiscovery.py: New return: ipa_python_version
ipa_python_version is the version gathered from ipapython.version.NUM_VERSION.
For ipa versions before 3.2.1, the version is generated from
ipapython.version.VERSION because NUM_VERSION changed the format two times
before 3.2.1.
2017-09-15 09:40:08 +02:00
Thomas Woerner
0c5905fddb library/ipadiscovery.py: Add ca_cert_file argument for discovery 2017-09-15 09:40:08 +02:00
Thomas Woerner
2253a415f4 library/ipadiscovery.py: Allow to use server only also
The discovery was not working if a server has been specified. The domain has
been needed additionally. The domain is now gathered from the server name if
it is missing in this case.
2017-09-15 09:40:08 +02:00
Thomas Woerner
4789595428 library/fstore.py: Renaed to ipafstore 2017-09-15 09:40:08 +02:00
Thomas Woerner
20538cc86e New module fstore to backup files using IPA client sysrestore
- Backup ipa default conf
- Backup krb5.conf
2017-08-31 18:45:28 +02:00
Thomas Woerner
893e32b7c6 roles/ipaclient/defaults/main.yml: Remove default values for some vars
This is needed to be able to use defined and undefined checks.
2017-08-31 17:44:57 +02:00
Thomas Woerner
ba1e5c210f roles/ipaclient/tasks/install.yml: Replace ipaserver_ by ipaclient_ 2017-08-31 17:36:47 +02:00
Thomas Woerner
b26b223dec library/ipanss.py: principal option is optional 2017-08-31 17:34:45 +02:00
Thomas Woerner
e5b6eb2381 library/ipajoin.py: Fix required tags for servers and domain in docs 2017-08-31 17:34:02 +02:00
Thomas Woerner
b6bac014a5 Add newline in authors list 2017-08-30 14:56:32 +02:00
Thomas Woerner
6d8874ad63 iRenamed README to README.md 2017-08-30 14:55:44 +02:00
Thomas Woerner
4ac9963b3d New README 2017-08-30 14:53:51 +02:00
Thomas Woerner
2da53eb414 inventory/hosts: Updated inventory file 2017-08-30 14:51:42 +02:00
Thomas Woerner
5198eb5304 roles/ipaclient/tasks/install.yml: Use new roles and modules
The sssd role has been deactivated in favor of the new sssd module, because the module is able to adapt an existing configuration.
2017-08-30 14:45:01 +02:00
Thomas Woerner
cd2d7511b0 New module to configure IPA extras like NTP, SSH, firefox and NIS 2017-08-30 14:42:44 +02:00
Thomas Woerner
403c28b46b New module to cteate IPA NSS database 2017-08-30 14:41:25 +02:00
Thomas Woerner
e66c936622 New module to create temporary NSS database, call IPA API for remaining enrollment parts 2017-08-30 14:38:52 +02:00
Thomas Woerner
09d15b511b New module to configure sssd using SSSDConfig
The advantage of the use of SSSDConfig is that an existing configuration could be changed and not simply overwritten.
2017-08-30 14:36:49 +02:00
Thomas Woerner
d10d078a42 New role to configure ipa default.conf 2017-08-30 14:35:39 +02:00
Thomas Woerner
5f17e9a778 roles/krb5: New krb5_no_default_domain setting 2017-08-30 14:31:05 +02:00
Thomas Woerner
e65ba14e52 roles/sssd: Fixed several small defects, added libselinux-python to sssd_packages 2017-08-30 14:28:34 +02:00
Thomas Woerner
a484e5b2d2 roles/ipaclient/defaults/main.yml: ipaclient_ntp should default to no 2017-08-30 14:27:31 +02:00
Thomas Woerner
5724212b58 library/ipajoin.py: New documentation, debug flag, added missing kdestroy call 2017-08-30 14:25:32 +02:00
Thomas Woerner
edd590cad9 library/ipadiscovery.py: New documentation, conflict check from ipaclient.py
New documentation for incoming and outgoing arguments. Copied check from
library/ipaclient.py to do conflict checks if the check argument is set.
2017-08-30 14:22:33 +02:00
Thomas Woerner
5cfcccd616 library/ipajoin.py: Doc updates, renamed ca_certs_file
Documentation for domain, principal, keytab, ca_cert_file and kinit_attempts
has been added.

ca_certs_file has been renamed to ca_cert_file as it is used in
ipa-client-install.
2017-08-24 12:54:37 +02:00
Thomas Woerner
18cc39dd30 roles/ipaclient/tasks/install.yml: Test code for krb5 and sssd 2017-08-24 12:39:01 +02:00
Thomas Woerner
bd8e23f211 New role for krb5 2017-08-24 12:38:15 +02:00
Thomas Woerner
3ae2a51c08 New sssd role 2017-08-24 12:36:51 +02:00
Thomas Woerner
44e4ee7459 library/ipajoin.py: New module for ipajoin
The module is doing the important part of the code in ipa-client-install
to be able to use ipa-join on the client. get_ca_certs* from client.py are
used as a temporary solution.
2017-08-24 12:33:23 +02:00
Thomas Woerner
4dea948fda roles/ipaclient/tasks/install.yml: Install IPA client early
IPA client imports are needed for discovery
2017-08-24 12:20:54 +02:00
Thomas Woerner
0246ad0079 roles/ipaclient/defaults/main.yml: Remove unused ipaclient_servers 2017-08-24 12:19:51 +02:00
Thomas Woerner
dc9bb51a1a library/ipadiscovery.py: Renamed server to servers output argument 2017-08-24 12:17:21 +02:00
Thomas Woerner
07a15c56e8 library/ipadiscovery.py: New module for ipa discovery
The module is doing the same discovery that ipa-client-install is doing
internally. The results are saved into a structure named ipadiscovery for
the ansible module.

The discovery module is needed to be able to not depend on the definition
of the ipaservers group for example to get otp passwords, to be able to
join and to configure sssd and other services corretly.
2017-08-23 20:40:46 +02:00
Thomas Woerner
97be0612fb library/ipaclient.py: servers needs to be a list
More than one server could be specified
2017-08-23 20:38:51 +02:00