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
* Changes in HA doc
* Update repository URL in documentation
Update URL to point to the actual repository
* Refine language and clarity in the High Availability documentation
---------
Co-authored-by: hdamecharla <[email protected]>
Co-authored-by: devanshjain <[email protected]>
A key component of the SAP Testing Automation framework is the SAP High Availability (HA) Testing. This helps in ensuring that an SAP system deployment complies to SAP on Azure best practices and guidelines.
4
4
5
-
One key component of the SAP Testing Automation framework is the SAP High Availability (HA) Testing Framework, which is designed to ensure that your SAP deployments meet strict reliability and availability requirements.
5
+
The SAP High Availability Testing scenario executes a series of tests designed to simulate real-world failures, ensuring the system's recovery capabilities. Leveraging Ansible, the framework orchestrates various test cases, including node crashes, network disruptions, and storage failures, to validate the effectiveness of recovery mechanisms. Additionally, the framework captures comprehensive logs and generates detailed reports on the test outcomes.
6
6
7
-
The SAP High Availability Testing component operates by executing a series of carefully designed test scenarios that simulate real-world failure conditions and validate system recovery capabilities. By leveraging Ansible's powerful automation features, it orchestrates complex test scenarios across multiple components, while maintaining detailed logs and generating comprehensive reports of test outcomes.
7
+
## Supported Configurations
8
+
9
+
### Linux distribution
10
+
11
+
Currently SAP Testing Automation Framework is supported for below Linux distros and version.
12
+
13
+
| Distribution | Supported Release |
14
+
|--------------|-------------------|
15
+
| SUSE Linux Enterpise Server (SLES) | 15 SP4, 15 SP5, 15 SP6 |
16
+
| Red Hat Enterprise Linux (RHEL) | 8.8, 8.10, 9.2, 9.4 |
17
+
18
+
### High Availability configuration pattern
19
+
20
+
| Component | Type | Cluster Type | Storage |
21
+
|-----------|------|--------------|---------|
22
+
| SAP Central Services | ENSA1 or ENSA2 | Azure Fencing Agent | Azure Files or ANF |
23
+
| SAP HANA | Scale-up | Azure Fencing Agent | Azure Managed Disk or ANF |
24
+
| SAP HANA | Scale-up | ISCSI (SBD device) | Azure Managed Disk or ANF |
25
+
26
+
For SAP Central Services on SLES, both the simple mount approach and the classic method are supported.
27
+
28
+
## Technical Requirements for running Automation Framework
29
+
30
+
To run the SAP Testing Automation Framework, you must meet certain prerequisites and follow techincal requirements.
31
+
32
+
### SAP System Deployment on Microsoft Azure
33
+
34
+
- The SAP system must be hosted on Microsoft Azure Infrastructure-as-a-Service (IaaS).
35
+
- The SAP system deploymed should follow SAP on Azure best practices as outlined in:
36
+
-[SAP HANA high availability on Azure Virtual Machine](https://learn.microsoft.com/azure/sap/workloads/sap-high-availability-guide-start).
37
+
-[SAP Netweaver high availability on Azure Virtual Machine](https://learn.microsoft.com/azure/sap/workloads/sap-high-availability-guide-start)
8
38
9
-
In summary, SAP High Availability testing is an integral part of the overall SAP Testing Automation Framework, complementing other testing modules to provide a robust, end-to-end validation of your SAP environments.
39
+
### Management server
10
40
11
-
### Core Framework
41
+
The SAP Testing Automation Framework requires a jumpbox or management server with the following setup:
12
42
13
-
-**Ansible Playbooks**: Automated test execution and system validation
14
-
-**Test Scripts**: Helper utilities for test case management
15
-
-**WORKSPACES**: System-specific configuration and credentials management
16
-
-**Reporting Engine**: Generates detailed HTML test reports
43
+
-**Operating System**: Ubuntu 22.04 LTS.
44
+
-**Location**: Must be deployed on Azure.
45
+
46
+
> [!NOTE]
47
+
> Currently, only Ubuntu 22.04 LTS is supported for running the SAP Testing Automation Framework.
17
48
18
-
### System Requirements
49
+
### Azure RBAC
19
50
20
-
#### Required Components
51
+
For the framework to access the properties of the Azure Load Balancer in a high availability SAP system on Azure, the management server must have a Reader role assigned to the Load Balancer. This can be done using either a system-assigned or user-assigned managed identity.
21
52
22
-
1.**SAP System on Azure Cloud**
23
-
- The SAP system must be deployed on Azure infrastructure.
24
-
- Configured with supported high availability patterns to ensure system reliability.
25
-
- Network connectivity to the testing infrastructure must be established.
53
+
#### Configuring access using system-assigned managed identity
26
54
27
-
2.**Ubuntu Jump Host**
28
-
-**Operating System**: Ubuntu 22.04 LTS.
29
-
-**Location**: Deployed in Azure.
30
-
-**Network**: Must be connected to the SAP system's virtual network.
31
-
-**Permissions**: Requires a System Assigned/User Assigned managed identity with Reader Role at the subscription level.
55
+
1. Enable system managed identity on the management server by following the steps in [Configure managed identities on Azure VMs](https://learn.microsoft.com/entra/identity/managed-identities-azure-resources/how-to-configure-managed-identities?pivots=qs-configure-portal-windows-vm#system-assigned-managed-identity).
56
+
1. Open the Azure Load Balancer used for the high availability deployment of your SAP system on Azure.
57
+
1. In the Azure Load Balancer panel, go to Access control (IAM).
58
+
1. Follow steps 5 to 10 from [Use managed identity to access Azure Resource](https://learn.microsoft.com/entra/identity/managed-identities-azure-resources/how-to-configure-managed-identities?pivots=qs-configure-portal-windows-vm#system-assigned-managed-identity) to complete the configuration.
32
59
33
-
#### Optional Components
60
+
#### Configuring access using user-assigned managed identity
61
+
62
+
1. Create user-assigned managed identity as described in [manage user-assigned managed identities](https://learn.microsoft.com/entra/identity/managed-identities-azure-resources/how-manage-user-assigned-managed-identities?pivots=identity-mi-methods-azp#create-a-user-assigned-managed-identity)
63
+
1. Assign user-assigned managed identity to management server as described in [configure managed identities on Azure VMs](https://learn.microsoft.com/entra/identity/managed-identities-azure-resources/how-to-configure-managed-identities?pivots=qs-configure-portal-windows-vm#assign-a-user-assigned-managed-identity-to-an-existing-vm)
64
+
1. Open the Azure Load Balancer used for the high availability deployment of your SAP system on Azure.
65
+
1. In the Azure Load Balancer panel, go to Access control (IAM).
66
+
1. Assign the required role to the user-assigned managed identity by following the steps in [assign roles using Azure portal](https://learn.microsoft.com/azure/role-based-access-control/role-assignments-portal).
67
+
68
+
### Network Connectivity
69
+
70
+
The management server must have network connectivity to the SAP system to perform tests and validations. You can establish this connection by peering the networks as outlined in [manage a virtual network peering](https://learn.microsoft.com/azure/virtual-network/virtual-network-manage-peering?tabs=peering-portal).
sap_functional_test_type: "DatabaseHighAvailability"# or "CentralServicesHighAvailability"
82
126
83
127
# The name of the SAP system configuration for which you want to execute the test cases.
128
+
# It would be the name of the folder under 'WORKSPACE/SYSTEM/' where it could find hosts.yaml, sap-parameters.yaml files of the SAP system configuration
84
129
SYSTEM_CONFIG_NAME: "DEV-WEEU-SAP01-X00"
85
130
86
131
# The type of authentication to be used for the telemetry data destination. Supported values are: VMPASSWORD and SSHKEY
Create your system workspace. This directory contains the configuration files specific to your SAP system, necessary for connecting to the system and executing test scenarios. The `WORKSPACE/SYSTEM/` directory holds sub-directories, each representing a different [SAP system](./WORKSPACES/SYSTEM/DEV-WEEU-SAP01-X00).
110
155
@@ -114,11 +159,13 @@ mkdir ENV-REGION-VNET-SID
114
159
cd ENV-REGION-VNET-SID
115
160
```
116
161
117
-
#### Required Files
162
+
The system workspace should include the following files, containing all necessary details about the SAP system.
163
+
164
+
2.2.1. **hosts.yaml** - System [Inventory file](https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html) (required)
118
165
119
-
i. **hosts.yaml** - System [Inventory file](https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html) (required)
166
+
This file contains the connection details for the SAP system hosts and is used as an inventory file by the Ansible framework to connect to the SAP system. You can find the inventory file in the path [hosts.yaml](../WORKSPACES/SYSTEM/DEV-WEEU-SAP01-X00/hosts.yaml).
120
167
121
-
This file contains the connection properties of the SAP system hosts. This file acts as a inventory file for the ansible framework to connect to the SAP system. [Example of a inventory file](./WORKSPACES/SYSTEM/DEV-WEEU-SAP01-X00/hosts.yaml):
168
+
Here is an example of the hosts.yaml file format:
122
169
123
170
```yaml
124
171
X00_DB:
@@ -129,7 +176,7 @@ X00_DB:
129
176
ansible_connection: "ssh"
130
177
connection_type: "key"
131
178
virtual_host: "VIRTUAL_HOSTNAME0"
132
-
become_user: "root"
179
+
become_user: "USERNAME1" #Username with root privilege
133
180
os_type: "linux"
134
181
vm_name: "AZURE_VM_NAME0"
135
182
hostname1:
@@ -138,37 +185,43 @@ X00_DB:
138
185
ansible_connection: "ssh"
139
186
connection_type: "key"
140
187
virtual_host: "VIRTUAL_HOSTNAME1"
141
-
become_user: "root"
188
+
become_user: "USERNAME1" #Username with root privilege
142
189
os_type: "linux"
143
190
vm_name: "AZURE_VM_NAME1"
144
191
vars:
145
192
node_tier: "hana" # or "ers", "scs"
146
193
```
147
194
148
-
X00 is the SAP SID of the SAP system, followed by the host type (DB, ASCS, PAS, etc.). You should provide the SAP SID of the SAP system, regardless of whether you are testing Database High Availability or Central Services High Availability. The `hosts.yaml` file contains the following information:
195
+
In the file:
196
+
197
+
- X00 represents the SAP SID (System ID) of the SAP system, followed by the host type (e.g., DB, ASCS, PAS). You must provide the SAP SID of the system, regardless of whether you are testing Database High Availability or Central Services High Availability.
198
+
199
+
The file includes the following details:
149
200
150
201
- **ansible_host**: The IP address of the host.
151
-
- **ansible_user**: The user to connect to the host.
152
-
- **ansible_connection**: The connection type.
153
-
- **connection_type**: The type of connection. Applicable only when using SSH key for connection; when using a password, this should not be specified.
202
+
- **ansible_user**: The user for connecting to the host.
203
+
- **ansible_connection**: The connection type (usually "ssh").
204
+
- **connection_type**: The connection type, used when connecting via SSH key (not needed for password-based connections).
154
205
- **virtual_host**: The virtual host name of the SCS/DB host.
155
-
- **become_user**: The user with root privileges.
156
-
- **os_type**: The operating system type (Linux/Windows).
206
+
- **become_user**: The user with root privileges. For example, user "azureadm" must be able to change to root without password.
207
+
- **os_type**: The operating system type (e.g., Linux or Windows).
157
208
- **vm_name**: The computer name of the Azure VM.
158
-
- **node_tier**: This defines the type of node tier. Supported values: hana, ers, scs.
209
+
- **node_tier**: The type of node tier. Supported values: hana, ers, scs.
210
+
211
+
2.2.2. **sap-parameters.yaml** - SAP Configuration (required)
159
212
160
-
ii. **sap-parameters.yaml** - SAP Configuration (required)
213
+
This file contains the SAP system configuration parameters. The parameters are used by the test scenarios to validate the system's high availability configuration. You can find the inventory file in the path [sap-parameters.yaml](../WORKSPACES/SYSTEM/DEV-WEEU-SAP01-X00/sap-parameters.yaml).
161
214
162
-
This file contains the SAP system configuration parameters. The parameters are used by the test scenarios to validate the system's high availability configuration. [Example of a SAP parameters file](./WORKSPACES/SYSTEM/DEV-WEEU-SAP01-X00/sap-parameters.yaml):
215
+
Here is an example of the sap-parameters.yaml file format:
163
216
164
217
```yaml
165
218
# The SAP and Database SID of the SAP system.
166
219
sap_sid: "your-sap-sid"
167
220
db_sid: "your-db-sid"
168
221
169
222
# Boolean indicating if the SCS and database is configured as highly available.
170
-
scs_high_availability: false
171
-
db_high_availability: false
223
+
scs_high_availability: true
224
+
db_high_availability: true
172
225
173
226
# The high availability configuration of the SCS and DB instance. Supported values are:
174
227
# - AFA (for Azure Fencing Agent)
@@ -191,37 +244,25 @@ platform: "HANA"
191
244
NFS_provider: "ANF" # or "AFS"
192
245
```
193
246
194
-
iii. Optional Files
247
+
2.2.3. Credential Files
248
+
249
+
The required credential files depend on the authentication method used to connect to the SAP system:
195
250
196
-
- **ssh_key.ppk**: SSH private key (if not using Key Vault)
197
-
- **password**: Host credentials (if not using SSH keys)
251
+
1. SSH Key Authentication: If connecting via SSH key, place the private key inside `WORKSPACE/SYSTEM/<DIRECTORY>` and name the file "ssh_key.ppk".
252
+
1. Username and Password Authentication: If connecting using a username and password, create a password file by running the following command. It takes the username from hosts.yaml file.
0 commit comments