Zelfstudie: SAP Deployment Automation Framework implementeren voor bedrijfsschaal
Deze zelfstudie laat zien hoe u implementaties uitvoert met behulp van SAP Deployment Automation Framework. In dit voorbeeld wordt Azure Cloud Shell gebruikt om de infrastructuur van het besturingsvlak te implementeren. De virtuele machine (VM) van de deployer maakt de resterende infrastructuur en SAP HANA-configuraties.
In deze zelfstudie voert u de volgende taken uit:
- Implementeer het besturingsvlak (implementeerinfrastructuur en -bibliotheek).
- Implementeer de workloadzone (liggend en systeem).
- Download/Upload Bill of Materials.
- Standaard- en SAP-specifieke besturingssysteeminstellingen configureren.
- Installeer de HANA-database.
- Installeer de SCS-server (SAP Central Services).
- Laad de HANA-database.
- Installeer de primaire toepassingsserver.
Er zijn drie belangrijke stappen voor een SAP-implementatie in Azure met het automation-framework:
Bereid de regio voor. U implementeert onderdelen ter ondersteuning van het SAP-automatiseringsframework in een opgegeven Azure-regio. In deze stap gaat u het volgende doen:
- Maak de implementatieomgeving.
- Gedeelde opslag maken voor Terraform-statusbestanden.
- Maak gedeelde opslag voor SAP-installatiemedia.
Bereid de workloadzone voor. U implementeert de onderdelen van de workloadzone, zoals het virtuele netwerk en sleutelkluizen.
Implementeer het systeem. U implementeert de infrastructuur voor het SAP-systeem.
Er zijn verschillende werkstromen in het automatiseringsproces voor implementaties. Deze zelfstudie is gericht op één werkstroom voor een eenvoudige implementatie. U kunt deze werkstroom, de zelfstandige SAP S4 HANA-omgeving, implementeren met behulp van Bash. In deze zelfstudie worden de algemene hiërarchie en verschillende fasen van de implementatie beschreven.
Overzicht van omgeving
SAP Deployment Automation Framework heeft twee hoofdonderdelen:
- Implementatie-infrastructuur (besturingsvlak)
- SAP-infrastructuur (SAP-workload)
In het volgende diagram ziet u de afhankelijkheid tussen het besturingsvlak en het toepassingsvlak.
Het framework maakt gebruik van Terraform voor infrastructuurimplementatie en Ansible voor het besturingssysteem en de toepassingsconfiguratie. In het volgende diagram ziet u de logische scheiding van het besturingsvlak en de workloadzone.
Beheerzone
De beheerzone bevat de besturingsvlakinfrastructuur waaruit andere omgevingen worden geïmplementeerd. Nadat de beheerzone is geïmplementeerd, moet u zelden, indien ooit, opnieuw implementeren.
De implementatie is de uitvoeringsengine van het SAP Automation-framework. Deze vooraf geconfigureerde VM wordt gebruikt voor het uitvoeren van Terraform- en Ansible-opdrachten.
De SAP-bibliotheek biedt de permanente opslag voor de Terraform-statusbestanden en de gedownloade SAP-installatiemedia voor het besturingsvlak.
U configureert de deployer en de bibliotheek in een Terraform-variabelebestand .tfvars
. Zie Het besturingsvlak configureren voor meer informatie.
Werkbelastingszone
Een SAP-toepassing heeft doorgaans meerdere implementatielagen. U hebt bijvoorbeeld ontwikkelings-, kwaliteitsgarantie- en productielagen. SAP Deployment Automation Framework roept deze workloadzones aan.
De SAP-workloadzone bevat de netwerk- en gedeelde onderdelen voor de SAP-VM's. Deze onderdelen omvatten routetabellen, netwerkbeveiligingsgroepen en virtuele netwerken. Het landschap biedt de mogelijkheid om implementaties in verschillende omgevingen te verdelen. Zie De workloadzone configureren voor meer informatie.
De systeemimplementatie bestaat uit de VM's om de SAP-toepassing uit te voeren, inclusief de web-, app- en databaselagen. Zie Het SAP-systeem configureren voor meer informatie.
Vereisten
De SAP Deployment Automation Framework-opslagplaats is beschikbaar op GitHub.
U moet Azure Bastion implementeren of een SSH-client (Secure Shell) gebruiken om verbinding te maken met de implementatie. Gebruik een SSH-client waarmee u zich vertrouwd voelt.
Bekijk het quotum voor het Azure-abonnement
Zorg ervoor dat uw Azure-abonnement voldoende kerncitaat heeft voor DdSV4- en EdsV4-familie-SKU's in de geselecteerde regio. Ongeveer 50 kernen die beschikbaar zijn voor elke VM-serie moeten voldoende zijn.
S-Gebruikersaccount voor SAP-software downloaden
Een geldig SAP-gebruikersaccount (SAP-gebruiker of S-User-account) met bevoegdheden voor softwaredownloads is vereist om de SAP-software te downloaden.
Cloud Shell instellen
Ga naar Azure Cloud Shell.
Meld u aan bij uw Azure-account.
az login
Verifieer uw aanmelding. Sluit het venster niet totdat u hierom wordt gevraagd.
Valideer uw actieve abonnement en noteer uw abonnements-id:
az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=table
Of:
az account list --output=table | grep True
Wijzig indien nodig uw actieve abonnement.
az account set --subscription <Subscription ID>
Controleer of uw actieve abonnement is gewijzigd.
az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=table
Verwijder eventueel alle implementatieartefacten. Gebruik deze opdracht als u alle restanten van eerdere implementatieartefacten wilt verwijderen.
cd ~ rm -rf Azure_SAP_Automated_Deployment .sap_deployment_automation .terraform.d
Maak de implementatiemap en kloon de opslagplaats.
mkdir -p ${HOME}/Azure_SAP_Automated_Deployment; cd $_ git clone https://github.com/Azure/sap-automation-bootstrap.git config git clone https://github.com/Azure/sap-automation.git sap-automation git clone https://github.com/Azure/sap-automation-samples.git samples cp -Rp samples/Terraform/WORKSPACES ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
Valideer desgewenst de versies van Terraform en de Azure CLI die beschikbaar is op uw exemplaar van Cloud Shell.
./sap-automation/deploy/scripts/helpers/check_workstation.sh
Als u het automation-framework wilt uitvoeren, moet u bijwerken naar de volgende versies:
az
versie 2.5.0 of hoger.terraform
versie 1.5 of hoger. Voer indien nodig een upgrade uit met behulp van de Terraform-instructies.
Een service-principal maken
Het SAP Automation-implementatieframework maakt gebruik van service-principals voor implementatie. Maak een service-principal voor de implementatie van uw besturingsvlak. Zorg ervoor dat u een account met machtigingen gebruikt om service-principals te maken.
Wanneer u een naam voor uw service-principal kiest, moet u ervoor zorgen dat de naam uniek is binnen uw Azure-tenant.
Geef de inzender van de service-principal en gebruikerstoegang Beheer machtigingen.
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export control_plane_env_code="LAB" az ad sp create-for-rbac --role="Contributor" \ --scopes="/subscriptions/${ARM_SUBSCRIPTION_ID}" \ --name="${control_plane_env_code}-Deployment-Account"
Controleer de uitvoer. Voorbeeld:
{ "appId": "<AppId>", "displayName": "<environment>-Deployment-Account ", "name": "<AppId>", "password": "<AppSecret>", "tenant": "<TenantId>" }
Kopieer de uitvoerdetails. Zorg ervoor dat u de waarden voor
appId
,password
enTenant
.De uitvoer wordt toegewezen aan de volgende parameters. U gebruikt deze parameters in latere stappen, met automatiseringsopdrachten.
Parameterinvoernaam Uitvoernaam spn_id
appId
spn_secret
password
tenant_id
tenant
Wijs desgewenst de rol Gebruikerstoegang Beheer istrator toe aan de service-principal.
export appId="<appId>" az role assignment create --assignee ${appId} \ --role "User Access Administrator" \ --scope /subscriptions/${ARM_SUBSCRIPTION_ID}
Belangrijk
Als u de rol gebruikerstoegang Beheer istrator niet toewijst aan de service-principal, kunt u geen machtigingen toewijzen met behulp van de automatisering.
De referenties van de webtoepassing voor het besturingsvlak configureren
Als onderdeel van het besturingsvlak van het SAP Automation Framework kunt u desgewenst een interactieve webtoepassing maken die u helpt bij het maken van de vereiste configuratiebestanden.
Een app-registratie maken
Als u de web-app wilt gebruiken, moet u eerst een app-registratie maken voor verificatiedoeleinden. Open Cloud Shell en voer de volgende opdrachten uit:
Vervang LAB indien nodig door uw omgeving.
export env_code="LAB"
echo '[{"resourceAppId":"00000003-0000-0000-c000-000000000000","resourceAccess":[{"id":"e1fe6dd8-ba31-4d61-89e7-88639da4683d","type":"Scope"}]}]' >> manifest.json
export TF_VAR_app_registration_app_id=$(az ad app create \
--display-name ${env_code}-webapp-registration \
--enable-id-token-issuance true \
--sign-in-audience AzureADMyOrg \
--required-resource-access @manifest.json \
--query "appId" --output tsv )
#remove the placeholder manifest.json
rm manifest.json
export TF_VAR_webapp_client_secret=$(az ad app credential reset \
--id $TF_VAR_app_registration_app_id --append \
--query "password" --output tsv )
export TF_use_webapp=true
echo "App registration ID: ${TF_VAR_app_registration_app_id}"
echo "App registration password: ${TF_VAR_webapp_client_secret}"
Notitie
Zorg ervoor dat u bent aangemeld met een gebruikersaccount met de vereiste machtigingen voor het maken van toepassingsregistraties. Zie Een app-registratie maken voor meer informatie over app-registraties.
Kopieer de uitvoerdetails. Zorg ervoor dat u de waarden voor App registration ID
en App registration password
.
De uitvoer wordt toegewezen aan de volgende parameters. U gebruikt deze parameters in latere stappen, met automatiseringsopdrachten.
Parameterinvoernaam | Uitvoernaam |
---|---|
app_registration_app_id |
App registration ID |
webapp_client_secret |
App registration password |
Configuratiebestanden weergeven
Open Visual Studio Code vanuit Cloud Shell.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES code .
Vouw de
WORKSPACES
map uit. Er zijn zes submappen: , , , , enSYSTEM
BOMS
.LIBRARY
LANDSCAPE
DEPLOYER
CONFIGURATION
Vouw elk van deze mappen uit om configuratiebestanden voor regionale implementatie te vinden.Zoek de Terraform-variabelebestanden in de juiste submap. Het terraform-variabelebestand kan er bijvoorbeeld
DEPLOYER
als volgt uitzien:# The environment value is a mandatory field, it is used for partitioning the environments, for example, PROD and NP. environment = "LAB" # The location/region value is a mandatory field, it is used to control where the resources are deployed location = "swedencentral" # management_network_address_space is the address space for management virtual network management_network_address_space = "10.10.20.0/25" # management_subnet_address_prefix is the address prefix for the management subnet management_subnet_address_prefix = "10.10.20.64/28" # management_firewall_subnet_address_prefix is the address prefix for the firewall subnet management_firewall_subnet_address_prefix = "10.10.20.0/26" firewall_deployment = true # management_bastion_subnet_address_prefix is the address prefix for the bastion subnet management_bastion_subnet_address_prefix = "10.10.20.128/26" bastion_deployment = true # deployer_enable_public_ip controls if the deployer Virtual machines will have Public IPs deployer_enable_public_ip = true # deployer_count defines how many deployer VMs will be deployed deployer_count = 1 # use_service_endpoint defines that the management subnets have service endpoints enabled use_service_endpoint = true # use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled use_private_endpoint = false # enable_firewall_for_keyvaults_and_storage defines that the storage accounts and key vaults have firewall enabled enable_firewall_for_keyvaults_and_storage = false # public_network_access_enabled controls if storage account and key vaults have public network access enabled public_network_access_enabled = true
Let op de locaties van het Terraform-variabelebestand voor toekomstige bewerkingen tijdens de implementatie.
Zoek de Terraform-variabelebestanden voor de SAP-bibliotheek in de juiste submap. Het terraform-variabelebestand kan er bijvoorbeeld
LIBRARY
als volgt uitzien:# The environment value is a mandatory field, it is used for partitioning the environments, for example, PROD and NP. environment = "LAB" # The location/region value is a mandatory field, it is used to control where the resources are deployed location = "swedencentral" #Defines the DNS suffix for the resources dns_label = "lab.sdaf.contoso.net" # use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled use_private_endpoint = false
Let op de locaties van het Terraform-variabelebestand voor toekomstige bewerkingen tijdens de implementatie.
Belangrijk
Zorg ervoor dat het dns_label
overeenkomt met uw exemplaar van Azure Privé-DNS.
Het besturingsvlak implementeren
Gebruik het deploy_controlplane.sh-script om de deployer en bibliotheek te implementeren. Deze implementatieonderdelen vormen het besturingsvlak voor een gekozen automatiseringsgebied.
De implementatie doorloopt cycli van het implementeren van de infrastructuur, het vernieuwen van de status en het uploaden van de Terraform-statusbestanden naar het bibliotheekopslagaccount. Al deze stappen worden verpakt in één implementatiescript. Het script heeft de locatie van het configuratiebestand nodig voor de implementatie en bibliotheek en een aantal andere parameters.
Kies bijvoorbeeld Europa - west als de implementatielocatie, met de naam SECE
van vier tekens, zoals eerder beschreven. Het configuratiebestand LAB-SECE-DEP05-INFRASTRUCTURE.tfvars
voor de voorbeeld-implementatie bevindt zich in de ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/LAB-SECE-DEP05-INFRASTRUCTURE
map.
Het voorbeeldconfiguratiebestand LAB-SECE-SAP_LIBRARY.tfvars
van de SAP-bibliotheek bevindt zich in de ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/LAB-SECE-SAP_LIBRARY
map.
Stel de omgevingsvariabelen voor de service-principal in:
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appId>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenantId>"
Als u het script uitvoert vanaf een werkstation dat geen deel uitmaakt van het implementatienetwerk of vanuit Cloud Shell, kunt u de volgende opdracht gebruiken om de omgevingsvariabele in te stellen voor het toestaan van connectiviteit vanaf uw IP-adres:
export TF_VAR_Agent_IP=<your-public-ip-address>
Als u de configuratiewebtoepassing implementeert, moet u ook de volgende omgevingsvariabelen instellen:
export TF_VAR_app_registration_app_id=<appRegistrationId> export TF_VAR_webapp_client_secret=<appRegistrationPassword> export TF_use_webapp=true
Maak de implementatie en de SAP-bibliotheek en voeg de details van de service-principal toe aan de implementatiesleutelkluis met behulp van dit script:
export env_code="LAB" export vnet_code="DEP05" export region_code="SECE" export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES" export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" cd $CONFIG_REPO_PATH az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}" deployer_parameter_file="${CONFIG_REPO_PATH}/DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars" library_parameter_file="${CONFIG_REPO_PATH}/LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars" ${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/deploy_controlplane.sh \ --deployer_parameter_file "${deployer_parameter_file}" \ --library_parameter_file "${library_parameter_file}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --spn_id "${ARM_CLIENT_ID}" \ --spn_secret "${ARM_CLIENT_SECRET}" \ --tenant_id "${ARM_TENANT_ID}"
Als u verificatieproblemen ondervindt, voert
az logout
u uit om u af te melden en detoken-cache
. Voer vervolgens uitaz login
om opnieuw te verifiëren.Wacht totdat het Automation-framework de Terraform-bewerkingen
plan
apply
en .De implementatie van de implementatie kan ongeveer 15 tot 20 minuten duren.
U moet enkele waarden noteren voor toekomstige stappen. Zoek naar dit tekstblok in de uitvoer:
######################################################################################### # # # Please save these values: # # - Key Vault: LABSECEDEP05user39B # # - Deployer IP: x.x.x.x # # - Storage Account: labsecetfstate53e # # - Web Application Name: lab-sece-sapdeployment39B # # - App registration Id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # # # #########################################################################################
Ga naar de Azure-portal.
Selecteer Resourcegroepen. Zoek naar nieuwe resourcegroepen voor de implementatieinfrastructuur en -bibliotheek. U kunt bijvoorbeeld zien
LAB-[region]-DEP05-INFRASTRUCTURE
enLAB-[region]-SAP_LIBRARY
.De inhoud van de implementatie- en SAP-bibliotheekresourcegroep wordt hier weergegeven.
Het Terraform-statusbestand wordt nu in het opslagaccount geplaatst waarvan de naam de naam bevat
tfstate
. Het opslagaccount heeft een container met de naamtfstate
de deployer- en bibliotheekstatusbestanden. De inhoud van detfstate
container na een geslaagde implementatie van het besturingsvlak wordt hier weergegeven.
Bekende problemen en oplossingen
Hier volgen enkele tips voor probleemoplossing:
Als u de volgende fout krijgt voor het maken van de implementatiemodule, controleert u of u zich in de
WORKSPACES
map bevindt wanneer u het script uitvoert:Incorrect parameter file. The file must contain the environment attribute!!
De volgende fout is tijdelijk. Voer dezelfde opdracht opnieuw uit.
deploy_controlplane.sh
Error: file provisioner error .. timeout - last error: dial tcp
Als u verificatieproblemen ondervindt direct nadat u het script
deploy_controlplane.sh
hebt uitgevoerd, voert u deze opdracht uit:az logout az login
Verbinding maken naar de implementatie-VM
Nadat het besturingsvlak is geïmplementeerd, wordt de Terraform-status opgeslagen met behulp van de externe back-end azurerm
. Alle geheimen voor het maken van verbinding met de implementatie-VM zijn beschikbaar in een sleutelkluis in de resourcegroep van de implementatie.
Ga als volgende te werk om verbinding te maken met uw implementatie-VM:
Meld u aan bij het Azure-portaal.
Selecteer of zoek naar sleutelkluizen.
Zoek op de pagina Sleutelkluis de sleutelkluis voor de implementatie. De naam begint met
LAB[REGION]DEP05user
. Filter indien nodig op resourcegroep of locatie.Selecteer Geheimen in de sectie Instellingen in het linkerdeelvenster.
Zoek en selecteer het geheim dat sshkey bevat. Het kan er als
LAB-[REGION]-DEP05-sshkey
volgt uitzien.Selecteer op de pagina van het geheim de huidige versie. Kopieer vervolgens de geheime waarde.
Open een editor voor tekst zonder opmaak. Kopieer deze in de geheime waarde.
Sla het bestand op waarin u SSH-sleutels bewaart. Gebruik bijvoorbeeld
C:\\Users\\<your-username>\\.ssh
.Sla het bestand op. Als u wordt gevraagd om Opslaan als te typen, selecteert u Alle bestanden als SSH geen optie is. Gebruik bijvoorbeeld
deployer.ssh
.Verbinding maken via een SSH-client naar de deployer-VM, zoals Visual Studio Code. Gebruik het openbare IP-adres dat u eerder hebt genoteerd en de SSH-sleutel die u hebt gedownload. Zie Verbinding maken met behulp van Visual Studio Code voor instructies over het maken van verbinding met de deployer met behulp van Visual Studio Code. Als u PuTTY gebruikt, converteert u eerst het SSH-sleutelbestand met behulp van PuTTYGen.
Notitie
De standaardgebruikersnaam is azureadm.
Zorg ervoor dat het bestand dat u gebruikt om de SSH-sleutel op te slaan het bestand kan opslaan met de juiste indeling, dat wil gezegd, zonder cr-tekens (regelterugloop). Gebruik Visual Studio Code of Kladblok++.
Nadat u verbinding hebt gemaakt met de implementatie-VM, kunt u de SAP-software downloaden met behulp van de stuklijst (Bill of Materials).
Verbinding maken naar de implementatie-VM wanneer u geen openbaar IP-adres gebruikt
Voor implementaties zonder openbare IP-connectiviteit is directe connectiviteit via internet niet toegestaan. In deze gevallen kunt u een Azure Bastion-jumpbox gebruiken of de volgende stap uitvoeren vanaf een computer die verbinding heeft met het virtuele Azure-netwerk.
In het volgende voorbeeld wordt Azure Bastion gebruikt.
Verbinding maken met de deployer:
Meld u aan bij het Azure-portaal.
Ga naar de resourcegroep die de implementatie-VM bevat.
Verbinding maken naar de virtuele machine met behulp van Azure Bastion.
De standaardgebruikersnaam is azureadm.
Selecteer persoonlijke SSH-sleutel in Azure Key Vault.
Selecteer het abonnement dat het besturingsvlak bevat.
Selecteer de sleutelkluis van de deployer.
Selecteer in de lijst met geheimen het geheim dat eindigt op -sshkey.
Maak verbinding met de VM.
De rest van de taken moet worden uitgevoerd op de deployer.
Het besturingsvlak beveiligen
Het besturingsvlak is het belangrijkste onderdeel van het SAP-automatiseringsframework. Het is belangrijk om het besturingsvlak te beveiligen. Met de volgende stappen kunt u het besturingsvlak beveiligen.
U moet het besturingsvlakbestand tfvars
bijwerken om privé-eindpunten in te schakelen en openbare toegang tot de opslagaccounts en sleutelkluizen te blokkeren.
Als u de configuratiebestanden van het besturingsvlak naar de implementatie-VM wilt kopiëren, kunt u het
sync_deployer.sh
script gebruiken. Meld u aan bij de implementatie-VM en werk de volgende opdracht bij om de naam van uw Terraform-statusopslagaccount te gebruiken. Voer vervolgens het volgende script uit:terraform_state_storage_account=labsecetfstate### cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES ../sap-automation/deploy/scripts/sync_deployer.sh --storageaccountname $terraform_state_storage_account --state_subscription $ARM_SUBSCRIPTION_ID
Met deze opdracht worden de
tfvars
configuratiebestanden van het opslagaccount van de SAP-bibliotheek gekopieerd naar de implementatie-VM.Wijzig de configuratiebestanden voor het besturingsvlak in:
# use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled use_private_endpoint = true # enable_firewall_for_keyvaults_and_storage defines that the storage accounts and key vaults have firewall enabled enable_firewall_for_keyvaults_and_storage = true # public_network_access_enabled controls if storage account and key vaults have public network access enabled public_network_access_enabled = false #if you want to use the webapp use_webapp=true
Voer de implementatie opnieuw uit om de wijzigingen toe te passen. Werk de naam van het opslagaccount en de naam van de sleutelkluis in het script bij.
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appId>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenantId>"
Maak de deployer en de SAP-bibliotheek.
export env_code="LAB" export vnet_code="DEP05" export region_code="SECE" terraform_state_storage_account=labsecetfstate### vault_name="LABSECEDEP05user###" export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES" export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" cd $CONFIG_REPO_PATH deployer_parameter_file="${CONFIG_REPO_PATH}/DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars" library_parameter_file="${CONFIG_REPO_PATH}/LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars" az logout az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}" ${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/deploy_controlplane.sh \ --deployer_parameter_file "${deployer_parameter_file}" \ --library_parameter_file "${library_parameter_file}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --storageaccountname "${terraform_state_storage_account}" \ --vault "${vault_name}"
De webtoepassing implementeren
U kunt de webtoepassing implementeren met behulp van het volgende script:
export env_code="LAB"
export vnet_code="DEP05"
export region_code="SECE"
export webapp_name="<webAppName>"
export app_id="<appRegistrationId>"
export webapp_id="<webAppId>"
export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
cd $DEPLOYMENT_REPO_PATH
cd Webapp/SDAF
dotnet build SDAFWebApp.csproj
dotnet publish SDAFWebApp.csproj --output publish
cd publish
zip -r SDAF.zip .
az webapp deploy --resource-group ${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE --name $webapp_name --src-path SDAF.zip --type zip
az ad app update --id $app_id --web-home-page-url https://$webapp_name.azurewebsites.net --web-redirect-uris https://$webapp_name.azurewebsites.net/ https://$webapp_name.azurewebsites.net/.auth/login/aad/callback
az role assignment create --assignee $webapp_id --role reader --subscription $ARM_SUBSCRIPTION_ID --scope /subscriptions/$ARM_SUBSCRIPTION_ID
az webapp restart --resource-group ${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE --name $webapp_name
Informatie over de werkbelastingzone verzamelen
Verzamel de volgende informatie in een teksteditor. Deze informatie is verzameld aan het einde van de fase 'Het besturingsvlak implementeren'.
De naam van het Terraform-statusbestandsopslagaccount in de bibliotheekresourcegroep:
- Na het voorgaande voorbeeld is
LAB-SECE-SAP_LIBRARY
de resourcegroep. - De naam van het opslagaccount bevat
labsecetfstate
.
- Na het voorgaande voorbeeld is
De naam van de sleutelkluis in de resourcegroep voor de implementatiefunctie:
- Na het voorgaande voorbeeld is
LAB-SECE-DEP05-INFRASTRUCTURE
de resourcegroep. - De naam van de sleutelkluis bevat
LABSECEDEP05user
.
- Na het voorgaande voorbeeld is
Het openbare IP-adres van de implementatie-VM. Ga naar de resourcegroep van uw deployer, open de vm voor de implementatie en kopieer het openbare IP-adres.
U moet de volgende informatie verzamelen:
- De naam van het statusbestand voor de implementatie is te vinden in de bibliotheekresourcegroep:
- Selecteer Opslagaccountcontainers
tfstate
>>van bibliotheekresourcegroep.> Kopieer de naam van het bestand met de implementatiestatus. - Na het voorgaande voorbeeld is
LAB-SECE-DEP05-INFRASTRUCTURE.terraform.tfstate
de naam van de blob.
- Selecteer Opslagaccountcontainers
- De naam van het statusbestand voor de implementatie is te vinden in de bibliotheekresourcegroep:
Registreer indien nodig de service-principal. Voor deze zelfstudie is deze stap niet nodig.
De eerste keer dat een omgeving wordt geïnstantieerd, moet een service-principal worden geregistreerd. In deze zelfstudie bevindt het besturingsvlak zich in de
LAB
omgeving en bevindt de workloadzone zich ook inLAB
. Daarom moet een service-principal worden geregistreerd voor deLAB
omgeving.export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appID>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenant>" export key_vault="<vaultName>" export env_code="LAB" export region_code="SECE" export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"
${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/set_secrets.sh \ --environment "${env_code}" \ --region "${region_code}" \ --vault "${key_vault}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --spn_id "${ARM_CLIENT_ID}" \ --spn_secret "${ARM_CLIENT_SECRET}" \ --tenant_id "${ARM_TENANT_ID}"
De implementatie van de workloadzone voorbereiden
Verbinding maken voor de VM van uw deployer voor de volgende stappen. Er is nu een kopie van de opslagplaats.
De workloadzone implementeren
Gebruik het install_workloadzone-script om de SAP-werkbelastingzone te implementeren.
Ga op de VM van de deployer naar de
Azure_SAP_Automated_Deployment
map.cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/LAB-SECE-SAP04-INFRASTRUCTURE
Open eventueel het configuratiebestand voor de workloadzone en wijzig indien nodig de logische naam van het netwerk zodat deze overeenkomt met de netwerknaam.
Start de implementatie van de workloadzone. De gegevens die u eerder hebt verzameld, zijn hier nodig:
- Naam van het implementatiebestand
tfstate
(gevonden in detfstate
container) - Naam van het
tfstate
opslagaccount - Naam van de sleutelkluis van de deployer
- Naam van het implementatiebestand
export ARM_SUBSCRIPTION_ID="<subscriptionId>"
export ARM_CLIENT_ID="<appId>"
export ARM_CLIENT_SECRET="<password>"
export ARM_TENANT_ID="<tenantId>"
export deployer_env_code="LAB"
export sap_env_code="LAB"
export region_code="SECE"
export deployer_vnet_code="DEP05"
export vnet_code="SAP04"
export tfstate_storage_account="<storageaccountName>"
export key_vault="<vaultName>"
export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"
export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}"
cd "${CONFIG_REPO_PATH}/LANDSCAPE/${sap_env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE"
parameterFile="${sap_env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars"
deployerState="${deployer_env_code}-${region_code}-${deployer_vnet_code}-INFRASTRUCTURE.terraform.tfstate"
$SAP_AUTOMATION_REPO_PATH/deploy/scripts/install_workloadzone.sh \
--parameterfile "${parameterFile}" \
--deployer_environment "${deployer_env_code}" \
--deployer_tfstate_key "${deployerState}" \
--keyvault "${key_vault}" \
--storageaccountname "${tfstate_storage_account}" \
--subscription "${ARM_SUBSCRIPTION_ID}" \
--spn_id "${ARM_CLIENT_ID}" \
--spn_secret "${ARM_CLIENT_SECRET}" \
--tenant_id "${ARM_TENANT_ID}"
De implementatie van de workloadzone wordt automatisch gestart.
Wacht tot de implementatie is voltooid. De nieuwe resourcegroep wordt weergegeven in Azure Portal.
De SAP-systeeminfrastructuur voorbereiden
Verbinding maken voor de VM van uw deployer voor de volgende stappen. Er is nu een kopie van de opslagplaats.
Ga naar de WORKSPACES/SYSTEM
map en kopieer de voorbeeldconfiguratiebestanden die u vanuit de opslagplaats wilt gebruiken.
De SAP-systeeminfrastructuur implementeren
Nadat de workloadzone is voltooid, kunt u de RESOURCES van de SAP-systeeminfrastructuur implementeren. Het SAP-systeem maakt uw VM's en ondersteunende onderdelen voor uw SAP-toepassing. Gebruik het installer.sh script om het SAP-systeem te implementeren.
Het SAP-systeem implementeert:
- De databaselaag, waarmee database-VM's en hun schijven en een Azure Standard Load Balancer-exemplaar worden geïmplementeerd. U kunt HANA-databases of AnyDB-databases uitvoeren in deze laag.
- De SCS-laag, waarmee een door de klant gedefinieerd aantal VM's en een Azure Standard Load Balancer-exemplaar wordt geïmplementeerd.
- De toepassingslaag, waarmee de VM's en hun schijven worden geïmplementeerd.
- De laag Web Dispatcher.
Implementeer het SAP-systeem.
export sap_env_code="LAB"
export region_code="SECE"
export vnet_code="SAP04"
export SID="L00"
export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"
export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
cd ${CONFIG_REPO_PATH}/SYSTEM/${sap_env_code}-${region_code}-${vnet_code}-${SID}
${DEPLOYMENT_REPO_PATH}/deploy/scripts/installer.sh \
--parameterfile "${sap_env_code}-${region_code}-${vnet_code}-${SID}.tfvars" \
--type sap_system
Controleer of de systeemresourcegroep zich nu in Azure Portal bevindt.
SAP-software ophalen met behulp van de Bill of Materials
Het automation-framework biedt u hulpprogramma's voor het downloaden van software uit SAP met behulp van de SAP BOM. De software wordt gedownload naar de SAP-bibliotheek, die fungeert als het archief voor alle media die nodig zijn om SAP te implementeren.
De SAP BOM bootst de SAP-onderhoudsplanner na. Er zijn relevante product-id's en een set download-URL's.
Een voorbeeldextraheren van een STUKLIJST-bestand ziet er als volgt uit:
---
name: 'S41909SPS03_v0010'
target: 'S/4 HANA 1909 SPS 03'
version: 7
product_ids:
dbl: NW_ABAP_DB:S4HANA1909.CORE.HDB.ABAP
scs: NW_ABAP_ASCS:S4HANA1909.CORE.HDB.ABAP
scs_ha: NW_ABAP_ASCS:S4HANA1909.CORE.HDB.ABAPHA
pas: NW_ABAP_CI:S4HANA1909.CORE.HDB.ABAP
pas_ha: NW_ABAP_CI:S4HANA1909.CORE.HDB.ABAPHA
app: NW_DI:S4HANA1909.CORE.HDB.PD
app_ha: NW_DI:S4HANA1909.CORE.HDB.ABAPHA
web: NW_Webdispatcher:NW750.IND.PD
ers: NW_ERS:S4HANA1909.CORE.HDB.ABAP
ers_ha: NW_ERS:S4HANA1909.CORE.HDB.ABAPHA
materials:
dependencies:
- name: HANA_2_00_055_v0005ms
media:
# SAPCAR 7.22
- name: SAPCAR
archive: SAPCAR_1010-70006178.EXE
checksum: dff45f8df953ef09dc560ea2689e53d46a14788d5d184834bb56544d342d7b
filename: SAPCAR
permissions: '0755'
url: https://softwaredownloads.sap.com/file/0020000002208852020
# Kernel
- name: "Kernel Part I ; OS: Linux on x86_64 64bit ; DB: Database independent"
Voor deze voorbeeldconfiguratie is LAB-SECE-DEP05-INFRASTRUCTURE
de resourcegroep . De naam van de sleutelkluis van de deployer bevat LABSECEDEP05user
de naam. U gebruikt deze informatie om de sleutelkluisgeheimen van uw implementatie te configureren.
Verbinding maken voor de VM van uw deployer voor de volgende stappen. Er is nu een kopie van de opslagplaats.
Voeg een geheim toe met de gebruikersnaam voor uw SAP-gebruikersaccount. Vervang door
<vaultName>
de naam van de sleutelkluis van uw deployer. Vervang ook door<sap-username>
uw SAP-gebruikersnaam.export key_vault=<vaultName> sap_username=<sap-username> az keyvault secret set --name "S-Username" --vault-name $key_vault --value "${sap_username}";
Voeg een geheim toe met het wachtwoord voor uw SAP-gebruikersaccount. Vervang door
<vaultName>
de naam van uw implementatiesleutelkluis en vervang dit door<sap-password>
uw SAP-wachtwoord.Notitie
Het gebruik van enkele aanhalingstekens wanneer u instelt
sap_user_password
, is belangrijk. Het gebruik van speciale tekens in het wachtwoord kan anders onvoorspelbare resultaten veroorzaken.sap_user_password='<sap-password>' az keyvault secret set --name "S-Password" --vault-name "${key_vault}" --value="${sap_user_password}";
Configureer het SAP-parametersbestand voor het downloadproces. Download vervolgens de SAP-software met behulp van Ansible-playbooks. Voer de volgende opdrachten uit:
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES mkdir BOMS cd BOMS vi sap-parameters.yaml
Werk de
bom_base_name
naam bij met de naam BOM. Vervang door<Deployer KeyVault Name>
de naam van de Azure-sleutelkluis voor de resourcegroep voor de deployer.Uw bestand moet er ongeveer uitzien als in de volgende voorbeeldconfiguratie:
bom_base_name: S42022SPS00_v0001ms deployer_kv_name: <vaultName> BOM_directory: ${HOME}/Azure_SAP_Automated_Deployment/samples/SAP
Voer het Ansible-playbook uit om de software te downloaden. Een manier waarop u de playbooks kunt uitvoeren, is door het downloadmenu te gebruiken. Voer het
download_menu
-script uit.${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/download_menu.sh
Selecteer welke playbooks u wilt uitvoeren.
1) BoM Downloader 3) Quit Please select playbook:
Selecteer het playbook
1) BoM Downloader
om de SAP-software te downloaden die in het BOM-bestand wordt beschreven in het opslagaccount. Controleer of desapbits
container al uw media bevat voor installatie.U kunt het playbook uitvoeren met behulp van het configuratiemenu of rechtstreeks vanaf de opdrachtregel.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/BOMS/ export ANSIBLE_PRIVATE_KEY_FILE=sshkey playbook_options=( --inventory-file="${sap_sid}_hosts.yaml" --private-key=${ANSIBLE_PRIVATE_KEY_FILE} --extra-vars="_workspace_directory=`pwd`" --extra-vars="@sap-parameters.yaml" --extra-vars="bom_processing=true" "${@}" ) # Run the playbook to retrieve the ssh key from the Azure key vault ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml # Run the playbook to perform the Operating System configuration ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_bom_downloader.yaml
Desgewenst kunt u ook de SAP-gebruikersreferenties doorgeven als parameters.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/BOMS/ sap_username=<sap-username> sap_user_password='<sap-password>' export ANSIBLE_PRIVATE_KEY_FILE=sshkey playbook_options=( --inventory-file="${sap_sid}_hosts.yaml" --private-key=${ANSIBLE_PRIVATE_KEY_FILE} --extra-vars="_workspace_directory=`pwd`" --extra-vars="@sap-parameters.yaml" --extra-vars="s_user=${sap_username}" --extra-vars="s_password=${sap_user_password}" --extra-vars="bom_processing=true" "${@}" ) # Run the playbook to retrieve the ssh key from the Azure key vault ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml # Run the playbook to perform the Operating System configuration ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_bom_downloader.yaml
Installatie van SAP-toepassing
De INSTALLATIE van de SAP-toepassing vindt plaats via Ansible-playbooks.
Ga naar de map voor systeemimplementatie.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
Zorg ervoor dat u de volgende bestanden in de huidige mappen hebt: sap-parameters.yaml
en L00_host.yaml
.
Voor een zelfstandig SAP S/4HANA-systeem zijn er acht playbooks die op volgorde moeten worden uitgevoerd. Een manier waarop u de playbooks kunt uitvoeren, is door het configuratiemenu te gebruiken.
Voer het configuration_menu
-script uit.
${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/configuration_menu.sh
Kies de playbooks die u wilt uitvoeren.
Playbook: Configuratie van basisbesturingssysteem
Dit playbook voert de algemene configuratie van het besturingssysteem uit op alle computers, waaronder de configuratie van softwareopslagplaatsen, pakketten en services.
U kunt het playbook uitvoeren met behulp van het configuratiemenu of de opdrachtregel.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to perform the Operating System configuration
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_01_os_base_config.yaml
Playbook: SAP-specifieke besturingssysteemconfiguratie
Met dit playbook wordt de configuratie-installatie van het SAP-besturingssysteem uitgevoerd op alle computers. De stappen omvatten het maken van volumegroepen en bestandssystemen en configuratie van softwareopslagplaatsen, pakketten en services.
U kunt het playbook uitvoeren met behulp van het configuratiemenu of de opdrachtregel.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to perform the SAP Specific Operating System configuration
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_02_os_sap_specific_config.yaml
Playbook: BOM-verwerking
Met dit playbook wordt de SAP-software gedownload naar de SCS-VM.
U kunt het playbook uitvoeren met behulp van het configuratiemenu of de opdrachtregel.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_03_bom_processing.yaml
Playbook: SCS-installatie
Met dit playbook wordt SAP Central Services geïnstalleerd. Voor maximaal beschikbare configuraties installeert het playbook ook het SAP ERS-exemplaar en configureert Pacemaker.
U kunt het playbook uitvoeren met behulp van het configuratiemenu of de opdrachtregel.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_00_00_sap_scs_install.yaml
Playbook: Installatie van database-exemplaar
Met dit playbook worden de database-exemplaren geïnstalleerd.
U kunt het playbook uitvoeren met behulp van het configuratiemenu of de opdrachtregel.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_04_00_00_db_install.yaml
Playbook: Database laden
Met dit playbook wordt de taak voor het laden van de database aangeroepen vanaf de primaire toepassingsserver.
U kunt het playbook uitvoeren met behulp van het configuratiemenu of de opdrachtregel.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_01_sap_dbload.yaml
Playbook: Installatie van hoge beschikbaarheid van database
Met dit playbook wordt de hoge beschikbaarheid van de database geconfigureerd. Voor HANA omvat het HANA-systeemreplicatie en Pacemaker voor de HANA-database.
U kunt het playbook uitvoeren met behulp van het configuratiemenu of de opdrachtregel.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_04_00_01_db_ha.yaml
Playbook: installatie van primaire toepassingsserver
Met dit playbook wordt de primaire toepassingsserver geïnstalleerd. U kunt het playbook uitvoeren met behulp van het configuratiemenu of de opdrachtregel.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_02_sap_pas_install.yaml
Playbook: Installaties van toepassingsservers
Met dit playbook worden de toepassingsservers geïnstalleerd. U kunt het playbook uitvoeren met behulp van het configuratiemenu of de opdrachtregel.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_02_sap_app_install.yaml
Playbook: Web Dispatcher-installaties
Met dit playbook worden de Web Dispatchers geïnstalleerd. U kunt het playbook uitvoeren met behulp van het configuratiemenu of de opdrachtregel.
U hebt nu een zelfstandig HANA-systeem geïmplementeerd en geconfigureerd. Als u een maximaal beschikbare SAP HANA-database wilt configureren, voert u het HANA HA-playbook uit.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_04_sap_web_install.yaml
De installatie opschonen
Het is belangrijk om uw SAP-installatie op te schonen vanuit deze zelfstudie nadat u klaar bent. Anders blijven er kosten in rekening worden gebracht die betrekking hebben op de resources.
Als u de volledige SAP-infrastructuur wilt verwijderen die u hebt geïmplementeerd, moet u het volgende doen:
- Verwijder de resources van de SAP-systeeminfrastructuur.
- Verwijder alle workloadzones (liggend).
- Verwijder het besturingsvlak.
Voer het verwijderen van uw SAP-infrastructuurresources en workloadzones uit van de implementatie-VM. Voer het verwijderen van het besturingsvlak uit vanuit Cloud Shell.
Meld u aan bij uw Azure-account voordat u begint. Controleer vervolgens of u het juiste abonnement hebt.
De SAP-infrastructuur verwijderen
Ga naar de LAB-SECE-SAP01-L00
submap in de SYSTEM
map. Voer vervolgens deze opdracht uit:
export sap_env_code="LAB"
export region_code="SECE"
export sap_vnet_code="SAP04"
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/${sap_env_code}-${region_code}-${sap_vnet_code}-L00
${DEPLOYMENT_REPO_PATH}/deploy/scripts/remover.sh \
--parameterfile "${sap_env_code}-${region_code}-${sap_vnet_code}-L00.tfvars" \
--type sap_system
De SAP-workloadzone verwijderen
Ga naar de LAB-XXXX-SAP01-INFRASTRUCTURE
submap in de LANDSCAPE
map. Voer vervolgens de volgende opdracht uit:
export sap_env_code="LAB"
export region_code="SECE"
export sap_vnet_code="SAP01"
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/${sap_env_code}-${region_code}-${sap_vnet_code}-INFRASTRUCTURE
${DEPLOYMENT_REPO_PATH}/deploy/scripts/remover.sh \
--parameterfile ${sap_env_code}-${region_code}-${sap_vnet_code}-INFRASTRUCTURE.tfvars \
--type sap_landscape
Het besturingsvlak verwijderen
Meld u aan bij Cloud Shell.
Ga naar de map WORKSPACES
.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/
Exporteer de volgende twee omgevingsvariabelen:
export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
export ARM_SUBSCRIPTION_ID="<subscriptionId>"
Voer de volgende opdracht uit:
export region_code="SECE"
export env_code="LAB"
export vnet_code="DEP05"
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
${DEPLOYMENT_REPO_PATH}/deploy/scripts/remove_controlplane.sh \
--deployer_parameter_file DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars \
--library_parameter_file LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars
Controleer of alle resources zijn opgeschoond.