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')
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')
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')
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')
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')