Beispiel #1
0
def setup_ranger_knox(upgrade_type=None):
    import params

    if params.enable_ranger_knox:

        stack_version = None
        if upgrade_type is not None:
            stack_version = params.version

        if params.retryAble:
            Logger.info(
                "Knox: Setup ranger: command retry enables thus retrying if ranger admin is down !"
            )
        else:
            Logger.info(
                "Knox: Setup ranger: command retry not enabled thus skipping if ranger admin is down !"
            )

        if params.xml_configurations_supported and params.enable_ranger_knox and params.xa_audit_hdfs_is_enabled:
            if params.has_namenode:
                params.HdfsResource("/ranger/audit",
                                    type="directory",
                                    action="create_on_execute",
                                    owner=params.hdfs_user,
                                    group=params.hdfs_user,
                                    mode=0755,
                                    recursive_chmod=True)
                params.HdfsResource("/ranger/audit/knox",
                                    type="directory",
                                    action="create_on_execute",
                                    owner=params.knox_user,
                                    group=params.knox_user,
                                    mode=0700,
                                    recursive_chmod=True)
                params.HdfsResource(None, action="execute")

                if params.namenode_hosts is not None and len(
                        params.namenode_hosts) > 1:
                    Logger.info(
                        'Ranger Knox plugin is enabled in NameNode HA environment along with audit to Hdfs enabled, creating hdfs-site.xml'
                    )
                    XmlConfig("hdfs-site.xml",
                              conf_dir=params.knox_conf_dir,
                              configurations=params.config['configurations']
                              ['hdfs-site'],
                              configuration_attributes=params.
                              config['configuration_attributes']['hdfs-site'],
                              owner=params.knox_user,
                              group=params.knox_group,
                              mode=0644)
                else:
                    File(format('{knox_conf_dir}/hdfs-site.xml'),
                         action="delete")

        if params.xml_configurations_supported:
            api_version = None
            if params.stack_supports_ranger_kerberos:
                api_version = 'v2'
            from resource_management.libraries.functions.adh_setup_ranger_plugin_xml import setup_ranger_plugin
            setup_ranger_plugin(
                'knox-server',
                'knox',
                params.previous_jdbc_jar,
                params.downloaded_custom_connector,
                params.driver_curl_source,
                params.driver_curl_target,
                params.java_home,
                params.repo_name,
                params.knox_ranger_plugin_repo,
                params.ranger_env,
                params.ranger_plugin_properties,
                params.policy_user,
                params.policymgr_mgr_url,
                params.enable_ranger_knox,
                conf_dict=params.knox_conf_dir,
                component_user=params.knox_user,
                component_group=params.knox_group,
                cache_service_list=['knox'],
                plugin_audit_properties=params.config['configurations']
                ['ranger-knox-audit'],
                plugin_audit_attributes=params.
                config['configuration_attributes']['ranger-knox-audit'],
                plugin_security_properties=params.config['configurations']
                ['ranger-knox-security'],
                plugin_security_attributes=params.
                config['configuration_attributes']['ranger-knox-security'],
                plugin_policymgr_ssl_properties=params.config['configurations']
                ['ranger-knox-policymgr-ssl'],
                plugin_policymgr_ssl_attributes=params.config[
                    'configuration_attributes']['ranger-knox-policymgr-ssl'],
                component_list=['knox-server'],
                audit_db_is_enabled=params.xa_audit_db_is_enabled,
                credential_file=params.credential_file,
                xa_audit_db_password=params.xa_audit_db_password,
                ssl_truststore_password=params.ssl_truststore_password,
                ssl_keystore_password=params.ssl_keystore_password,
                stack_version_override=stack_version,
                skip_if_rangeradmin_down=not params.retryAble,
                api_version=api_version,
                is_security_enabled=params.security_enabled,
                is_stack_supports_ranger_kerberos=params.
                stack_supports_ranger_kerberos,
                component_user_principal=params.knox_principal_name
                if params.security_enabled else None,
                component_user_keytab=params.knox_keytab_path
                if params.security_enabled else None)
        else:
            from resource_management.libraries.functions.adh_setup_ranger_plugin import setup_ranger_plugin
            setup_ranger_plugin(
                'knox-server',
                'knox',
                params.previous_jdbc_jar,
                params.downloaded_custom_connector,
                params.driver_curl_source,
                params.driver_curl_target,
                params.java_home,
                params.repo_name,
                params.knox_ranger_plugin_repo,
                params.ranger_env,
                params.ranger_plugin_properties,
                params.policy_user,
                params.policymgr_mgr_url,
                params.enable_ranger_knox,
                conf_dict=params.knox_conf_dir,
                component_user=params.knox_user,
                component_group=params.knox_group,
                cache_service_list=['knox'],
                plugin_audit_properties=params.config['configurations']
                ['ranger-knox-audit'],
                plugin_audit_attributes=params.
                config['configuration_attributes']['ranger-knox-audit'],
                plugin_security_properties=params.config['configurations']
                ['ranger-knox-security'],
                plugin_security_attributes=params.
                config['configuration_attributes']['ranger-knox-security'],
                plugin_policymgr_ssl_properties=params.config['configurations']
                ['ranger-knox-policymgr-ssl'],
                plugin_policymgr_ssl_attributes=params.config[
                    'configuration_attributes']['ranger-knox-policymgr-ssl'],
                component_list=['knox-server'],
                audit_db_is_enabled=params.xa_audit_db_is_enabled,
                credential_file=params.credential_file,
                xa_audit_db_password=params.xa_audit_db_password,
                ssl_truststore_password=params.ssl_truststore_password,
                ssl_keystore_password=params.ssl_keystore_password,
                stack_version_override=stack_version,
                skip_if_rangeradmin_down=not params.retryAble)
        if params.stack_supports_core_site_for_ranger_plugin and params.enable_ranger_knox and params.has_namenode and params.security_enabled:
            Logger.info(
                "Stack supports core-site.xml creation for Ranger plugin, creating core-site.xml from namenode configuraitions"
            )
            setup_core_site_for_required_plugins(
                component_user=params.knox_user,
                component_group=params.knox_group,
                create_core_site_path=params.knox_conf_dir,
                config=params.config)
        else:
            Logger.info(
                "Stack does not support core-site.xml creation for Ranger plugin, skipping core-site.xml configurations"
            )

    else:
        Logger.info('Ranger Knox plugin is not enabled')
def setup_ranger_nifi(upgrade_type=None):
    import params
    if not os.path.exists(
            format('{stack_root}/current/nifi-server/ext/ranger/scripts')):
        Directory(
            format('{stack_root}/current/nifi-server/ext/ranger/scripts'),
            owner=params.nifi_user,
            group=params.nifi_group,
            mode=0750,
            cd_access='a',
            create_parents=True,
            recursive_ownership=True)

    if params.has_ranger_admin and params.enable_ranger_nifi:
        File(
            format(
                '{stack_root}/current/nifi-server/ext/ranger/scripts/ranger_credential_helper.py'
            ),
            owner=params.nifi_user,
            group=params.nifi_group,
            mode=0750,
        )

        cred_lib_prefix_path = format(
            '{stack_root}/ranger/ext/ranger/install/lib/*')
        cred_setup_prefix_path = (format(
            '{stack_root}/current/nifi-server/ext/ranger/scripts/ranger_credential_helper.py'
        ), '-l', cred_lib_prefix_path)

        if params.retryAble:
            Logger.info(
                "nifi: Setup ranger: command retry enables thus retrying if ranger admin is down !"
            )
        else:
            Logger.info(
                "nifi: Setup ranger: command retry not enabled thus skipping if ranger admin is down !"
            )

        # create ranger nifi audit directory
        if params.xa_audit_hdfs_is_enabled and params.has_namenode and params.has_hdfs_client_on_node and upgrade_type is None:
            params.HdfsResource("/ranger/audit",
                                type="directory",
                                action="create_on_execute",
                                owner=params.hdfs_user,
                                group=params.hdfs_user,
                                mode=0755,
                                recursive_chmod=True)
            params.HdfsResource("/ranger/audit/nifi",
                                type="directory",
                                action="create_on_execute",
                                owner=params.nifi_user,
                                group=params.nifi_group,
                                mode=0750,
                                recursive_chmod=True)
            params.HdfsResource(None, action="execute")

        api_version = None
        if params.stack_supports_ranger_kerberos:
            api_version = 'v2'
        from resource_management.libraries.functions.adh_setup_ranger_plugin_xml import setup_ranger_plugin
        setup_ranger_plugin(
            'nifi',
            params.service_name,
            params.previous_jdbc_jar,
            params.downloaded_custom_connector,
            params.driver_curl_source,
            params.driver_curl_target,
            params.java_home,
            params.repo_name,
            params.nifi_ranger_plugin_repo,
            params.ranger_env,
            params.ranger_plugin_properties,
            params.policy_user,
            params.policymgr_mgr_url,
            params.enable_ranger_nifi,
            conf_dict=params.nifi_config_dir,
            component_user=params.nifi_user,
            component_group=params.nifi_group,
            cache_service_list=['nifi'],
            plugin_audit_properties=params.config['configurations']
            ['ranger-nifi-audit'],
            plugin_audit_attributes=params.config['configuration_attributes']
            ['ranger-nifi-audit'],
            plugin_security_properties=params.config['configurations']
            ['ranger-nifi-security'],
            plugin_security_attributes=params.
            config['configuration_attributes']['ranger-nifi-security'],
            plugin_policymgr_ssl_properties=params.config['configurations']
            ['ranger-nifi-policymgr-ssl'],
            plugin_policymgr_ssl_attributes=params.
            config['configuration_attributes']['ranger-nifi-policymgr-ssl'],
            component_list=[],
            audit_db_is_enabled=params.xa_audit_db_is_enabled,
            credential_file=params.credential_file,
            xa_audit_db_password=params.xa_audit_db_password,
            ssl_truststore_password=params.ssl_truststore_password,
            ssl_keystore_password=params.ssl_keystore_password,
            stack_version_override=False,
            skip_if_rangeradmin_down=not params.retryAble,
            api_version=api_version,
            is_security_enabled=params.security_enabled,
            is_stack_supports_ranger_kerberos=params.
            stack_supports_ranger_kerberos,
            component_user_principal=params.ranger_nifi_principal
            if params.security_enabled else None,
            component_user_keytab=params.ranger_nifi_keytab
            if params.security_enabled else None,
            cred_lib_path_override=cred_lib_prefix_path,
            cred_setup_prefix_override=cred_setup_prefix_path)

        #change permissions of ranger xml that were written to 0400
        File(os.path.join(params.nifi_config_dir, 'ranger-nifi-audit.xml'),
             owner=params.nifi_user,
             group=params.nifi_group,
             mode=0400)
        File(os.path.join(params.nifi_config_dir, 'ranger-nifi-security.xml'),
             owner=params.nifi_user,
             group=params.nifi_group,
             mode=0400)
        File(os.path.join(params.nifi_config_dir, 'ranger-policymgr-ssl.xml'),
             owner=params.nifi_user,
             group=params.nifi_group,
             mode=0400)

    else:
        Logger.info('Ranger admin not installed')
def setup_ranger_hive_interactive(upgrade_type=None):
    import params

    if params.enable_ranger_hive:

        stack_version = None

        if upgrade_type is not None:
            stack_version = params.version

        if params.retryAble:
            Logger.info(
                "Hive2: Setup ranger: command retry enabled thus retrying if ranger admin is down !"
            )
        else:
            Logger.info(
                "Hive2: Setup ranger: command retry not enabled thus skipping if ranger admin is down !"
            )

        if params.xml_configurations_supported and params.xa_audit_hdfs_is_enabled:
            params.HdfsResource("/ranger/audit",
                                type="directory",
                                action="create_on_execute",
                                owner=params.hdfs_user,
                                group=params.hdfs_user,
                                mode=0755,
                                recursive_chmod=True)
            params.HdfsResource("/ranger/audit/hive2",
                                type="directory",
                                action="create_on_execute",
                                owner=params.hive_user,
                                group=params.hive_user,
                                mode=0700,
                                recursive_chmod=True)
            params.HdfsResource(None, action="execute")

        from resource_management.libraries.functions.adh_setup_ranger_plugin_xml import setup_ranger_plugin
        setup_ranger_plugin(
            'hive-server2-hive2',
            'hive',
            params.ranger_previous_jdbc_jar,
            params.ranger_downloaded_custom_connector,
            params.ranger_driver_curl_source,
            params.ranger_driver_curl_target,
            params.java64_home,
            params.repo_name,
            params.hive_ranger_plugin_repo,
            params.ranger_env,
            params.ranger_plugin_properties,
            params.policy_user,
            params.policymgr_mgr_url,
            params.enable_ranger_hive,
            conf_dict=params.hive_server_interactive_conf_dir,
            component_user=params.hive_user,
            component_group=params.user_group,
            cache_service_list=['hive-server2-hive2'],
            plugin_audit_properties=params.config['configurations']
            ['ranger-hive-audit'],
            plugin_audit_attributes=params.config['configuration_attributes']
            ['ranger-hive-audit'],
            plugin_security_properties=params.config['configurations']
            ['ranger-hive-security'],
            plugin_security_attributes=params.
            config['configuration_attributes']['ranger-hive-security'],
            plugin_policymgr_ssl_properties=params.config['configurations']
            ['ranger-hive-policymgr-ssl'],
            plugin_policymgr_ssl_attributes=params.
            config['configuration_attributes']['ranger-hive-policymgr-ssl'],
            component_list=[
                'hive-client', 'hive-metastore', 'hive-server2',
                'hive-server2-hive2'
            ],
            audit_db_is_enabled=False,
            credential_file=params.credential_file,
            xa_audit_db_password=None,
            ssl_truststore_password=params.ssl_truststore_password,
            ssl_keystore_password=params.ssl_keystore_password,
            stack_version_override=stack_version,
            skip_if_rangeradmin_down=not params.retryAble,
            api_version='v2',
            is_security_enabled=params.security_enabled,
            is_stack_supports_ranger_kerberos=params.
            stack_supports_ranger_kerberos,
            component_user_principal=params.hive_principal
            if params.security_enabled else None,
            component_user_keytab=params.hive_server2_keytab
            if params.security_enabled else None)
    else:
        Logger.info('Ranger Hive plugin is not enabled')
Beispiel #4
0
def setup_ranger_kafka():
    import params

    if params.has_ranger_admin:

        from resource_management.libraries.functions.adh_setup_ranger_plugin_xml import setup_ranger_plugin

        if params.retryAble:
            Logger.info(
                "Kafka: Setup ranger: command retry enables thus retrying if ranger admin is down !"
            )
        else:
            Logger.info(
                "Kafka: Setup ranger: command retry not enabled thus skipping if ranger admin is down !"
            )

        if params.xml_configurations_supported and params.enable_ranger_kafka and params.xa_audit_hdfs_is_enabled:
            if params.has_namenode:
                params.HdfsResource("/ranger/audit",
                                    type="directory",
                                    action="create_on_execute",
                                    owner=params.hdfs_user,
                                    group=params.hdfs_user,
                                    mode=0755,
                                    recursive_chmod=True)
                params.HdfsResource("/ranger/audit/kafka",
                                    type="directory",
                                    action="create_on_execute",
                                    owner=params.kafka_user,
                                    group=params.kafka_user,
                                    mode=0700,
                                    recursive_chmod=True)
                params.HdfsResource(None, action="execute")

        setup_ranger_plugin(
            'kafka-broker',
            'kafka',
            params.downloaded_custom_connector,
            params.driver_curl_source,
            params.driver_curl_target,
            params.java64_home,
            params.repo_name,
            params.kafka_ranger_plugin_repo,
            params.ranger_env,
            params.ranger_plugin_properties,
            params.policy_user,
            params.policymgr_mgr_url,
            params.enable_ranger_kafka,
            conf_dict=params.conf_dir,
            component_user=params.kafka_user,
            component_group=params.user_group,
            cache_service_list=['kafka'],
            plugin_audit_properties=params.ranger_kafka_audit,
            plugin_audit_attributes=params.ranger_kafka_audit_attrs,
            plugin_security_properties=params.ranger_kafka_security,
            plugin_security_attributes=params.ranger_kafka_security_attrs,
            plugin_policymgr_ssl_properties=params.ranger_kafka_policymgr_ssl,
            plugin_policymgr_ssl_attributes=params.
            ranger_kafka_policymgr_ssl_attrs,
            component_list=['kafka-broker'],
            audit_db_is_enabled=params.xa_audit_db_is_enabled,
            credential_file=params.credential_file,
            xa_audit_db_password=params.xa_audit_db_password,
            ssl_truststore_password=params.ssl_truststore_password,
            ssl_keystore_password=params.ssl_keystore_password,
            api_version='v2',
            skip_if_rangeradmin_down=not params.retryAble)

        if params.enable_ranger_kafka:
            Execute(('cp', '--remove-destination',
                     params.setup_ranger_env_sh_source,
                     params.setup_ranger_env_sh_target),
                    not_if=format("test -f {setup_ranger_env_sh_target}"),
                    sudo=True)
            File(params.setup_ranger_env_sh_target,
                 owner=params.kafka_user,
                 group=params.user_group,
                 mode=0755)
    else:
        Logger.info('Ranger admin not installed')
Beispiel #5
0
def setup_ranger_hdfs(upgrade_type=None):
    import params

    if params.enable_ranger_hdfs:

        stack_version = None

        if upgrade_type is not None:
            stack_version = params.version

        if params.retryAble:
            Logger.info(
                "HDFS: Setup ranger: command retry enables thus retrying if ranger admin is down !"
            )
        else:
            Logger.info(
                "HDFS: Setup ranger: command retry not enabled thus skipping if ranger admin is down !"
            )

        if params.xml_configurations_supported:
            from resource_management.libraries.functions.adh_setup_ranger_plugin_xml import setup_ranger_plugin
            api_version = None
            if params.stack_supports_ranger_kerberos:
                api_version = 'v2'
            setup_ranger_plugin(
                'hadoop-client',
                'hdfs',
                params.previous_jdbc_jar,
                params.downloaded_custom_connector,
                params.driver_curl_source,
                params.driver_curl_target,
                params.java_home,
                params.repo_name,
                params.hdfs_ranger_plugin_repo,
                params.ranger_env,
                params.ranger_plugin_properties,
                params.policy_user,
                params.policymgr_mgr_url,
                params.enable_ranger_hdfs,
                conf_dict=params.hadoop_conf_dir,
                component_user=params.hdfs_user,
                component_group=params.user_group,
                cache_service_list=['hdfs'],
                plugin_audit_properties=params.config['configurations']
                ['ranger-hdfs-audit'],
                plugin_audit_attributes=params.
                config['configuration_attributes']['ranger-hdfs-audit'],
                plugin_security_properties=params.config['configurations']
                ['ranger-hdfs-security'],
                plugin_security_attributes=params.
                config['configuration_attributes']['ranger-hdfs-security'],
                plugin_policymgr_ssl_properties=params.config['configurations']
                ['ranger-hdfs-policymgr-ssl'],
                plugin_policymgr_ssl_attributes=params.config[
                    'configuration_attributes']['ranger-hdfs-policymgr-ssl'],
                component_list=['hadoop-client'],
                audit_db_is_enabled=params.xa_audit_db_is_enabled,
                credential_file=params.credential_file,
                xa_audit_db_password=params.xa_audit_db_password,
                ssl_truststore_password=params.ssl_truststore_password,
                ssl_keystore_password=params.ssl_keystore_password,
                api_version=api_version,
                stack_version_override=stack_version,
                skip_if_rangeradmin_down=not params.retryAble,
                is_security_enabled=params.security_enabled,
                is_stack_supports_ranger_kerberos=params.
                stack_supports_ranger_kerberos,
                component_user_principal=params.nn_principal_name
                if params.security_enabled else None,
                component_user_keytab=params.nn_keytab
                if params.security_enabled else None)
        else:
            from resource_management.libraries.functions.adh_setup_ranger_plugin import setup_ranger_plugin

            setup_ranger_plugin(
                'hadoop-client',
                'hdfs',
                params.previous_jdbc_jar,
                params.downloaded_custom_connector,
                params.driver_curl_source,
                params.driver_curl_target,
                params.java_home,
                params.repo_name,
                params.hdfs_ranger_plugin_repo,
                params.ranger_env,
                params.ranger_plugin_properties,
                params.policy_user,
                params.policymgr_mgr_url,
                params.enable_ranger_hdfs,
                conf_dict=params.hadoop_conf_dir,
                component_user=params.hdfs_user,
                component_group=params.user_group,
                cache_service_list=['hdfs'],
                plugin_audit_properties=params.config['configurations']
                ['ranger-hdfs-audit'],
                plugin_audit_attributes=params.
                config['configuration_attributes']['ranger-hdfs-audit'],
                plugin_security_properties=params.config['configurations']
                ['ranger-hdfs-security'],
                plugin_security_attributes=params.
                config['configuration_attributes']['ranger-hdfs-security'],
                plugin_policymgr_ssl_properties=params.config['configurations']
                ['ranger-hdfs-policymgr-ssl'],
                plugin_policymgr_ssl_attributes=params.config[
                    'configuration_attributes']['ranger-hdfs-policymgr-ssl'],
                component_list=['hadoop-client'],
                audit_db_is_enabled=params.xa_audit_db_is_enabled,
                credential_file=params.credential_file,
                xa_audit_db_password=params.xa_audit_db_password,
                ssl_truststore_password=params.ssl_truststore_password,
                ssl_keystore_password=params.ssl_keystore_password,
                stack_version_override=stack_version,
                skip_if_rangeradmin_down=not params.retryAble)

        if stack_version and params.upgrade_direction == Direction.UPGRADE:
            # when upgrading to stack remove_ranger_hdfs_plugin_env, this env file must be removed
            if check_stack_feature(StackFeature.REMOVE_RANGER_HDFS_PLUGIN_ENV,
                                   stack_version):
                source_file = os.path.join(params.hadoop_conf_dir,
                                           'set-hdfs-plugin-env.sh')
                target_file = source_file + ".bak"
                Execute(("mv", source_file, target_file),
                        sudo=True,
                        only_if=format("test -f {source_file}"))
    else:
        Logger.info('Ranger Hdfs plugin is not enabled')
Beispiel #6
0
def setup_ranger_yarn():
    import params

    if params.has_ranger_admin:

        from resource_management.libraries.functions.adh_setup_ranger_plugin_xml import setup_ranger_plugin

        if params.retryAble:
            Logger.info(
                "YARN: Setup ranger: command retry enables thus retrying if ranger admin is down !"
            )
        else:
            Logger.info(
                "YARN: Setup ranger: command retry not enabled thus skipping if ranger admin is down !"
            )

        if params.xml_configurations_supported and params.enable_ranger_yarn and params.xa_audit_hdfs_is_enabled:
            params.HdfsResource("/ranger/audit",
                                type="directory",
                                action="create_on_execute",
                                owner=params.hdfs_user,
                                group=params.hdfs_user,
                                mode=0755,
                                recursive_chmod=True)
            params.HdfsResource("/ranger/audit/yarn",
                                type="directory",
                                action="create_on_execute",
                                owner=params.yarn_user,
                                group=params.yarn_user,
                                mode=0700,
                                recursive_chmod=True)
            params.HdfsResource(None, action="execute")

        setup_ranger_plugin(
            'hadoop-yarn-resourcemanager',
            'yarn',
            params.downloaded_custom_connector,
            params.driver_curl_source,
            params.driver_curl_target,
            params.java64_home,
            params.repo_name,
            params.yarn_ranger_plugin_repo,
            params.ranger_env,
            params.ranger_plugin_properties,
            params.policy_user,
            params.policymgr_mgr_url,
            params.enable_ranger_yarn,
            conf_dict=params.hadoop_conf_dir,
            component_user=params.yarn_user,
            component_group=params.user_group,
            cache_service_list=['yarn'],
            plugin_audit_properties=params.config['configurations']
            ['ranger-yarn-audit'],
            plugin_audit_attributes=params.config['configuration_attributes']
            ['ranger-yarn-audit'],
            plugin_security_properties=params.config['configurations']
            ['ranger-yarn-security'],
            plugin_security_attributes=params.
            config['configuration_attributes']['ranger-yarn-security'],
            plugin_policymgr_ssl_properties=params.config['configurations']
            ['ranger-yarn-policymgr-ssl'],
            plugin_policymgr_ssl_attributes=params.
            config['configuration_attributes']['ranger-yarn-policymgr-ssl'],
            component_list=['hadoop-yarn-resourcemanager'],
            audit_db_is_enabled=params.xa_audit_db_is_enabled,
            credential_file=params.credential_file,
            xa_audit_db_password=params.xa_audit_db_password,
            ssl_truststore_password=params.ssl_truststore_password,
            ssl_keystore_password=params.ssl_keystore_password,
            api_version='v2',
            skip_if_rangeradmin_down=not params.retryAble)
    else:
        Logger.info('Ranger admin not installed')
Beispiel #7
0
def setup_ranger_atlas(upgrade_type=None):
    import params

    if params.has_ranger_admin:

        from resource_management.libraries.functions.adh_setup_ranger_plugin_xml import setup_ranger_plugin

        if params.retry_enabled:
            Logger.info(
                "ATLAS: Setup ranger: command retry enables thus retrying if ranger admin is down !"
            )
        else:
            Logger.info(
                "ATLAS: Setup ranger: command retry not enabled thus skipping if ranger admin is down !"
            )

        if params.enable_ranger_atlas and params.xa_audit_hdfs_is_enabled:
            if params.has_namenode:
                params.HdfsResource("/ranger/audit",
                                    type="directory",
                                    action="create_on_execute",
                                    owner=params.metadata_user,
                                    group=params.user_group,
                                    mode=0755,
                                    recursive_chmod=True)
                params.HdfsResource("/ranger/audit/atlas",
                                    type="directory",
                                    action="create_on_execute",
                                    owner=params.metadata_user,
                                    group=params.user_group,
                                    mode=0700,
                                    recursive_chmod=True)
                params.HdfsResource(None, action="execute")

        setup_ranger_plugin(
            'atlas-server',
            'atlas',
            None,
            params.downloaded_custom_connector,
            params.driver_curl_source,
            params.driver_curl_target,
            params.java64_home,
            params.repo_name,
            params.atlas_ranger_plugin_repo,
            params.ranger_env,
            params.ranger_plugin_properties,
            params.policy_user,
            params.policymgr_mgr_url,
            params.enable_ranger_atlas,
            conf_dict=params.conf_dir,
            component_user=params.metadata_user,
            component_group=params.user_group,
            cache_service_list=['atlas'],
            plugin_audit_properties=params.config['configurations']
            ['ranger-atlas-audit'],
            plugin_audit_attributes=params.config['configuration_attributes']
            ['ranger-atlas-audit'],
            plugin_security_properties=params.config['configurations']
            ['ranger-atlas-security'],
            plugin_security_attributes=params.
            config['configuration_attributes']['ranger-atlas-security'],
            plugin_policymgr_ssl_properties=params.config['configurations']
            ['ranger-atlas-policymgr-ssl'],
            plugin_policymgr_ssl_attributes=params.
            config['configuration_attributes']['ranger-atlas-policymgr-ssl'],
            component_list=['atlas-server'],
            audit_db_is_enabled=False,
            credential_file=params.credential_file,
            xa_audit_db_password=None,
            ssl_truststore_password=params.ssl_truststore_password,
            ssl_keystore_password=params.ssl_keystore_password,
            api_version='v2',
            skip_if_rangeradmin_down=not params.retry_enabled,
            is_security_enabled=params.security_enabled,
            is_stack_supports_ranger_kerberos=params.
            stack_supports_ranger_kerberos,
            component_user_principal=params.atlas_jaas_principal
            if params.security_enabled else None,
            component_user_keytab=params.atlas_keytab_path
            if params.security_enabled else None)
    else:
        Logger.info('Ranger admin not installed')