示例#1
0
文件: knox.py 项目: shwhite/ambari
def knox():
    import params

    XmlConfig(
        "gateway-site.xml",
        conf_dir=params.knox_conf_dir,
        configurations=params.config['configurations']['gateway-site'],
        configuration_attributes=params.config['configuration_attributes']
        ['gateway-site'],
        owner=params.knox_user)

    # Manually overriding service logon user & password set by the installation package
    ServiceConfig(params.knox_gateway_win_service_name,
                  action="change_user",
                  username=params.knox_user,
                  password=Script.get_password(params.knox_user))

    File(os.path.join(params.knox_conf_dir, "gateway-log4j.properties"),
         owner=params.knox_user,
         content=params.gateway_log4j)

    File(os.path.join(params.knox_conf_dir, "topologies", "default.xml"),
         group=params.knox_group,
         owner=params.knox_user,
         content=InlineTemplate(params.topology_template))

    File(os.path.join(params.knox_conf_dir, "topologies", "admin.xml"),
         group=params.knox_group,
         owner=params.knox_user,
         content=InlineTemplate(params.admin_topology_template))

    if Script.is_hdp_stack_greater_or_equal_to(params.version_formatted,
                                               "2.3.8.0"):
        File(os.path.join(params.knox_conf_dir, "topologies", "knoxsso.xml"),
             group=params.knox_group,
             owner=params.knox_user,
             content=InlineTemplate(params.knoxsso_topology_template))

    if params.security_enabled:
        TemplateConfig(os.path.join(params.knox_conf_dir,
                                    "krb5JAASLogin.conf"),
                       owner=params.knox_user,
                       template_tag=None)

    if not os.path.isfile(params.knox_master_secret_path):
        cmd = format(
            'cmd /C {knox_client_bin} create-master --master {knox_master_secret!p}'
        )
        Execute(cmd)
        cmd = format(
            'cmd /C {knox_client_bin} create-cert --hostname {knox_host_name_in_cluster}'
        )
        Execute(cmd)
def get_hadoop_dir_for_stack_version(target, stack_version):
  """
  Return the hadoop shared directory for the provided stack version. This is necessary
  when folder paths of downgrade-source stack-version are needed after hdp-select. 
  :target: the target directory
  :stack_version: stack version to get hadoop dir for
  """

  if not target in HADOOP_DIR_DEFAULTS:
    raise Fail("Target {0} not defined".format(target))

  hadoop_dir = HADOOP_DIR_DEFAULTS[target]

  formatted_stack_version = format_hdp_stack_version(stack_version)
  if Script.is_hdp_stack_greater_or_equal_to(formatted_stack_version, "2.2"):
    # home uses a different template
    if target == "home":
      hadoop_dir = HADOOP_HOME_DIR_TEMPLATE.format(stack_version, "hadoop")
    else:
      hadoop_dir = HADOOP_DIR_TEMPLATE.format(stack_version, "hadoop", target)

  return hadoop_dir
示例#3
0
def get_hadoop_dir_for_stack_version(target, stack_version):
  """
  Return the hadoop shared directory for the provided stack version. This is necessary
  when folder paths of downgrade-source stack-version are needed after hdp-select. 
  :target: the target directory
  :stack_version: stack version to get hadoop dir for
  """

  if not target in HADOOP_DIR_DEFAULTS:
    raise Fail("Target {0} not defined".format(target))

  hadoop_dir = HADOOP_DIR_DEFAULTS[target]

  formatted_stack_version = format_hdp_stack_version(stack_version)
  if Script.is_hdp_stack_greater_or_equal_to(formatted_stack_version, "2.2"):
    # home uses a different template
    if target == "home":
      hadoop_dir = HADOOP_HOME_DIR_TEMPLATE.format(stack_version, "hadoop")
    else:
      hadoop_dir = HADOOP_DIR_TEMPLATE.format(stack_version, "hadoop", target)

  return hadoop_dir
示例#4
0
文件: knox.py 项目: shwhite/ambari
def knox():
    import params
    Directory(
        [
            params.knox_data_dir, params.knox_logs_dir, params.knox_pid_dir,
            params.knox_conf_dir,
            os.path.join(params.knox_conf_dir, "topologies")
        ],
        owner=params.knox_user,
        group=params.knox_group,
        create_parents=True,
        cd_access="a",
        mode=0755,
        recursive_ownership=True,
    )

    XmlConfig(
        "gateway-site.xml",
        conf_dir=params.knox_conf_dir,
        configurations=params.config['configurations']['gateway-site'],
        configuration_attributes=params.config['configuration_attributes']
        ['gateway-site'],
        owner=params.knox_user,
        group=params.knox_group,
    )

    File(format("{params.knox_conf_dir}/gateway-log4j.properties"),
         mode=0644,
         group=params.knox_group,
         owner=params.knox_user,
         content=params.gateway_log4j)

    File(format("{params.knox_conf_dir}/topologies/default.xml"),
         group=params.knox_group,
         owner=params.knox_user,
         content=InlineTemplate(params.topology_template))
    File(format("{params.knox_conf_dir}/topologies/admin.xml"),
         group=params.knox_group,
         owner=params.knox_user,
         content=InlineTemplate(params.admin_topology_template))

    if Script.is_hdp_stack_greater_or_equal_to(params.version_formatted,
                                               "2.3.8.0"):
        File(os.path.join(params.knox_conf_dir, "topologies", "knoxsso.xml"),
             group=params.knox_group,
             owner=params.knox_user,
             content=InlineTemplate(params.knoxsso_topology_template))

    if params.security_enabled:
        TemplateConfig(format("{knox_conf_dir}/krb5JAASLogin.conf"),
                       owner=params.knox_user,
                       template_tag=None)

    cmd = format(
        '{knox_client_bin} create-master --master {knox_master_secret!p}')
    master_secret_exist = as_user(format('test -f {knox_master_secret_path}'),
                                  params.knox_user)

    Execute(
        cmd,
        user=params.knox_user,
        environment={'JAVA_HOME': params.java_home},
        not_if=master_secret_exist,
    )

    cmd = format(
        '{knox_client_bin} create-cert --hostname {knox_host_name_in_cluster}')
    cert_store_exist = as_user(format('test -f {knox_cert_store_path}'),
                               params.knox_user)

    Execute(
        cmd,
        user=params.knox_user,
        environment={'JAVA_HOME': params.java_home},
        not_if=cert_store_exist,
    )