diff --git a/roles/ipaclient/library/ipaclient_setup_nss.py b/roles/ipaclient/library/ipaclient_setup_nss.py index 286fcfcb65f4e44c13ea9e84688384ac5ed6c0a6..d829a56b8e28a1b4cde675b2374f7dc7451cb965 100644 --- a/roles/ipaclient/library/ipaclient_setup_nss.py +++ b/roles/ipaclient/library/ipaclient_setup_nss.py @@ -111,6 +111,11 @@ options: no_dns_sshfp: description: Do not automatically create DNS SSHFP records required: yes + nosssd_files: + description: > + The dist of nss_ldap or nss-pam-ldapd files if sssd is disabled + required: yes + type: dict author: - Thomas Woerner ''' @@ -143,7 +148,7 @@ from ansible.module_utils.ansible_ipa_client import ( get_certs_from_ldap, DN, certstore, x509, logger, certdb, CalledProcessError, tasks, client_dns, configure_certmonger, services, update_ssh_keys, save_state, configure_ldap_conf, configure_nslcd_conf, - nosssd_files, configure_openldap_conf, hardcode_ldap_server + configure_openldap_conf, hardcode_ldap_server ) @@ -174,6 +179,7 @@ def main(): permit=dict(required=False, type='bool'), no_krb5_offline_passwords=dict(required=False, type='bool'), no_dns_sshfp=dict(required=False, type='bool', default=False), + nosssd_files=dict(required=True, type='dict'), ), supports_check_mode=True, ) @@ -221,7 +227,9 @@ def main(): options.no_sssd = False options.sssd = not options.no_sssd options.no_ac = False + nosssd_files = module.params.get('nosssd_files') + # pylint: disable=invalid-name CCACHE_FILE = paths.IPA_DNS_CCACHE api.bootstrap(context='cli_installer', @@ -311,6 +319,7 @@ def main(): except Exception: pass + # pylint: disable=deprecated-method argspec_save_state = inspect.getargspec(save_state) # Name Server Caching Daemon. Disable for SSSD, use otherwise @@ -374,6 +383,7 @@ def main(): if not options.no_ac: # Modify nsswitch/pam stack + # pylint: disable=deprecated-method argspec = inspect.getargspec(tasks.modify_nsswitch_pam_stack) if "sudo" in argspec.args: tasks.modify_nsswitch_pam_stack( diff --git a/roles/ipaclient/library/ipaclient_test.py b/roles/ipaclient/library/ipaclient_test.py index 1a80fafb6022b96aa585a7374e126abd56dd52bc..84c8f0a498601b85bc7903e8b082b43c38ef1feb 100644 --- a/roles/ipaclient/library/ipaclient_test.py +++ b/roles/ipaclient/library/ipaclient_test.py @@ -186,6 +186,10 @@ ipa_python_version: returned: always type: int sample: 040400 +nosssd_files: + description: > + The dist of nss_ldap or nss-pam-ldapd files if sssd is disabled + type: list ''' import os @@ -248,7 +252,7 @@ def get_ipa_conf(): """ parser = RawConfigParser() parser.read(paths.IPA_DEFAULT_CONF) - result = dict() + result = {} for item in ['basedn', 'realm', 'domain', 'server', 'host', 'xmlrpc_uri']: if parser.has_option('global', item): value = parser.get('global', item) @@ -336,6 +340,7 @@ def main(): validate_domain_name(options.domain_name) if options.realm_name: + # pylint: disable=deprecated-method argspec = inspect.getargspec(validate_domain_name) if "entity" in argspec.args: # NUM_VERSION >= 40690: @@ -457,7 +462,7 @@ def main(): # global variables hostname = None hostname_source = None - nosssd_files = None + nosssd_files = {} dnsok = False cli_domain = None cli_server = None @@ -573,7 +578,6 @@ def main(): rval=CLIENT_INSTALL_ERROR) (nssldap_installed, nosssd_files) = nssldap_exists() - (nssldap_installed, __temp) = nssldap_exists() if not nssldap_installed: raise ScriptError( "One of these packages must be installed: nss_ldap or " @@ -617,6 +621,7 @@ def main(): rval=CLIENT_INSTALL_ERROR) # Create the discovery instance + # pylint: disable=invalid-name ds = ipadiscovery.IPADiscovery() ret = ds.search( @@ -926,7 +931,8 @@ def main(): ntp_servers=options.ntp_servers, ntp_pool=options.ntp_pool, client_already_configured=client_already_configured, - ipa_python_version=IPA_PYTHON_VERSION) + ipa_python_version=IPA_PYTHON_VERSION, + nosssd_files=nosssd_files) if __name__ == '__main__': diff --git a/roles/ipaclient/module_utils/ansible_ipa_client.py b/roles/ipaclient/module_utils/ansible_ipa_client.py index 33531c51a32be8233e3488424e97a7ecd07183e0..733375c93cc3a31b7f803ea7689be71cfd63fe86 100644 --- a/roles/ipaclient/module_utils/ansible_ipa_client.py +++ b/roles/ipaclient/module_utils/ansible_ipa_client.py @@ -40,7 +40,7 @@ __all__ = ["gssapi", "version", "ipadiscovery", "api", "errors", "x509", "configure_openldap_conf", "hardcode_ldap_server", "get_certs_from_ldap", "save_state", "create_ipa_nssdb", "configure_nisdomain", "configure_ldap_conf", - "configure_nslcd_conf", "nosssd_files", "configure_ssh_config", + "configure_nslcd_conf", "configure_ssh_config", "configure_sshd_config", "configure_automount", "configure_firefox", "sync_time", "check_ldap_conf", "sssd_enable_ifp"] @@ -64,12 +64,14 @@ else: else: IPA_PYTHON_VERSION = NUM_VERSION + # pylint: disable=invalid-name,useless-object-inheritance class installer_obj(object): def __init__(self): pass - def set_logger(self, logger): - self.logger = logger + # pylint: disable=attribute-defined-outside-init + def set_logger(self, _logger): + self.logger = _logger # def __getattribute__(self, attr): # value = super(installer_obj, self).__getattribute__(attr) @@ -97,13 +99,14 @@ else: installer = installer_obj() # Create options options = installer + # pylint: disable=attribute-defined-outside-init options.interactive = False options.unattended = not options.interactive if NUM_VERSION >= 40400: # IPA version >= 4.4 - import sys + # import sys import inspect import gssapi import logging @@ -166,7 +169,7 @@ else: CLIENT_ALREADY_CONFIGURED, nssldap_exists, remove_file, \ check_ip_addresses, print_port_conf_info, configure_ipa_conf, \ purge_host_keytab, configure_sssd_conf, configure_ldap_conf, \ - configure_nslcd_conf, nosssd_files + configure_nslcd_conf get_ca_cert = None except ImportError: # Create temporary copy of ipa-client-install script (as @@ -193,6 +196,7 @@ else: shutil.rmtree(temp_dir, ignore_errors=True) sys.path.remove(temp_dir) + # pylint: disable=deprecated-method argspec = inspect.getargspec( ipa_client_install.configure_krb5_conf) if argspec.keywords is None: @@ -200,6 +204,7 @@ else: cli_realm, cli_domain, cli_server, cli_kdc, dnsok, filename, client_domain, client_hostname, force=False, configure_sssd=True): + # pylint: disable=global-statement global options options.force = force options.sssd = configure_sssd @@ -236,13 +241,12 @@ else: if len(argspec.args) == 3: configure_nisdomain = ipa_client_install.configure_nisdomain else: - def configure_nisdomain(options, domain, statestore=None): - return ipa_client_install.configure_nisdomain(options, + def configure_nisdomain(_options, domain, _statestore=None): + return ipa_client_install.configure_nisdomain(_options, domain) configure_ldap_conf = ipa_client_install.configure_ldap_conf configure_nslcd_conf = ipa_client_install.configure_nslcd_conf - nosssd_files = ipa_client_install.nosssd_files configure_ssh_config = ipa_client_install.configure_ssh_config configure_sshd_config = ipa_client_install.configure_sshd_config diff --git a/roles/ipaclient/tasks/install.yml b/roles/ipaclient/tasks/install.yml index 515bab2f0ac71ee26c72627fd7ac274019e03100..99c955697445f41957d58d76e4db9608015f2451 100644 --- a/roles/ipaclient/tasks/install.yml +++ b/roles/ipaclient/tasks/install.yml @@ -329,6 +329,7 @@ "{{ ipassd_no_krb5_offline_passwords | default(ipasssd_no_krb5_offline_passwords) }}" no_dns_sshfp: "{{ ipaclient_no_dns_sshfp }}" + nosssd_files: "{{ result_ipaclient_test.nosssd_files }}" - name: Install - Configure SSH and SSHD ipaclient_setup_ssh: