You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+40-26Lines changed: 40 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,52 +11,65 @@
11
11
12
12
## 🔍 Overview
13
13
14
-
The SAP Testing Automation Framework is an open-source orchestration tool designed to validate SAP deployments on Microsoft Azure. It enables you to assess system configurations against SAP on Azure best practices and guidelines. Additionally, the framework facilitates automation for various testing scenarios, including High Availability (HA) functional testing.
15
-
16
-
> **NOTE**: This repository is currently in public preview and is intended for testing and feedback purposes. As this is an early release, it is not yet production-ready, and breaking changes can be introduced at any time.
14
+
The SAP Testing Automation Framework is an open-source orchestration tool designed to validate SAP deployments on Microsoft Azure. It enables you to assess system configurations against SAP on Azure best practices and guidelines, and facilitates automation for various testing scenarios.
SAP Testing Automation is designed as a scalable framework to orchestrate and validate a wide spectrum of SAP landscape scenarios through repeatable, policy-driven test modules. The framework currently offers following scenarios -
21
+
22
+
> [!NOTE]
23
+
>
24
+
> The High Availability testing scenario in the SAP Testing Framework is **generally available (GA)**, while the Configuration Checks scenario is currently in **public preview**.
21
25
22
-
The following SAP components are supported in a two-node Pacemaker cluster running on SUSE Linux Enterprise Server (SLES) or Red Hat Enterprise Linux (RHEL):
26
+
### High Availability Testing
23
27
24
-
-**SAP HANA Scale-Up**
25
-
-**SAP Central Services**
28
+
In the SAP Testing Automation Framework, thorough validation of high availability SAP HANA scale-up and SAP Central Services failover mechanism in a two node pacemaker cluster can be performed, ensuring the system operates correctly across different situations.
26
29
27
-
For additional information on supported configuration patterns, such as cluster types (Azure Fence Agent or SBD) and storage options (Azure Files or Azure NetApp Files) in this automated testing framework, refer to [supported high availability configuration](./docs/HIGH_AVAILABILITY.md).
30
+
-**High Availability Configuration Validation:** The framework helps to ensure that SAP HANA scale-up and SAP Central Services configurations and load balancer settings are compliant with SAP on Azure high availability configuration guidelines.
31
+
-**Functional Testing:** The framework executes series of real-world scenarios based on the SAP HANA and SAP Central Services high availability setup to identify potential issues, whether during a new system deployment or before implementing cluster changes in a production environment. The test cases are based on what is documented in how-to guides for SAP HANA and SAP Central Services configuration.
32
+
-**Offline configuration validation:** Offline validation is a mode of the framework that validates SAP HANA and SAP Central Services high availability cluster configurations without establishing a live SSH connection to the production cluster. Instead, it analyzes captured cluster information base (CIB) XML files exported from each cluster node.
28
33
29
-
##📊 Key Features
34
+
### Configuration Checks (Preview)
30
35
31
-
-**High Availability Testing** - Thorough validation of the SAP HANA scale-up and SAP Central Services failover mechanism in a two node pacemaker cluster, ensuring the system operates correctly across various test cases.
32
-
-**Configuration Validation** - Ensures that SAP HANA scale-up and SAP Central Services configurations comply with SAP on Azure best practices and guidelines.
33
-
-**Functional Testing** - Executes test scenarios on the high availability setup to identify potential issues, whether during a new system deployment or before implementing cluster changes in a production environment.
34
-
-**Detailed Reporting** - Generates comprehensive reports, highlighting configuration mismatch or deviations from recommended best practices. Includes failover test outcomes, any failures encountered, and logs with insights to aid in troubleshooting identified issues.
36
+
The framework performs comprehensive configuration checks to ensure that the SAP system and its components are set up according to [SAP on Azure best practice](https://learn.microsoft.com/azure/sap/). This includes validating infrastructure settings, operating system parameter configurations, and network settings, in addition to the cluster configuration, to identify any deviations that could impact system performance or reliability.
37
+
38
+
-**Infrastructure Validation:** This includes validating the underlying infrastructure components, such as virtual machines, load balancer, and other resource configurations, to ensure they meet the requirements for running SAP workloads on Azure.
39
+
-**Storage Configuration Checks:** It validates settings of disks, storage accounts, Azure NetApp Files, including throughput, performance, and stripe size.
40
+
-**Operating System and SAP Parameter Validation:** The framework checks critical operating system parameters and SAP kernel settings to ensure they align with recommended configurations.
41
+
-**Cluster Configuration Validation:** This framework ensures that the high availability cluster resource settings adhere to best practices for high availability and failover scenarios.
42
+
43
+
The framework generates comprehensive reports, highlighting configuration mismatch or deviations from recommended best practices. For high availability scenarios, the report includes failover test outcomes, any failures encountered, and logs with insights to aid in troubleshooting identified issues.
35
44
36
45
## 🏆 Purpose
37
46
38
47
Testing is crucial for keeping SAP systems running smoothly, especially for critical business operations. This framework helps by addressing key challenges:
39
48
40
-
-**Preventing Risks** - It simulates system failures like node crashes, network issues, and storage failures to check if recovery mechanisms work properly, helping to catch problems before they affect real operations.
41
-
-**Meeting Compliance Requirements** - Many businesses need to prove their SAP systems are reliable. This framework provides detailed reports and logs that help with audits and ensure compliance with internal and regulatory standards.
42
-
-**Ensuring Quality** - The framework runs automated tests to verify whether the failover behavior of SAP components functions as expected on Azure across various test scenarios. It also ensures that the cluster and resource configurations are set up correctly, helping to maintain system reliability.
43
-
-**Automating Testing**: Manually testing high availability (HA) setups is slow and error-prone. This framework automates the process—from setup to reporting—saving time and ensuring more accurate and consistent results.
49
+
-**Risk Prevention** - The high availability testing helps simulate system failures like node crashes, network issues, and storage failures to check if recovery mechanisms work properly, helping to catch problems before they affect real operations. Configuration validation detects misalignments with SAP on Azure best practices early.
50
+
-**Compliance Requirements** - Many businesses need to prove their SAP systems are reliable. This framework provides detailed reports and logs that help with audits and ensure compliance with internal and regulatory standards.
51
+
-**Quality Assurance** - The framework runs automated tests to verify whether the failover behavior of SAP components functions as expected on Azure across various test scenarios. It also ensures that the cluster and resource configurations are set up correctly, helping to maintain system reliability.
52
+
-**Test Automation** - Manually validating overall SAP systems' configurations and high availability (HA) setup is slow and error-prone. This framework automates the process, from setup to reporting, saving time and ensuring more accurate and consistent results.
44
53
45
-
## 🚦 Get Started
54
+
## 🏗️ Architecture and Components
55
+
56
+
To learn how the framework works, refer to the [architecture and components](./docs/ARCHITECTURE.md) documentation.
46
57
47
-
There are two primary ways to get started with the SAP Testing Automated Framework. Choose the path that best fits your current environment and objectives:
58
+
## 🚦 Get Started
48
59
49
-
### Option 1: [Integration with SAP Deployment Automation Framework (SDAF)](./docs/SDAF_INTEGRATION.md)
60
+
There are two primary ways to get started with the SAP Testing Automation Framework. You can choose the path that best fits your current environment and objectives:
50
61
51
-
If you already have [SDAF](https://github.com/Azure/sap-automation) environment set up, integrating the SAP Testing Automation Framework is a natural extension that allows you to leverage existing deployment pipelines and configurations.
62
+
### Option 1: Standalone Setup of SAP Testing Automation Framework
52
63
53
-
### Option 2: [Getting Started with High Availability Testing (Standalone)](./docs/HIGH_AVAILABILITY.md)
64
+
For users focused solely on validating SAP functionality and configurations, the standalone approach offers a streamlined process to test critical SAP components without the complexity of full deployment integration. For more details on the setup, see following documents to get started -
54
65
55
-
For users focused solely on validating SAP functionality and configurations, the standalone approach offers a streamlined process to test critical SAP components without the complexity of full deployment integration.
66
+
- Configure management server following the document [Setup Guide for SAP Testing Automation Framework](https://github.com/Azure/sap-automation-qa/blob/main/docs/SETUP.MD).
67
+
- For high availability testing scenarios, see [High Availability documentation](./docs/HIGH_AVAILABILITY.md).
68
+
- For Configuration Checks and Testing details, see the [Configuration Checks documentation](./docs/CONFIGURATION_CHECKS.md).
56
69
57
-
##🏗️ Architecture and Components
70
+
### Option 2: Integration with SAP Deployment Automation Framework (SDAF)
58
71
59
-
To learn how the framework works, refer to the [architecture and components](./docs/ARCHITECTURE.md) documentation.
72
+
If you already have an [SAP Deployment Automation Framework](https://learn.microsoft.com/azure/sap/automation/deployment-framework) environment set up, integrating the SAP Testing Automation Framework is a natural extension that allows you to leverage existing deployment pipelines and configurations. For more details on the setup, see [Setup Guide for SAP Testing Automation Framework](./docs/SETUP.MD).
60
73
61
74
## 🆘Support
62
75
@@ -68,7 +81,8 @@ For support and questions, please:
68
81
## 📚 Additional Resources
69
82
70
83
-[Azure SAP Documentation](https://docs.microsoft.com/azure/sap)
71
-
-[SAP on Azure: High Availability Guide](https://docs.microsoft.com/azure/sap/workloads/sap-high-availability-guide-start)
SAP Configuration Checks is an integral part of the SAP Testing Automation framework, providing comprehensive validation of SAP system configurations on Azure infrastructure. This module ensures that SAP Database and SAP Central Services deployments meet enterprise requirements for compliance before entering production. This tool is designed to identify misconfigurations, deviations from best practices, and potential issues that could impact system's stability and performance.
4
+
5
+
This tool is a new version of the existing [Quality Checks scripts](https://github.com/Azure/SAP-on-Azure-Scripts-and-Utilities/tree/main/QualityCheck), re-architected to provide a extensible, and maintainable solution. It leverages Python for core logic and Ansible for orchestration.
6
+
7
+
## Overview
8
+
9
+
Configuration validation serves as a critical quality gate in the SAP deployment lifecycle by:
10
+
11
+
-**Validating Azure Infrastructure**: Ensuring compute, storage, and network configurations align with SAP best practices
12
+
-**Verifying SAP Parameters**: Checking critical SAP HANA and application server settings
13
+
-**Assessing Cluster Health**: Validating Pacemaker configurations and resource constraints
14
+
-**Ensuring Compliance**: Confirming adherence to organizational and SAP security standards
15
+
16
+
## Configuration Check Categories
17
+
18
+
The configuration checks are organized into logical groups that can be executed independently or all at once. The main categories are:
19
+
20
+
1.**Infrastructure**
21
+
- While not a separate execution category, infrastructure checks are performed as part of the other categories.
-**Storage**: Use of Premium SSD/Ultra Disk, Write Accelerator, disk caching policies, and redundancy settings.
24
+
25
+
2.**Database**
26
+
- Validates SAP HANA or IBM DB2 specific settings.
27
+
-**SAP HANA**: Checks memory allocation, system replication parameters, and Pacemaker cluster configurations (resource agents, fencing, constraints).
28
+
-**IBM DB2**: Verifies hardware requirements, system language, and OS tuning parameters.
29
+
30
+
3.**Central Services**
31
+
- Validates the configuration of ASCS (ABAP SAP Central Services) and ERS (Enqueue Replication Server) instances.
32
+
- Checks for virtual hostname configuration, file system mount options, and service startup ordering.
33
+
34
+
4.**Application Servers**
35
+
- Validates the configuration of the application server instances.
36
+
37
+
> [!NOTE]
38
+
>
39
+
> High Availability (HA) configuration checks and functional tests are currently supported only for SAP HANA databases. For IBM DB2 databases, only non-HA configuration checks are available.
40
+
41
+
## Pre-requisites
42
+
43
+
### 1. Setup Configuration
44
+
45
+
Follow the steps (1.1 - 1.5) in [Setup Guide for SAP Testing Automation Framework](./SETUP.MD) to set up the framework on a management server.
46
+
47
+
### 2. System Configuration
48
+
49
+
Update the `TEST_TYPE` parameter in [`vars.yaml`](./../vars.yaml) file to `ConfigurationChecks` to enable the Configuration Checks test scenarios.
50
+
51
+
Follow the steps (2.1 - 2.2) in [Setup Guide for SAP Testing Automation Framework](./SETUP.MD#2-system-configuration) to configure your system details.
52
+
53
+
### 3. Required Access and Permissions (required)
54
+
55
+
Effective configuration validation requires that the management server's managed identity (system or user assigned) has read permissions on all target Azure resources. This allows the framework to inspect the settings of services including, but not limited to, Azure Load Balancers, storage solutions (Managed Disks, Azure Files, Azure NetApp Files), and network infrastructure. Lacking the necessary access will prevent the configuration checks from identifying potential misconfigurations in the environment. For more details on configuring system assigned managed identity vs user assigned managed identity, see [Setup Guide for SAP Testing Automation Framework](./SETUP.MD#4-identity-and-authorization).
56
+
57
+
1. Depending on the type of managed identity method you want to use, configure managed identity on management server
58
+
-[Configuring access using user-assigned managed identity](./SETUP.MD#option-1-user-assigned-managed-identity).
59
+
-[Configuring access using system-assigned managed identity](./SETUP.MD#option-2-system-assigned-managed-identity).
60
+
2. Grant the managed identity (system- or user-assigned) the built-in **Reader** role on every resource group that contains SAP system components (VMs, managed disks, load balancers, virtual network, shared storage such as Azure NetApp Files or Azure Files). If everything resides in a single resource group, one assignment there is sufficient; if components are split across multiple resource groups, add a **Reader** role assignment on each resource group to allow the configuration checks to read and validate all infrastructure settings.
61
+
62
+
## Test Execution
63
+
64
+
You first need to make sure that you are logged into Azure CLI on the management server VM with the appropriate subscription context:
65
+
66
+
```bash
67
+
# Login to Azure using System Assigned Managed Identity
68
+
az login --identity
69
+
70
+
# Login to Azure using User Assigned Managed Identity
71
+
az login --identity -u <client-id-of-user-assigned-managed-identity>
72
+
73
+
# Set the desired subscription context
74
+
az account set --subscription <subscription-id>
75
+
```
76
+
77
+
To execute the script, run following command:
78
+
79
+
```bash
80
+
# Help option
81
+
./scripts/sap_automation_qa.sh --help
82
+
83
+
# Run all the configuration checks with default parameters
84
+
./scripts/sap_automation_qa.sh
85
+
86
+
# Run checks with verbose logging
87
+
./scripts/sap_automation_qa.sh -vv
88
+
89
+
# Run only Database configuration checks (supports both HANA and DB2)
After the test execution completes, a detailed HTML report is generated. The report provide the summary of each test cases that got executed for each VM.
102
+
103
+
**To locate and view your test report:**
104
+
105
+
1.**Navigate to your SAP system’s workspace directory:**
106
+
107
+
Replace `<SYSTEM_CONFIG_NAME>` with the name of your SAP system configuration (for example, `DEV-WEEU-SAP01-X00`):
108
+
109
+
```bash
110
+
cd WORKSPACES/SYSTEM/<SYSTEM_CONFIG_NAME>/quality_assurance/
111
+
```
112
+
113
+
2.**Find your report file:**
114
+
115
+
The report file is named using the following format:
116
+
117
+
```html
118
+
all_{DISTRO}_{INVOCATION_ID}.html
119
+
```
120
+
121
+
-`DISTRO`: Linux distribution (SLES or RHEL)
122
+
123
+
-`INVOCATION_ID`: A unique identifier (Group invocation ID) for the test run which is logged at the end of test execution. Find example screenshot below:
0 commit comments