• Stars
    star
    122
  • Rank 290,427 (Top 6 %)
  • Language HCL
  • License
    GNU General Publi...
  • Created almost 6 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Automated SAP/HA Deployments in Public/Private Clouds

Automated SAP/HA Deployments in Public and Private Clouds with Terraform

Build Status๐Ÿ”—

Supported terraform version 1.1.X


About

This Project provides a high configurable way to deploy SAP HANA database and SAP S/4HANA (or SAP NetWeaver) on various cloud platforms.

Both public cloud and private cloud scenarios are possible. The major cloud providers Google Cloud Platform (GCP), Microsoft Azure, and Amazon Web Services (AWS) are supported. Furthermore OpenStack and libvirt/KVM can be used.

It shall give an improved user experience for our SAP customers and partners. and deployment will takes minutes/hours instead of days. You can use it for POC or production deploymentes

Everything is powered by SUSE Linux Enterprise Server for SAP Applications.

Overview

Project Components

The diagram above shows components for an example setup. Several features can be enabled or disabled through configuration options to control the behavior of the HA Cluster, the SAP HANA and SAP S/4HANA or SAP NetWeaver. The setup is also dependent on the cloud provider which is used.

Components Details

  • SAP HANA Database: HANA might be deployed as a single SAP HANA database instance, or as a two-node configuration with system replication. Even HANA Scale-Out scenarios can be deployed, depending on the cloud provider (see Features section). In addition a SUSE HA cluster can be set on top of that. Please also have a look at Preparing SAP software

  • SAP S/4 HANA (or NetWeaver): S/4HANA can be deployed with a single PAS instance or as a full stack including ASCS, ERS, PAS and AAS (multiple) instances. In the latter sce case, a SUSE HA cluster is set on top of ASCS/ERS. For more information see S/4HANA and NetWeaver and Preparing SAP software.

  • ISCSI server: This provides Stonith Block Devices used by the sbd fencing mechanism. Also see Fencing mechanism Native fencing mechanisms are available for some cloud environments (see Features section).

  • Monitoring server: The monitoring solution is based on prometheus๐Ÿ”— and grafana๐Ÿ”—. It provides informative and customizable dashboards to users and administrators. Every node has prometheus exporters installed which are used to collect the needed metrics. For more information see Monitoring of cluster.

  • DRBD cluster: It is used to provide a highly available NFS server for cloud providers that lack a native solution. It will be used to mount SAP NetWeaver shared files. For more information see DRBD. Some cloud providers have native solutions for high available NFS (see Features section), which should be preferred over the DRBD solution.

  • Bastion server: A bastion server is used to have a single internet-facing entry point (ssh) for the administrator and the provisioning process. Security-wise, it is a best practice to access you machines this way. The availability of this solution depends again on the used cloud provider (see Features section).

For more on various topics have a look on the following documentation:

Products

This repository supports deployment with following products:

Vendor Product
SUSE SUSE Linux Enterprise Server for SAP Applications 12 SP5
Certification: SLES for SAP๐Ÿ”— and SAP Process Automation๐Ÿ”—
SUSE SUSE Linux Enterprise Server for SAP Applications 15 SP4 (or older)
Certification: SLES for SAP๐Ÿ”— and SAP Process Automation๐Ÿ”—
SAP SAP HANA 2.0 with SPS >= 02
SAP SAP NETWEAVER 7.5 (and later)
SAP SAP S/4HANA 1610
SAP SAP S/4HANA 1709
SAP SAP S/4HANA 1809
SAP SAP S/4HANA 1909
SAP SAP S/4HANA 2020
SAP SAP S/4HANA 2021

Cloud Providers

This repository supports deployment on the following SAP certified providers cloud providers:

Vendor Product Certification
Amazon Amazon Web Services (AWS) SAP Hardware Directory for AWS๐Ÿ”—
Microsoft Azure SAP Hardware Directory for Azure๐Ÿ”—
Google Google Cloud Platform (GCP) SAP Hardware Directory for GCP๐Ÿ”—
OpenInfra OpenStack Depends on deployed hardware,
get an overview in SAP's Hardware Directory๐Ÿ”—
libvirt.org Libvirt not certified

Features

The following features are implemented:

Feature AWS Azure GCP OpenStack Libvirt
SUSE saptune / SAP sapnotes
SUSE's saptune is applied with the correct solution template to configure the systems based on SAP sapnotes recommendations.
For additional information see Tuning Systems with saptune๐Ÿ”—.
โ˜’ โ˜’ โ˜’ โ˜’ โ˜’
HANA single node
Deployment of HANA on a single node.
For additional information see SAP Hardware Directory for AWS๐Ÿ”—
โ˜’ โ˜’ โ˜’ โ˜’ โ˜’
HANA Scale-Up - performance optimized
Deployment of HANA with system replication in a performance optimized setup.
For addition information see SAP HANA System Replication Scale-Up - Performance Optimized Scenario๐Ÿ”—.
โ˜’ โ˜’ โ˜’ โ˜’ โ˜’
HANA Scale-Up - cost optimized
Deployment of HANA with system replication in a cost optimized (additional tenant DB) setup.
For additional information see SAP HANA System Replication Scale-Up - Cost Optimized Scenario๐Ÿ”—.
โ˜’ โ˜’ โ˜’ โ˜’ โ˜’
HANA Scale-Out - performance optimized
Deployment of HANA Scale-Out (multi node) with system replication in a performance optimized setup.
For additional information see SAP HANA System Replication Scale-Out - Performance Optimized Scenario๐Ÿ”— and SAP HANA System Replication Scale-Out High Availability in Amazon Web Services๐Ÿ”—.
โ˜’ โ˜’ โ˜’ โ˜’ โ˜’
HANA Scale-Out - with standby nodes (HANA Host-Auto-Failover)
Deployment of HANA Scale-Out (multi node) with system replication and Host-Auto-Failover via standby nodes.
For additional information see Setting Up Host Auto-Failover๐Ÿ”— and Azure: Deploy a SAP HANA scale-out system with standby node on Azure VMs by using Azure NetApp Files on SUSE Linux Enterprise Server๐Ÿ”—.
๐Ÿšซ โ˜’ ๐Ÿšซ โ˜’ โ˜
SAP S/4HANA ENSA 1
Deployment of a SAP S/4HANA in Enqueue Replication (ENSA) 1 scenario.
For additional information see SAP NetWeaver Enqueue Replication 1 High Availability Cluster - Setup Guide for SAP NetWeaver 7.40 and 7.50 ๐Ÿ”—.
โ˜’ โ˜’ โ˜’ โ˜’ โ˜’
SAP S/4HANA ENSA 2
Deployment of a S/4HANA in Enqueue Replication (ENSA) 2 scenario.
For additional information see SAP S/4HANA - Enqueue Replication 2 High Availability Cluster - Setup Guide ๐Ÿ”—.
โ˜’ โ˜’ โ˜’ โ˜’ โ˜’
SAP S/4HANA single PAS
Deployment of a single S/4HANA PAS (primary instance).
For additional information see SAP S/4HANA - Enqueue Replication 2 High Availability Cluster - Setup Guide ๐Ÿ”—.
โ˜’ โ˜’ โ˜’ โ˜’ โ˜’
SAP S/4HANA High Availability Cluster
Deployment of a full SAP S/4HANA stack including ASCS, ERS, PAS and AAS (multiple) instances.
For additional information see SAP S/4HANA - Enqueue Replication 2 High Availability Cluster - Setup Guide ๐Ÿ”—.
โ˜’ โ˜’ โ˜’ โ˜’ โ˜’
Deployment in different Availability Zones/Sets
Deployment of virtual instances in different Availability Zones/Sets for HA on hardware level.
โ˜’ โ˜’ โ˜’ โ˜ โ˜

Legend:

Symbol Explanation
โ˜’ feature implemented in this repository
โ˜ not implemented in this repository
๐Ÿšซ not recommended by vendor

Project Structure

This project heavily uses terraform๐Ÿ”— and salt๐Ÿ”— for configuration and deployment.

Terraform is used to create the required infrastructure in the specified cloud.

The code is divided into sub directories for each terraform provider and split into different terraform modules. There are also some abstracted generic_modules

./ha-sap-terraform-deployments
โ”œโ”€โ”€ aws
โ”‚ย ย ย ย โ””โ”€โ”€ modules
โ”œโ”€โ”€ azure
โ”‚ย ย ย ย โ””โ”€โ”€ modules
โ”œโ”€โ”€ generic_modules
โ”‚ย ย ย ย โ””โ”€โ”€ ...
โ”œโ”€โ”€ gcp
โ”‚ย ย ย ย โ””โ”€โ”€ modules
โ”œโ”€โ”€ libvirt
โ”‚ย ย ย ย โ””โ”€โ”€ modules
โ”œโ”€โ”€ openstack
โ”‚ย ย ย ย โ””โ”€โ”€ modules
โ€ฆ

This makes the code modular and more maintainable.

Salt configures all virtual machine instances that are provisioned by terraform. This includes configuring the operating system, mounting filesystems, installing SAP software, installing HA components. It does so by using pillars and grains which are injected by terraform in a flexible and customizable way.

./ha-sap-terraform-deployments
โ”œโ”€โ”€ pillar_examples
โ”‚ย ย ย ย โ””โ”€โ”€ automatic
โ”‚ย ย ย ย     โ””โ”€โ”€ drbd
โ”‚ย ย ย ย     โ””โ”€โ”€ hana
โ”‚ย ย ย ย     โ””โ”€โ”€ netweaver
โ”œโ”€โ”€ salt
โ”‚ย ย ย ย โ””โ”€โ”€ bastion
โ”‚ย ย ย ย โ””โ”€โ”€ cluster_node
โ”‚ย ย ย ย โ””โ”€โ”€ ...
โ€ฆ

Terraform will first build up the infrastructure/machines and salt will do the actual provisioning.

Under the hood, shaptools๐Ÿ”— and salt-shaptools๐Ÿ”— are used, to have a stable API to access SAP HANA and Netweaver functionalities.

The whole architecture stack can be seen here:

Architecture

This repository is intended to be configured and run from a local workstation, but should also be runnable from your cloud provider's cloud shell.

Each provider folder has it own provider relevant documentation, modules and example configuration. Be sure to get familiar with these before trying this out.

Getting started

SUSE/SAP HA automation project

The SAP software media has to be available and prepared according to Preparing SAP software.

After you prepared the SAP software, make sure to have terraform and salt installed. Clone this repository and follow the quickstart guides of the favored provider. They can be found in ./<provider>/README.md or linked below:

The SUSE SAP automation guides contain a lot more detailed explanations than the short quick start guides.

Each provider folder contains a minimal working configuration example terraform.tfvars.example.

Please be careful which instance type you will use! The selection of systems certified by SAP could lead to expensive unexpected costs.

Troubleshooting

In case you have some issue, take a look at this troubleshooting guide.

More Repositories

1

Portus

Authorization service and frontend for Docker registry (v2)
Ruby
2,998
star
2

DeepSea

A collection of Salt files for deploying, managing and automating Ceph.
Python
161
star
3

machinery

A systems management toolkit for Linux
Ruby
157
star
4

cpuset

Originally exported from code.google.com/p/cpuset, then maintained at github.com/lpechacek/cpuset, then migrated the repo here SUSE/cpuset
Python
108
star
5

doc-sle

Official SUSE Linux Enterprise Documentation [Everyone, please use feature/ branches, create PRs and ensure CI runs successfully rather than just pushing to main!]
Emacs Lisp
92
star
6

phoebe

Phoebe
C
87
star
7

skuba

CLI tool used to simplify (or orchestrate) kubeadm-based Kubernetes cluster deployment and update
Go
85
star
8

suse-at-home

Shell
83
star
9

salt-netapi-client

Java bindings for the Salt API
Java
80
star
10

scf

SUSE Cloud Foundry
Shell
74
star
11

caasp-salt

A collection of salt states used to provision a kubernetes cluster
Python
64
star
12

hackweek

SUSE Hack Week tools and data
JavaScript
63
star
13

velum

Dashboard for CaaS Platform clusters (v1, v2 and v3)
Ruby
54
star
14

libpulp

libpulp enables live patching in user space applications.
C
51
star
15

hanadb_exporter

HANA Prometheus Exporter
Python
45
star
16

zypper-docker

Simple patch and update solution for Docker images
Go
43
star
17

suse-best-practices

SUSE Best Practices documentation series
Shell
42
star
18

kucero

KUbernetes CErtificate ROtation
Go
41
star
19

prometheus-webhook-snmp

prometheus-webhook-snmp is a Prometheus Alertmanager receiver that translates incoming notifications into SNMP traps.
Python
40
star
20

kernel

Linux Kernel sources with SUSE patches applied
C
40
star
21

sle2docker

This is a tool which facilitates the creation of SLE containers for Docker.
Ruby
39
star
22

rmt

RPM repository mirroring tool and registration proxy for SUSE Customer Center.
Ruby
37
star
23

sap_host_exporter

Prometheus exporter for SAP systems (SAP S/4 HANA and SAP Netweaver hosts)
Go
33
star
24

saptune

Saptune is a configuration tool to prepare a system to run SAP workloads by implementing the recommendations of various SAP notes.
Go
33
star
25

open-build-service-connector

Visual Studio Code extension for integration with the Open Build Service
TypeScript
30
star
26

doc-caasp

SUSE Container as a Service Platform Documentation
Shell
27
star
27

caasp-services

Layered Services on the SUSE Container-as-a-Service Platform
Shell
25
star
28

rebootmgr

C
24
star
29

lrbd

Python
24
star
30

susecloud-repocheck

SUSECloud Update Infrastructure Check for Azure, AWS, and GCP
Python
22
star
31

doc-susemanager

SUSE Manager documentation - Deprecated - docs have migrated to the Uyuni-project
21
star
32

beamertheme-suse

Beamer template following https://brand.suse.com
TeX
20
star
33

SAPHanaSR

SAP HANA System Replication Resource Agent for Pacemaker Cluster
Python
19
star
34

container-suseconnect

Provides access to repositories inside containers using the host entitlements
Go
19
star
35

sesdev

CLI tool to deploy and manage SES clusters
Python
18
star
36

linux-security-sensor

Linux security sensor
Go
18
star
37

saphanabootstrap-formula

SAP HANA platform bootstrap salt formula
SaltStack
18
star
38

doc-sleha

Official SUSE Linux Enterprise High Availability documentation
Makefile
17
star
39

manager-rancher-auto

Automation of Rancher, K3s, RKE, RKE2 through Salt and SUSE Manager
Shell
17
star
40

recipebook

Originates from the SUSE Hackweek 20 (March 2021): https://hackweek.suse.com/20/projects/open-sauce-is-in-our-genes but everyone is welcome to contribute.
Shell
17
star
41

shaptools

Project to expose SAP HANA and Clusterlabs HA cluster features easily and in a standardized way.
Python
17
star
42

helm-certgen

Helm plugin for generation of TLS certificates
Go
16
star
43

cf-solo

All of Cloud Foundry in one container
Shell
16
star
44

dex-operator

A Kubernetes operator for Dex
Go
16
star
45

connect

SUSEConnect Client
Ruby
16
star
46

kernel-source

SUSE Kernel Patches
Python
16
star
47

catapult

SCF and KubeCF CI implementation
Shell
15
star
48

doc-ses

Official SUSE Enterprise Storage documentation
Shell
14
star
49

smt

Subscription Management Tool
Perl
14
star
50

salt-formulas

Salt Formulas for SUSE Enterprise Linux and openSUSE Linux
Jinja
13
star
51

doc-styleguide

SUSE Documentation Style Guide
13
star
52

salt-shaptools

Salt execution module and state to manage SAP Applications (HANA only at the moment) and SUSE Linux Enterprise High Availability components
Python
13
star
53

Enceladus

A collection of code and documentation related to Public Cloud.
Python
12
star
54

aimaas

Abstract Information Management and Authority Service
Python
12
star
55

registries-operator

A Kubernetes operator for images registries
Go
12
star
56

susemanager-ci

CI infrastructure for SUSE Manager
HCL
12
star
57

doc-cap

SUSE Cloud Application Platform Documentation
12
star
58

habootstrap-formula

Salt formula for bootstrapping an HA cluster
SaltStack
12
star
59

osc-tiny

Documentation
Python
12
star
60

doc-slesforsap

Official SUSE Linux Enterprise Server for SAP Applicaยญtions Documentation
XSLT
11
star
61

azure-resource-manager-sap-solution-templates

Simplified infrastructure deployment based on MSFT SAP reference architecture on SUSE SUSE Microsoft Solution Templates
Shell
11
star
62

manager-build-profiles

Example profiles for building images and systems with SUSE Manager and Uyuni
Shell
11
star
63

vmdp

VMDP is the Virtual Machine Driver Pack for Microsoft Windows. This repository contains the source code, which is distributed under a BSD-2-Clause license (see LICENSE). For buying the product support, see: https://www.suse.com/products/vmdriverpack/
C
11
star
64

pcw

Publiccloud monitor used in automated testing
Python
10
star
65

owasp_zap

ruby owasp proxy API upstream on
Ruby
10
star
66

terraform-provider-susepubliccloud

A terraform provider that makes it easy to find the resources managed by SUSE inside of different public clouds
Go
10
star
67

clang-extract

C++
10
star
68

virt-tuner

Tool applying tuning to libvirt virtual machines based on opinionated profiles.
Python
10
star
69

BCI-tests

This repository contains the tests for the SUSE Base Container Images
Python
9
star
70

doc-modular

9
star
71

SAPHanaSR-ScaleOut

HANA ScaleOut Resource Agent
Shell
9
star
72

connect-ng

Go
9
star
73

sapnwbootstrap-formula

SAP Netweaver bootstrap salt formula
Jinja
9
star
74

container-feeder

Import Linux container images delivered as RPMs into a local docker daemon
Go
9
star
75

grafana-dashboards-ceph

A collection of dashboards to be used with Grafana and Prometheus for monitoring Ceph clusters
9
star
76

sapconf

Optimise operating system parameters according to SAP recommendations. (Please, also check saptune, where more options are provided)
Shell
8
star
77

pam-config

Tool to modify common PAM configuration files
C
8
star
78

stratos-metrics

Helm chart for deploying Prometheus and the Cloud Foundry Firehose exporter for use in Stratos
Shell
8
star
79

suse-migration-services

Python
7
star
80

log-analysis

Everything you need to analyze your logs with the Elastic stack
SaltStack
7
star
81

BCI-dockerfile-generator

Python
7
star
82

cap-terraform

Terraform templates for deploying SUSE Cloud Application Platform
HCL
7
star
83

supportconfig-utils

Utilities for analyzing supportconfig tarballs
Ruby
7
star
84

supportutils-plugin-suse-caasp

Supportconfig plugin for SUSE CaaSP
Shell
7
star
85

cryptctl

Go
6
star
86

supportutils-plugin-ha-sap

SLES for SAP plugin for supportconfig
Shell
6
star
87

elasticsupport

Put supportconfig data in elasticsearch
Ruby
6
star
88

kubernetes-charts-suse-com

Mustache
6
star
89

caasp-openstack-heat-templates

OpenStack Heat templates for deploying CaaSP
6
star
90

klp-convert

Tool to be used for formatting elf relocation sections in kernel live patches.
C
6
star
91

suse.github.io

Portal for Open Source at SUSE
HTML
6
star
92

SAPStartSrv-resourceAgent

Python
6
star
93

project-portal

TypeScript
6
star
94

qe-sap-deployment

Terraform+Ansible SAP Deployments for Cloud Service Providers
HCL
6
star
95

open-build-service-api

API wrapper for the Open Build Service implemented in Typescript.
TypeScript
6
star
96

technical-reference-documentation

SUSE Technical Reference Documentation
Shell
6
star
97

cf-ci

CI for SUSE Cloud Foundry
Shell
6
star
98

smdba

SUSE Manager database administration tool (replacement for spacewalk-dobby)
Python
5
star
99

reviewlette

Assigns randomly chosen reviewer to Github issue and corresponding Trello card
Ruby
5
star
100

caasp-monitoring

Grafana dashboards for SUSE CaaS Platform monitoring
5
star