Share via


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:

  1. 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:

    1. Maak de implementatieomgeving.
    2. Gedeelde opslag maken voor Terraform-statusbestanden.
    3. Maak gedeelde opslag voor SAP-installatiemedia.
  2. Bereid de workloadzone voor. U implementeert de onderdelen van de workloadzone, zoals het virtuele netwerk en sleutelkluizen.

  3. 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.

Diagram that shows the DevOps tutorial infrastructure design.

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.

Diagram that shows the SAP Deployment Automation Framework environment.

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.

Diagram that shows the control plane.

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.

Diagram that shows the workload zone.

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

  1. Ga naar Azure Cloud Shell.

  2. Meld u aan bij uw Azure-account.

    az login
    

    Verifieer uw aanmelding. Sluit het venster niet totdat u hierom wordt gevraagd.

  3. 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
    
  4. 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
    
  5. 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
    
  6. 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
    
    
  7. 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:

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.

  1. 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>"
    }
    
  2. Kopieer de uitvoerdetails. Zorg ervoor dat u de waarden voor appId, passworden Tenant.

    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
  3. 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.

Screenshot that shows the web app front page.

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

  1. Open Visual Studio Code vanuit Cloud Shell.

    cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
    code .
    
  2. Vouw de WORKSPACES map uit. Er zijn zes submappen: , , , , en SYSTEMBOMS. LIBRARYLANDSCAPEDEPLOYERCONFIGURATION Vouw elk van deze mappen uit om configuratiebestanden voor regionale implementatie te vinden.

  3. 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.

  4. 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 SECEvan 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.

  1. 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
    
  2. 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 de token-cache. Voer vervolgens uit az login om opnieuw te verifiëren.

    Wacht totdat het Automation-framework de Terraform-bewerkingen planapplyen .

    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                       #
    #                                                                                       #
    #########################################################################################
    
  3. Ga naar de Azure-portal.

    Selecteer Resourcegroepen. Zoek naar nieuwe resourcegroepen voor de implementatieinfrastructuur en -bibliotheek. U kunt bijvoorbeeld zien LAB-[region]-DEP05-INFRASTRUCTURE en LAB-[region]-SAP_LIBRARY.

    De inhoud van de implementatie- en SAP-bibliotheekresourcegroep wordt hier weergegeven.

    Screenshot that shows deployer resources.

    Screenshot that shows library resources.

    Het Terraform-statusbestand wordt nu in het opslagaccount geplaatst waarvan de naam de naam bevat tfstate. Het opslagaccount heeft een container met de naam tfstate de deployer- en bibliotheekstatusbestanden. De inhoud van de tfstate container na een geslaagde implementatie van het besturingsvlak wordt hier weergegeven.

    Screenshot that shows the control plane Terraform state files.

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.shhebt 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:

  1. Meld u aan bij het Azure-portaal.

  2. Selecteer of zoek naar sleutelkluizen.

  3. Zoek op de pagina Sleutelkluis de sleutelkluis voor de implementatie. De naam begint met LAB[REGION]DEP05user. Filter indien nodig op resourcegroep of locatie.

  4. Selecteer Geheimen in de sectie Instellingen in het linkerdeelvenster.

  5. Zoek en selecteer het geheim dat sshkey bevat. Het kan er als LAB-[REGION]-DEP05-sshkeyvolgt uitzien.

  6. Selecteer op de pagina van het geheim de huidige versie. Kopieer vervolgens de geheime waarde.

  7. Open een editor voor tekst zonder opmaak. Kopieer deze in de geheime waarde.

  8. Sla het bestand op waarin u SSH-sleutels bewaart. Gebruik bijvoorbeeld C:\\Users\\<your-username>\\.ssh.

  9. 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.

  10. 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:

  1. Meld u aan bij het Azure-portaal.

  2. Ga naar de resourcegroep die de implementatie-VM bevat.

  3. Verbinding maken naar de virtuele machine met behulp van Azure Bastion.

  4. De standaardgebruikersnaam is azureadm.

  5. Selecteer persoonlijke SSH-sleutel in Azure Key Vault.

  6. Selecteer het abonnement dat het besturingsvlak bevat.

  7. Selecteer de sleutelkluis van de deployer.

  8. Selecteer in de lijst met geheimen het geheim dat eindigt op -sshkey.

  9. 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.

  1. 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.

  2. 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 
    
    
  3. 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>"
    
    
  4. 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

  1. Verzamel de volgende informatie in een teksteditor. Deze informatie is verzameld aan het einde van de fase 'Het besturingsvlak implementeren'.

    1. De naam van het Terraform-statusbestandsopslagaccount in de bibliotheekresourcegroep:

      • Na het voorgaande voorbeeld is LAB-SECE-SAP_LIBRARYde resourcegroep.
      • De naam van het opslagaccount bevat labsecetfstate.
    2. De naam van de sleutelkluis in de resourcegroep voor de implementatiefunctie:

      • Na het voorgaande voorbeeld is LAB-SECE-DEP05-INFRASTRUCTUREde resourcegroep.
      • De naam van de sleutelkluis bevat LABSECEDEP05user.
    3. 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.

  2. U moet de volgende informatie verzamelen:

    1. 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.tfstatede naam van de blob.
  3. 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 in LAB. Daarom moet een service-principal worden geregistreerd voor de LAB 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.

  1. 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
    
  2. Open eventueel het configuratiebestand voor de workloadzone en wijzig indien nodig de logische naam van het netwerk zodat deze overeenkomt met de netwerknaam.

  3. Start de implementatie van de workloadzone. De gegevens die u eerder hebt verzameld, zijn hier nodig:

    • Naam van het implementatiebestand tfstate (gevonden in de tfstate container)
    • Naam van het tfstate opslagaccount
    • Naam van de sleutelkluis van de deployer

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-INFRASTRUCTUREde 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.

  1. Verbinding maken voor de VM van uw deployer voor de volgende stappen. Er is nu een kopie van de opslagplaats.

  2. 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}";
    
  3. 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}";
    
  4. 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
    
  5. 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
    
    
  6. 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
    
  7. 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 de sapbits 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

Diagram that shows the SAP Deployment Automation Ansible configuration menu.

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.

Volgende stap