Support Questions

Find answers, ask questions, and share your expertise

Install HDP 2.5 with Suse Manager/Spacewalk

New Contributor

We are trying to perform an offline installation of the latest version of HDP with Suse Manager/Spacewalk. The clusters OS is SLES12.

At the Stack selection in Ambari Server we select the option to host the Repos from Satellite/Spacewalk. The relevant repos are available via Spacewalk at the target nodes.

The host check displays issues with the repositories as shown in the screenshots.

14126-bildschirmfoto-2017-03-28-um-144323.png

14127-bildschirmfoto-2017-03-28-um-144331.png

Later the actual package installation fails too, because there are no repositories, but channels that connect to Suse Manager.

The documentation doesn't state anything regarding Repo setup with Satellite/Spacewalk so we are not able to solve this issue on our selves.

A quick dive into code showed that installation via zypper checks first if there are active Repos that contain HDPO in their name. It seems that there is a workaround for HDP 2.0.6 overriding the repo template for suse/redhat, but I don't know if that matches this particular use case as well - and we are on HDP 2.5.

Relevant code area is located at ambari-common/src/main/python/resource_management/core/providers/package/zypper.py

  def get_active_base_repos(self):
    (code, output) = self.call_with_retries(LIST_ACTIVE_REPOS_CMD)
    enabled_repos = []
    if not code:
      for line in output.split('\n')[2:]:
        line_list = line.split('|')
        if len(line_list) < 5:
          continue  # Skip malformed line, such as "---+--------+---------+----------+--------"
                    # Handle good line such as "1 | HDP-2.3 | HDP-2.3 | No | No"
        # this 'Yes' marks active repositories
        if line_list[3].strip() == 'Yes' and line_list[2].strip().startswith("SUSE-"):
          enabled_repos.append(line_list[1].strip())
        if line_list[2].strip() == 'OpenSuse':
          return [line_list[1].strip()]
    return enabled_repos

Maybe someone experienced this issue and can help with a hint.

Best Regards

4 REPLIES 4

Super Mentor

@Roland Johann

I am suspecting that you might be facing the issue because of : https://issues.apache.org/jira/browse/AMBARI-20119

Can you try to manually disable the HDP repos and then see if it works. Put all hostname in the file "/tmp/all_nodes.txt" and then try again.

1. Try disabling the repo (from ambari host):

# /var/lib/ambari-server/resources/scripts/configs.sh -u admin -p admin -port 8080 set $AMBARI_HOST $CLUSTERNAME cluster-env repo_suse_rhel_template "[{{repo_id}}-DISABLED]\nname={{repo_id}}-DISABLED\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=0\ngpgcheck=0"

2. On every host:

sudo pdsh -w ^/tmp/all_nodes.txt "sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/HDP.repo"

.

New Contributor

Thanks for quick reply!

The problem with this workaround is that there has to be an existing cluster. In our case we aren't able to create one because there are no repositories or we have to tweak those settings after submission of the cluster creation.

We managed to get that work by creating the cluster via Ambari Blueprints and pass that template override via blueprint.

Litle bit off topic: Is there any detailed documentation about ambari blueprints and what are the properties that one can set to instrument ambari? It was very painful to get a clue of what can be set at the blueprints. Occasionally discovered some documentation of how to export an existing cluster as ambari blueprint and did that with our development cluster to see that one can also pass cluster-env settings.

Super Mentor

New Contributor

As mentioned below that actually doesn't solve the initial problem. We also created dummy repositories that points to an empty local repo and contains "HDP" in the name/alias.