Explorar el Código

AMBARI-16922. Remove LogSearch dependency for Ranger (Mugdha Varadkar via oleewere)

oleewere hace 9 años
padre
commit
ea987e49f4

+ 1 - 1
ambari-common/src/main/python/resource_management/libraries/functions/constants.py

@@ -82,5 +82,5 @@ class StackFeature:
   RANGER_KERBEROS_SUPPORT = "ranger_kerberos_support"
   HIVE_METASTORE_SITE_SUPPORT = "hive_metastore_site_support"
   RANGER_USERSYNC_PASSWORD_JCEKS = "ranger_usersync_password_jceks"
-  RANGER_LOGSEARCH_DEPENDENT = "ranger_logsearch_dependent"
+  LOGSEARCH_SUPPORT = "logsearch_support"
   HBASE_HOME_DIRECTORY = "hbase_home_directory"

+ 2 - 2
ambari-common/src/main/python/resource_management/libraries/functions/stack_features.py

@@ -240,8 +240,8 @@ _DEFAULT_STACK_FEATURES = {
       "min_version": "2.5.0.0"
     },
     {
-      "name": "ranger_logsearch_dependent",
-      "description": "Ranger audit properties should be configured to use Ambari installed LogSearch (AMBARI-16446)",
+      "name": "logsearch_support",
+      "description": "LogSearch Service support",
       "min_version": "2.5.0.0"
     },
     {

+ 11 - 1
ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/params.py

@@ -64,7 +64,7 @@ stack_supports_ranger_audit_db = stack_version_formatted and check_stack_feature
 stack_supports_ranger_log4j =  stack_version_formatted and check_stack_feature(StackFeature.RANGER_LOG4J_SUPPORT, stack_version_formatted)
 stack_supports_ranger_kerberos = stack_version_formatted and check_stack_feature(StackFeature.RANGER_KERBEROS_SUPPORT, stack_version_formatted)
 stack_supports_usersync_passwd = stack_version_formatted and check_stack_feature(StackFeature.RANGER_USERSYNC_PASSWORD_JCEKS, stack_version_formatted)
-stack_supports_logsearch_dependent = stack_version_formatted and check_stack_feature(StackFeature.RANGER_LOGSEARCH_DEPENDENT, stack_version_formatted)
+stack_supports_logsearch = stack_version_formatted and check_stack_feature(StackFeature.LOGSEARCH_SUPPORT, stack_version_formatted)
 
 downgrade_from_version = default("/commandParams/downgrade_from_version", None)
 upgrade_direction = default("/commandParams/upgrade_direction", None)
@@ -266,6 +266,16 @@ ranger_solr_conf = format('{ranger_home}/contrib/solr_for_audit_setup/conf')
 logsearch_solr_hosts = default("/clusterHostInfo/logsearch_solr_hosts", [])
 replication_factor = 2 if len(logsearch_solr_hosts) > 1 else 1
 has_logsearch = len(logsearch_solr_hosts) > 0
+is_solrCloud_enabled = default('/configurations/ranger-env/is_solrCloud_enabled', False)
+zookeeper_port = default('/configurations/zoo.cfg/clientPort', None)
+# get comma separated list of zookeeper hosts from clusterHostInfo
+index = 0
+zookeeper_quorum = ""
+for host in config['clusterHostInfo']['zookeeper_hosts']:
+  zookeeper_quorum += host + ":" + str(zookeeper_port)
+  index += 1
+  if index < len(config['clusterHostInfo']['zookeeper_hosts']):
+    zookeeper_quorum += ","
 
 # logic to create core-site.xml if hdfs not installed
 if stack_supports_ranger_kerberos and not has_namenode:

+ 1 - 1
ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/ranger_admin.py

@@ -75,7 +75,7 @@ class RangerAdmin(Script):
     env.set_params(params)
     self.configure(env, upgrade_type=upgrade_type)
 
-    if params.stack_supports_logsearch_dependent and params.has_logsearch:
+    if params.stack_supports_logsearch and params.has_logsearch and params.is_solrCloud_enabled:
       setup_ranger_audit_solr()
     ranger_service('ranger_admin')
 

+ 0 - 16
ambari-server/src/main/resources/common-services/RANGER/0.6.0/metainfo.xml

@@ -27,18 +27,6 @@
       <version>0.6.0</version>
 
       <components>
-        <component>
-          <name>RANGER_ADMIN</name>
-          <dependencies>
-            <dependency>
-              <name>LOGSEARCH/LOGSEARCH_SOLR_CLIENT</name>
-              <scope>host</scope>
-              <auto-deploy>
-                <enabled>true</enabled>
-              </auto-deploy>
-            </dependency>
-          </dependencies>
-        </component>
 
         <component>
           <name>RANGER_TAGSYNC</name>
@@ -65,10 +53,6 @@
         </theme>
       </themes>
 
-      <requiredServices>
-        <service>LOGSEARCH</service>
-      </requiredServices>
-
       <configuration-dependencies>
         <config-type>admin-log4j</config-type>
         <config-type>usersync-log4j.xml</config-type>

+ 2 - 2
ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_features.json

@@ -222,8 +222,8 @@
       "min_version": "2.5.0.0"
     },
     {
-      "name": "ranger_logsearch_dependent",
-      "description": "Ranger audit properties should be configured to use Ambari installed LogSearch (AMBARI-16446)",
+      "name": "logsearch_support",
+      "description": "LogSearch Service support",
       "min_version": "2.5.0.0"
     },
     {

+ 13 - 14
ambari-server/src/main/resources/stacks/HDP/2.5/services/stack_advisor.py

@@ -1114,29 +1114,28 @@ class HDP25StackAdvisor(HDP24StackAdvisor):
     else:
       putTagsyncAppProperty('atlas.kafka.bootstrap.servers', 'localhost:6667')
 
-    if 'LOGSEARCH' in servicesList and zookeeper_host_port:
-      putRangerEnvProperty('is_solrCloud_enabled', 'true')
+    if 'ranger-env' in services['configurations'] and 'is_solrCloud_enabled' in services['configurations']["ranger-env"]["properties"]:
+      isSolrCloudEnabled = services['configurations']["ranger-env"]["properties"]["is_solrCloud_enabled"]  == "true"
+    else:
+      isSolrCloudEnabled = False
+
+    ranger_audit_zk_port = ''
+
+    if 'LOGSEARCH' in servicesList and zookeeper_host_port and is_solrCloud_enabled:
       zookeeper_host_port = zookeeper_host_port.split(',')
       zookeeper_host_port.sort()
       zookeeper_host_port = ",".join(zookeeper_host_port)
-      logsearch_solr_znode = '/logsearch'
-      ranger_audit_zk_port = ''
+      logsearch_solr_znode = '/ambari-solr'
+
       if 'logsearch-solr-env' in services['configurations'] and \
         ('logsearch_solr_znode' in services['configurations']['logsearch-solr-env']['properties']):
         logsearch_solr_znode = services['configurations']['logsearch-solr-env']['properties']['logsearch_solr_znode']
         ranger_audit_zk_port = '{0}{1}'.format(zookeeper_host_port, logsearch_solr_znode)
       putRangerAdminProperty('ranger.audit.solr.zookeepers', ranger_audit_zk_port)
+    elif zookeeper_host_port and is_solrCloud_enabled:
+      ranger_audit_zk_port = '{0}/{1}'.format(zookeeper_host_port, 'ranger_audits')
+      putRangerAdminProperty('ranger.audit.solr.zookeepers', ranger_audit_zk_port)
     else:
-      putRangerEnvProperty('is_solrCloud_enabled', 'false')
-
-    if 'ranger-env' in configurations and configurations["ranger-env"]["properties"]["is_solrCloud_enabled"]:
-      isSolrCloudEnabled = configurations and configurations["ranger-env"]["properties"]["is_solrCloud_enabled"] == "true"
-    elif 'ranger-env' in services['configurations'] and 'is_solrCloud_enabled' in services['configurations']["ranger-env"]["properties"]:
-      isSolrCloudEnabled = services['configurations']["ranger-env"]["properties"]["is_solrCloud_enabled"]  == "true"
-    else:
-      isSolrCloudEnabled = False
-
-    if not isSolrCloudEnabled:
       putRangerAdminProperty('ranger.audit.solr.zookeepers', 'NONE')
 
     ranger_services = [