Skip to content

Commit 757c41b

Browse files
authored
Merge pull request #232816 from KimForss/main
Updates for 3.8
2 parents 2ad536b + e0fa3e9 commit 757c41b

File tree

2 files changed

+50
-41
lines changed

2 files changed

+50
-41
lines changed

articles/sap/automation/get-started.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,9 @@ Get started quickly with the [SAP on Azure Deployment Automation Framework](depl
1919

2020
- An Azure subscription. If you don't have an Azure subscription, you can [create a free account](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
2121
- Ability to [download of the SAP software](software.md) in your Azure environment.
22-
- A [Terraform](https://www.terraform.io/) installation. For more information, also see the [Terraform on Azure documentation](/azure/developer/terraform/).
2322
- An [Azure CLI](/cli/azure/install-azure-cli) installation on your local computer.
23+
- An [Azure PowerShell](/powershell/azure/install-az-ps#update-the-azure-powershell-module) installation on your local computer.
2424
- A Service Principal to use for the control plane deployment
25-
- Optionally, if you want to use PowerShell:
26-
- An [Azure PowerShell](/powershell/azure/install-az-ps#update-the-azure-powershell-module) installation on your local computer.
27-
- The latest PowerShell modules. [Update the PowerShell module](/powershell/azure/install-az-ps#update-the-azure-powershell-module) if needed.
2825

2926
Some of the prerequisites may already be installed in your deployment environment. Both Cloud Shell and the deployer have Terraform and the Azure CLI installed.
3027
## Clone the repository

articles/sap/automation/plan-deployment.md

Lines changed: 49 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,25 @@ Before you design your control plane, consider the following questions:
3232
* How is outbound internet provided for the Virtual Machines?
3333
* Are you going to deploy Azure Firewall for outbound internet connectivity?
3434
* Are private endpoints required for storage accounts and the key vault?
35-
* Are you going to use a custom DNS zone for the Virtual Machines?
35+
* Are you going to use an existing Private DNS zone for the Virtual Machines or will you use the Control Plane for it?
3636
* Are you going to use Azure Bastion for secure remote access to the Virtual Machines?
3737
* Are you going to use the SDAF Configuration Web Application for performing configuration and deployment activities?
3838

39-
### Deployment environments
39+
### Control Plane
4040

41-
If you're supporting multiple workload zones in a region, use a unique identifier for your deployment environment and SAP library. Don't use the same identifier as for the workload zone. For example, use `MGMT` for management purposes.
41+
If you're supporting multiple workload zones in a region, use a unique identifier for your control plane. Don't use the same identifier as for the workload zone. For example, use `MGMT` for management purposes.
4242

43-
The automation framework also supports having the deployment environment and SAP library in separate subscriptions than the workload zones.
43+
The automation framework also supports having the control plane in separate subscriptions than the workload zones.
4444

45-
The deployment environment provides the following services:
45+
The control plane provides the following services:
4646

4747
- Deployment VMs, which do Terraform deployments and Ansible configuration. Acts as Azure DevOps self-hosted agents.
4848
- A key vault, which contains the deployment credentials (service principals) used by Terraform when performing the deployments.
4949
- Azure Firewall for providing outbound internet connectivity.
50-
- Azure Bastion component for providing secure remote access to the deployed Virtual Machines.
51-
- An Azure Web Application for performing configuration and deployment activities.
50+
- Azure Bastion for providing secure remote access to the deployed Virtual Machines.
51+
- An SDAF Configuration Azure Web Application for performing configuration and deployment activities.
52+
53+
The control plane is defined using two configuration files:
5254

5355
The deployment configuration file defines the region, environment name, and virtual network information. For example:
5456

@@ -58,15 +60,21 @@ environment = "MGMT"
5860
location = "westeurope"
5961
6062
management_network_logical_name = "DEP01"
63+
6164
management_network_address_space = "10.170.20.0/24"
6265
management_subnet_address_prefix = "10.170.20.64/28"
66+
6367
firewall_deployment = true
6468
management_firewall_subnet_address_prefix = "10.170.20.0/26"
69+
6570
bastion_deployment = true
6671
management_bastion_subnet_address_prefix = "10.170.20.128/26"
72+
6773
webapp_subnet_address_prefix = "10.170.20.192/27"
6874
deployer_assign_subscription_permissions = true
75+
6976
deployer_count = 2
77+
7078
use_service_endpoint = true
7179
use_private_endpoint = true
7280
enable_firewall_for_keyvaults_and_storage = true
@@ -75,28 +83,26 @@ enable_firewall_for_keyvaults_and_storage = true
7583

7684
### DNS considerations
7785

78-
When planning the DNS configuration for the deployment environment, consider the following questions:
79-
- Is there an existing Private DNS that the solutions needs to integrate with?
80-
- Do you need to use a custom Private DNS zone for the deployment environment?
86+
When planning the DNS configuration for the automation framework, consider the following questions:
87+
- Is there an existing Private DNS that the solutions can integrate with or do you need to use a custom Private DNS zone for the deployment environment?
8188
- Are you going to use predefined IP addresses for the Virtual Machines or let Azure assign them dynamically?
8289

83-
You can integrate with exiting Private DNS Zones by providing the following values in your tfvars files:
90+
You can integrate with an exiting Private DNS Zone by providing the following values in your tfvars files:
8491

8592
```tfvars
8693
management_dns_subscription_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
8794
#management_dns_resourcegroup_name = "RESOURCEGROUPNAME"
8895
use_custom_dns_a_registration = false
8996
```
9097

91-
Without these values a Private DNS Zone will be created in the SAP Library resource group.
98+
Without these values, a Private DNS Zone will be created in the SAP Library resource group.
9299

93100
For more information, see the [in-depth explanation of how to configure the deployer](configure-control-plane.md).
94101

95102

96-
97103
## SAP Library configuration
98104

99-
The SAP library provides storage for SAP installation media, Bill of Material (BOM) files, Terraform state files and optionally a Private DNS Zone. The configuration file defines the region and environment name for the SAP library. For parameter information and examples, see [how to configure the SAP library for automation](configure-control-plane.md).
105+
The SAP library resource group provides storage for SAP installation media, Bill of Material (BOM) files, Terraform state files and optionally the Private DNS Zones. The configuration file defines the region and environment name for the SAP library. For parameter information and examples, see [how to configure the SAP library for automation](configure-control-plane.md).
100106

101107
## Workload zone planning
102108

@@ -106,17 +112,17 @@ The default naming convention for workload zones is `[ENVIRONMENT]-[REGIONCODE]-
106112

107113
The `SAP01` and `SAP02` define the logical names for the Azure virtual networks, these can be used to further partition the environments. If you need two Azure Virtual Networks for the same workload zone, for example, for a multi subscription scenario where you host development environments in two subscriptions, you can use the different logical names for each virtual network. For example, `DEV-WEEU-SAP01-INFRASTRUCTURE` and `DEV-WEEU-SAP02-INFRASTRUCTURE`.
108114

109-
The workload zone provides the following services for the SAP Applications:
115+
The workload zone provides the following shared services for the SAP Applications:
110116

111-
* Azure Virtual Network, for a virtual network, subnets and network security groups.
117+
* Azure Virtual Network, subnets and network security groups.
112118
* Azure Key Vault, for storing the virtual machine and SAP system credentials.
113119
* Azure Storage accounts, for Boot Diagnostics and Cloud Witness.
114120
* Shared storage for the SAP Systems either Azure Files or Azure NetApp Files.
115121

116122
Before you design your workload zone layout, consider the following questions:
117123

118124
* In which regions do you need to deploy workloads?
119-
* How many workload zones does your scenario require (development, quality assurance, production etc)?
125+
* How many workload zones does your scenario require (development, quality assurance, production etc.)?
120126
* Are you deploying into new Virtual networks or are you using existing virtual networks
121127
* How is DNS configured (integrate with existing DNS or deploy a Private DNS zone in the control plane)?
122128
* What storage type do you need for the shared storage (Azure Files NFS, Azure NetApp Files)?
@@ -125,18 +131,24 @@ For more information, see [how to configure a workload zone deployment for autom
125131

126132
### Windows based deployments
127133

128-
When doing Windows based deployments the Virtual Machines in the workload zone's Virtual Network need to be able to communicate with Active Directory in order to join the SAP Virtual Machines to the Active Directory Domain. The provided DNS name needs to be resolvable by the Active Directory.
134+
When doing Windows based deployments the Virtual Machines in the workload zone's Virtual Network need to be able to communicate with Active Directory in order to join the SAP Virtual Machines to the Active Directory Domain. The provided DNS name needs to be resolvable by the Active Directory.
129135

130-
The workload zone key vault must contain the following secrets:
136+
As SDAF won't create accounts in Active Directory the accounts need to be precreated and stored in the workload zone key vault.
131137

132-
| Credential | Name | Example |
133-
| ------------------------------------------------------ | ----------------------------------------- | --------------------------------------- |
134-
| Account that can perform domain join activities | [IDENTIFIER]-ad-svc-account | DEV-WEEU-SAP01-ad-svc-account |
135-
| Password for the account that performs the domain join | [IDENTIFIER]-ad-svc-account-password | DEV-WEEU-SAP01-ad-svc-account-password |
136-
| sidadm account password | [IDENTIFIER]-winsidadm_password_id | DEV-WEEU-SAP01-winsidadm_password_id |
137-
| SID Service account password | [IDENTIFIER]-svc-sidadm-password | DEV-WEEU-SAP01-svc-sidadm-password |
138+
| Credential | Name | Example |
139+
| ------------------------------------------------------ | ----------------------------------------- | ----------------------------------------- |
140+
| Account that can perform domain join activities | [IDENTIFIER]-ad-svc-account | DEV-WEEU-SAP01-ad-svc-account |
141+
| Password for the account that performs the domain join | [IDENTIFIER]-ad-svc-account-password | DEV-WEEU-SAP01-ad-svc-account-password |
142+
| 'sidadm' account password | [IDENTIFIER]-[SID]-win-sidadm_password_id | DEV-WEEU-SAP01-W01-winsidadm_password_id |
143+
| SID Service account password | [IDENTIFIER]-[SID]-svc-sidadm-password | DEV-WEEU-SAP01-W01-svc-sidadm-password |
144+
| SQL Server Service account | [IDENTIFIER]-[SID]-sql-svc-account | DEV-WEEU-SAP01-W01-sql-svc-account |
145+
| SQL Server Service account password | [IDENTIFIER]-[SID]-sql-svc-password | DEV-WEEU-SAP01-W01-sql-svc-password |
146+
| SQL Server Agent Service account | [IDENTIFIER]-[SID]-sql-agent-account | DEV-WEEU-SAP01-W01-sql-agent-account |
147+
| SQL Server Agent Service account password | [IDENTIFIER]-[SID]-sql-agent-password | DEV-WEEU-SAP01-W01-sql-agent-password |
138148

149+
#### DNS settings
139150

151+
For High Availability scenarios a DNS record is needed in the Active Directory for the SAP Central Services cluster. The DNS record needs to be created in the Active Directory DNS zone. The DNS record name is defined as '[sid]>scs[scs instance number]cl1'. For example, `w01scs00cl1` for the cluster for the 'W01' SID using the instance number '00'.
140152
## Credentials management
141153

142154
The automation framework uses [Service Principals](#service-principal-creation) for infrastructure deployment. It's recommended to use different deployment credentials (service principals) for each [workload zone](#workload-zone-planning). The framework stores these credentials in the [deployer's](deployment-framework.md#deployment-components) key vault. Then, the framework retrieves these credentials dynamically during the deployment process.
@@ -145,22 +157,22 @@ The automation framework uses [Service Principals](#service-principal-creation)
145157

146158
The automation framework will use the workload zone key vault for storing both the automation user credentials and the SAP system credentials. The virtual machine credentials are named as follows:
147159

148-
| Credential | Name | Example |
149-
| ---------------------------- | ---------------------------------- | ------------------------------------ |
150-
| Private key | [IDENTIFIER]-sshkey | DEV-WEEU-SAP01-sid-sshkey |
151-
| Public key | [IDENTIFIER]-sshkey-pub | DEV-WEEU-SAP01-sid-sshkey-pub |
152-
| Username | [IDENTIFIER]-username | DEV-WEEU-SAP01-sid-username |
153-
| Password | [IDENTIFIER]-password | DEV-WEEU-SAP01-sid-password |
154-
| sidadm Password | [IDENTIFIER]-[SID]-sap-password | DEV-WEEU-SAP01-X00-sap-password |
155-
| sidadm account password | [IDENTIFIER]-winsidadm_password_id | DEV-WEEU-SAP01-winsidadm_password_id |
156-
| SID Service account password | [IDENTIFIER]-svc-sidadm-password | DEV-WEEU-SAP01-svc-sidadm-password |
160+
| Credential | Name | Example |
161+
| ---------------------------- | ---------------------------------------- | ---------------------------------------- |
162+
| Private key | [IDENTIFIER]-sshkey | DEV-WEEU-SAP01-sid-sshkey |
163+
| Public key | [IDENTIFIER]-sshkey-pub | DEV-WEEU-SAP01-sid-sshkey-pub |
164+
| Username | [IDENTIFIER]-username | DEV-WEEU-SAP01-sid-username |
165+
| Password | [IDENTIFIER]-password | DEV-WEEU-SAP01-sid-password |
166+
| sidadm Password | [IDENTIFIER]-[SID]-sap-password | DEV-WEEU-SAP01-X00-sap-password |
167+
| sidadm account password | [IDENTIFIER]-[SID]-winsidadm_password_id | DEV-WEEU-SAP01-W01-winsidadm_password_id |
168+
| SID Service account password | [IDENTIFIER]-[SID]-svc-sidadm-password | DEV-WEEU-SAP01-W01-svc-sidadm-password |
157169

158170

159171
### Service principal creation
160172

161173
Create your service principal:
162174

163-
1. Sign in to the [Azure CLI](/cli/azure/) with an account that has adequate privileges to create a Service Principal.
175+
1. Sign in to the [Azure CLI](/cli/azure/) with an account that has permissions to create a Service Principal.
164176
1. Create a new Service Principal by running the command `az ad sp create-for-rbac`. Make sure to use a description name for `--name`. For example:
165177
```azurecli
166178
az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" --name="DEV-Deployment-Account"
@@ -187,18 +199,18 @@ In a locked down environment, you might need to assign another permissions to th
187199
188200
#### Required permissions
189201
190-
The following table shows the required permissions for the service principal:
202+
The following table shows the required permissions for the service principals:
191203
192204
> [!div class="mx-tdCol2BreakAll "]
193205
> | Credential | Area | Required permissions |
194206
> | -------------------------------------------- | ----------------------------------- | ---------------------------- |
195207
> | Control Plane SPN | Control Plane subscription | Contributor |
196208
> | Workload Zone SPN | Target subscription | Contributor |
197209
> | Workload Zone SPN | Control plane subscription | Reader |
210+
> | Workload Zone SPN | Control Plane Virtual Network | Network Contributor |
198211
> | Workload Zone SPN | SAP Library tfstate storage account | Storage Account Contributor |
199212
> | Workload Zone SPN | SAP Library sapbits storage account | Reader |
200213
> | Workload Zone SPN | Private DNS Zone | Private DNS Zone Contributor |
201-
> | Workload Zone SPN | Control Plane Virtual Network | Network Contributor |
202214
> | Web Application Identity | Target subscription | Reader |
203215
> | Cluster Virtual Machine Identity | Resource Group | Fencing role |
204216

0 commit comments

Comments
 (0)