Samouczek: wdrażanie platformy SAP Deployment Automation Framework na potrzeby skali przedsiębiorstwa

W tym samouczku przedstawiono sposób wykonywania wdrożeń przy użyciu programu SAP Deployment Automation Framework. W tym przykładzie użyto usługi Azure Cloud Shell do wdrożenia infrastruktury płaszczyzny sterowania. Maszyna wirtualna wdrażająca tworzy pozostałą infrastrukturę i konfiguracje oprogramowania SAP HANA.

Ten samouczek obejmuje wykonanie następujących zadań:

  • Wdróż płaszczyznę sterowania (infrastruktura i biblioteka wdrażania).
  • Wdróż strefę obciążenia (poziomą i systemową).
  • Pobieranie/przekazywanie rachunku za materiały.
  • Konfigurowanie standardowych i specyficznych dla systemu operacyjnego SAP ustawień systemu operacyjnego.
  • Zainstaluj bazę danych HANA.
  • Zainstaluj serwer usług SAP Central Services (SCS).
  • Załaduj bazę danych HANA.
  • Zainstaluj podstawowy serwer aplikacji.

Istnieją trzy główne kroki wdrażania oprogramowania SAP na platformie Azure przy użyciu struktury automatyzacji:

  1. Przygotuj region. Składniki są wdrażane w celu obsługi platformy automatyzacji SAP w określonym regionie świadczenia usługi Azure. W tym kroku wykonasz następujące czynności:

    1. Utwórz środowisko wdrażania.
    2. Utwórz magazyn udostępniony dla plików stanu programu Terraform.
    3. Utwórz magazyn udostępniony dla nośnika instalacyjnego SAP.
  2. Przygotuj strefę obciążenia. Wdrażasz składniki strefy obciążenia, takie jak sieć wirtualna i magazyny kluczy.

  3. Wdróż system. Należy wdrożyć infrastrukturę dla systemu SAP.

W procesie automatyzacji wdrażania istnieje kilka przepływów pracy. Ten samouczek koncentruje się na jednym przepływie pracy w celu ułatwienia wdrażania. Ten przepływ pracy, autonomiczne środowisko SAP S4 HANA, można wdrożyć przy użyciu powłoki Bash. W tym samouczku opisano ogólną hierarchię i różne fazy wdrożenia.

Omówienie środowiska

Struktura SAP Deployment Automation Framework ma dwa główne składniki:

  • Infrastruktura wdrażania (płaszczyzna sterowania)
  • Infrastruktura SAP (obciążenie SAP)

Na poniższym diagramie przedstawiono zależność między płaszczyzną sterowania a płaszczyzną aplikacji.

Diagram that shows the DevOps tutorial infrastructure design.

Platforma używa narzędzia Terraform do wdrażania infrastruktury i rozwiązania Ansible na potrzeby konfiguracji systemu operacyjnego i aplikacji. Na poniższym diagramie przedstawiono logiczne rozdzielenie płaszczyzny sterowania i strefy obciążenia.

Diagram that shows the SAP Deployment Automation Framework environment.

Strefa zarządzania

Strefa zarządzania zawiera infrastrukturę płaszczyzny sterowania, z której wdrażane są inne środowiska. Po wdrożeniu strefy zarządzania rzadko, jeśli kiedykolwiek, trzeba ponownie wdrożyć.

Diagram that shows the control plane.

Moduł wdrażania to aparat wykonywania platformy automatyzacji SAP. Ta wstępnie skonfigurowana maszyna wirtualna jest używana do wykonywania poleceń programu Terraform i rozwiązania Ansible.

Biblioteka SAP udostępnia trwały magazyn plików stanu programu Terraform i pobranego nośnika instalacyjnego SAP dla płaszczyzny sterowania.

Narzędzie wdrażania i bibliotekę można skonfigurować w pliku zmiennej programu Terraform .tfvars . Aby uzyskać więcej informacji, zobacz Konfigurowanie płaszczyzny sterowania.

Strefa obciążenia

Aplikacja SAP zwykle ma wiele warstw wdrażania. Na przykład możesz mieć warstwy programowania, kontroli jakości i produkcji. Struktura SAP Deployment Automation Framework wywołuje te warstwy obciążeń.

Diagram that shows the workload zone.

Strefa obciążenia SAP zawiera składniki sieciowe i udostępnione dla maszyn wirtualnych SAP. Te składniki obejmują tabele tras, sieciowe grupy zabezpieczeń i sieci wirtualne. Poziom zapewnia możliwość podzielenia wdrożeń na różne środowiska. Aby uzyskać więcej informacji, zobacz Konfigurowanie strefy obciążenia.

Wdrożenie systemu składa się z maszyn wirtualnych do uruchamiania aplikacji SAP, w tym warstw internetowych, aplikacji i bazy danych. Aby uzyskać więcej informacji, zobacz Konfigurowanie systemu SAP.

Wymagania wstępne

Repozytorium SAP Deployment Automation Framework jest dostępne w witrynie GitHub.

Musisz wdrożyć usługę Azure Bastion lub użyć klienta protokołu Secure Shell (SSH), aby nawiązać połączenie z modułem wdrażania. Użyj dowolnego klienta SSH, z którym czujesz się komfortowo.

Przeglądanie limitu przydziału subskrypcji platformy Azure

Upewnij się, że subskrypcja platformy Azure ma wystarczającą liczbę rdzeni dla jednostek SKU rodziny DdSV4 i EdsV4 w wybranym regionie. Około 50 rdzeni dostępnych dla każdej rodziny maszyn wirtualnych powinno wystarczyć.

Konto użytkownika S-User na potrzeby pobierania oprogramowania SAP

Do pobrania oprogramowania SAP wymagane jest prawidłowe konto użytkownika SAP (sap-user lub S-User) z uprawnieniami pobierania oprogramowania.

Konfigurowanie usługi Cloud Shell

  1. Przejdź do usługi Azure Cloud Shell.

  2. Zaloguj się do swojego konta platformy Azure.

    az login
    

    Uwierzytelnianie logowania. Nie zamykaj okna, dopóki nie zostanie wyświetlony monit.

  3. Zweryfikuj aktywną subskrypcję i zarejestruj swój identyfikator subskrypcji:

    az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=table
    

    Lub:

    az account list --output=table | grep True
    
  4. W razie potrzeby zmień aktywną subskrypcję.

    az account set --subscription <Subscription ID>
    

    Sprawdź, czy aktywna subskrypcja została zmieniona.

    az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=table
    
  5. Opcjonalnie usuń wszystkie artefakty wdrożenia. Użyj tego polecenia, jeśli chcesz usunąć wszystkie pozostałości poprzednich artefaktów wdrożenia.

    
    cd ~
    
    rm -rf Azure_SAP_Automated_Deployment .sap_deployment_automation .terraform.d
    
  6. Utwórz folder wdrożenia i sklonuj repozytorium.

    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. Opcjonalnie zweryfikuj wersje programu Terraform i interfejsu wiersza polecenia platformy Azure dostępne w wystąpieniu usługi Cloud Shell.

    ./sap-automation/deploy/scripts/helpers/check_workstation.sh
    

    Aby uruchomić platformę automatyzacji, zaktualizuj do następujących wersji:

Tworzenie jednostki usługi

Platforma wdrażania automatyzacji sap używa jednostek usługi do wdrożenia. Utwórz jednostkę usługi dla wdrożenia płaszczyzny sterowania. Upewnij się, że używasz konta z uprawnieniami do tworzenia jednostek usługi.

Po wybraniu nazwy jednostki usługi upewnij się, że nazwa jest unikatowa w dzierżawie platformy Azure.

  1. Nadaj jednostce usługi uprawnienia Współautor i Dostęp użytkowników Administracja istrator.

    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"
    

    Przejrzyj dane wyjściowe. Na przykład:

    {
        "appId": "<AppId>",
        "displayName": "<environment>-Deployment-Account ",
        "name": "<AppId>",
        "password": "<AppSecret>",
        "tenant": "<TenantId>"
    }
    
  2. Skopiuj szczegóły danych wyjściowych. Pamiętaj, aby zapisać wartości dla appId, passwordi Tenant.

    Dane wyjściowe są mapowe na następujące parametry. Te parametry są używane w kolejnych krokach z poleceniami automatyzacji.

    Nazwa danych wejściowych parametrów Nazwa danych wyjściowych
    spn_id appId
    spn_secret password
    tenant_id tenant
  3. Opcjonalnie przypisz rolę Administracja istratora dostępu użytkowników do jednostki usługi.

    export appId="<appId>"
    
    az role assignment create --assignee ${appId}   \
      --role "User Access Administrator"            \
      --scope /subscriptions/${ARM_SUBSCRIPTION_ID}
    

Ważne

Jeśli nie przypiszesz roli Administracja istratora dostępu użytkowników do jednostki usługi, nie możesz przypisać uprawnień przy użyciu automatyzacji.

Konfigurowanie poświadczeń aplikacji internetowej płaszczyzny sterowania

W ramach płaszczyzny sterowania platformy automatyzacji SAP można opcjonalnie utworzyć interaktywną aplikację internetową, która ułatwia tworzenie wymaganych plików konfiguracji.

Screenshot that shows the web app front page.

Tworzenie rejestracji aplikacji

Jeśli chcesz użyć aplikacji internetowej, musisz najpierw utworzyć rejestrację aplikacji na potrzeby uwierzytelniania. Otwórz usługę Cloud Shell i uruchom następujące polecenia:

W razie potrzeby zastąp ciąg LAB swoim środowiskiem.

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}"

Uwaga

Upewnij się, że zalogowano się przy użyciu konta użytkownika z wymaganymi uprawnieniami do tworzenia rejestracji aplikacji. Aby uzyskać więcej informacji na temat rejestracji aplikacji, zobacz Tworzenie rejestracji aplikacji.

Skopiuj szczegóły danych wyjściowych. Pamiętaj, aby zapisać wartości dla App registration ID i App registration password.

Dane wyjściowe są mapowe na następujące parametry. Te parametry są używane w kolejnych krokach z poleceniami automatyzacji.

Nazwa danych wejściowych parametrów Nazwa danych wyjściowych
app_registration_app_id App registration ID
webapp_client_secret App registration password

Wyświetlanie plików konfiguracji

  1. Otwórz program Visual Studio Code z poziomu usługi Cloud Shell.

    cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
    code .
    
  2. WORKSPACES Rozwiń katalog. Istnieją sześć podfolderów: CONFIGURATION, , DEPLOYER, LIBRARYLANDSCAPE, SYSTEM, i BOMS. Rozwiń każdy z tych folderów, aby znaleźć pliki konfiguracji wdrożenia regionalnego.

  3. Znajdź pliki zmiennych terraform w odpowiednim podfolderze. Na przykład plik zmiennej DEPLOYER Terraform może wyglądać następująco:

    # 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
    
    

    Zanotuj lokalizacje plików zmiennych programu Terraform na potrzeby przyszłych edycji podczas wdrażania.

  4. Znajdź pliki zmiennych programu Terraform dla biblioteki SAP w odpowiednim podfolderze. Na przykład plik zmiennej LIBRARY Terraform może wyglądać następująco:

    # 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
    

    Zanotuj lokalizacje plików zmiennych programu Terraform na potrzeby przyszłych edycji podczas wdrażania.

Ważne

Upewnij się, że dns_label wystąpienie usługi Azure Prywatna strefa DNS jest zgodne z twoim wystąpieniem.

Wdrażanie płaszczyzny sterowania

Użyj skryptu deploy_controlplane.sh , aby wdrożyć narzędzie wdrażania i bibliotekę. Te elementy wdrażania składają się na płaszczyznę sterowania dla wybranego obszaru automatyzacji.

Wdrożenie przechodzi przez cykle wdrażania infrastruktury, odświeżania stanu i przekazywania plików stanu programu Terraform do konta magazynu biblioteki. Wszystkie te kroki są pakowane w jeden skrypt wdrażania. Skrypt wymaga lokalizacji pliku konfiguracji dla narzędzia wdrażania i biblioteki oraz niektórych innych parametrów.

Na przykład wybierz pozycję Europa Zachodnia jako lokalizację wdrożenia z nazwą SECEczteroznakową , jak opisano wcześniej. Przykładowy plik LAB-SECE-DEP05-INFRASTRUCTURE.tfvars konfiguracji narzędzia wdrażania znajduje się w folderze ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/LAB-SECE-DEP05-INFRASTRUCTURE .

Przykładowy plik LAB-SECE-SAP_LIBRARY.tfvars konfiguracji biblioteki SAP znajduje się w folderze ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/LAB-SECE-SAP_LIBRARY .

  1. Ustaw zmienne środowiskowe dla jednostki usługi:

    
    export ARM_SUBSCRIPTION_ID="<subscriptionId>"
    export       ARM_CLIENT_ID="<appId>"
    export   ARM_CLIENT_SECRET="<password>"
    export       ARM_TENANT_ID="<tenantId>"
    
    

    Jeśli uruchamiasz skrypt ze stacji roboczej, która nie jest częścią sieci wdrażania lub z usługi Cloud Shell, możesz użyć następującego polecenia, aby ustawić zmienną środowiskową, aby umożliwić łączność z adresu IP:

    export TF_VAR_Agent_IP=<your-public-ip-address>
    

    Jeśli wdrażasz aplikację internetową konfiguracji, musisz również ustawić następujące zmienne środowiskowe:

    
    export TF_VAR_app_registration_app_id=<appRegistrationId>
    export    TF_VAR_webapp_client_secret=<appRegistrationPassword>
    export                  TF_use_webapp=true
    
  2. Utwórz moduł wdrażania i bibliotekę SAP i dodaj szczegóły jednostki usługi do magazynu kluczy wdrażania przy użyciu tego skryptu:

    
    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}"
    
    

    Jeśli wystąpią problemy z uwierzytelnianiem, uruchom polecenie az logout , aby wylogować się i wyczyścić element token-cache. Następnie uruchom polecenie az login , aby ponownie uwierzytelnić.

    Poczekaj, aż platforma automatyzacji uruchomi operacje plan programu Terraform i apply.

    Wdrożenie narzędzia wdrażania może trwać od około 15 do 20 minut.

    Należy zanotować niektóre wartości dla nadchodzących kroków. Wyszukaj ten blok tekstowy w danych wyjściowych:

    #########################################################################################
    #                                                                                       #
    #  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. Przejdź do portalu Azure Portal.

    Wybierz pozycję Grupy zasobów. Wyszukaj nowe grupy zasobów dla infrastruktury i biblioteki wdrażania. Możesz na przykład zobaczyć LAB-[region]-DEP05-INFRASTRUCTURE wartości i LAB-[region]-SAP_LIBRARY.

    Zawartość grupy zasobów narzędzia wdrażania i biblioteki SAP jest wyświetlana tutaj.

    Screenshot that shows deployer resources.

    Screenshot that shows library resources.

    Plik stanu narzędzia Terraform jest teraz umieszczany na koncie magazynu, którego nazwa zawiera tfstate. Konto magazynu ma kontener o nazwie tfstate z plikami stanu wdrażania i biblioteki. Zawartość kontenera po pomyślnym wdrożeniu tfstate płaszczyzny sterowania jest wyświetlana tutaj.

    Screenshot that shows the control plane Terraform state files.

Typowe problemy i rozwiązania

Oto kilka wskazówek dotyczących rozwiązywania problemów:

  • Jeśli wystąpi następujący błąd podczas tworzenia modułu wdrażania, upewnij się, że jesteś w WORKSPACES katalogu podczas uruchamiania skryptu:

    Incorrect parameter file.
    The file must contain the environment attribute!!
    
  • Następujący błąd jest przejściowy. Uruchom ponownie to samo polecenie: deploy_controlplane.sh.

    Error: file provisioner error
    ..
    timeout - last error: dial tcp
    
  • Jeśli masz problemy z uwierzytelnianiem bezpośrednio po uruchomieniu skryptu deploy_controlplane.sh, uruchom następujące polecenie:

    az logout
    
    az login
    

Połączenie do maszyny wirtualnej wdrażającej

Po wdrożeniu płaszczyzny sterowania stan narzędzia Terraform jest przechowywany przy użyciu zdalnego zaplecza azurerm. Wszystkie wpisy tajne służące do nawiązywania połączenia z maszyną wirtualną dostawcy wdrażania są dostępne w magazynie kluczy w grupie zasobów dostawcy wdrażania.

Aby nawiązać połączenie z maszyną wirtualną wdrażania:

  1. Zaloguj się w witrynie Azure Portal.

  2. Wybierz lub wyszukaj magazyny kluczy.

  3. Na stronie Magazyn kluczy znajdź magazyn kluczy wdrażania. Nazwa zaczyna się od LAB[REGION]DEP05user. W razie potrzeby przefiltruj według grupy zasobów lub lokalizacji.

  4. W sekcji Ustawienia w okienku po lewej stronie wybierz pozycję Wpisy tajne.

  5. Znajdź i wybierz wpis tajny zawierający klucz sshkey. Może to wyglądać następująco: LAB-[REGION]-DEP05-sshkey.

  6. Na stronie wpisu tajnego wybierz bieżącą wersję. Następnie skopiuj wartość wpisu tajnego.

  7. Otwórz edytor zwykłego tekstu. Skopiuj wartość wpisu tajnego.

  8. Zapisz plik, w którym zachowasz klucze SSH. Użyj na przykład nazwy C:\\Users\\<your-username>\\.ssh.

  9. Zapisz plik. Jeśli zostanie wyświetlony monit o zapisanie jako typ, wybierz pozycję Wszystkie pliki , jeśli protokół SSH nie jest opcją. Użyj na przykład nazwy deployer.ssh.

  10. Połączenie do maszyny wirtualnej wdrażania za pośrednictwem dowolnego klienta SSH, takiego jak Visual Studio Code. Użyj zanotowanego wcześniej publicznego adresu IP i pobranego klucza SSH. Aby uzyskać instrukcje dotyczące nawiązywania połączenia z modułem wdrażania przy użyciu programu Visual Studio Code, zobacz Połączenie do narzędzia wdrażania przy użyciu programu Visual Studio Code. Jeśli używasz programu PuTTY, najpierw przekonwertuj plik klucza SSH przy użyciu programu PuTTYGen.

Uwaga

Domyślna nazwa użytkownika to azureadm.

Upewnij się, że plik używany do zapisania klucza SSH może zapisać plik przy użyciu poprawnego formatu, czyli bez znaków powrotu karetki (CR). Użyj programu Visual Studio Code lub Notatnik++.

Po nawiązaniu połączenia z maszyną wirtualną wdrażającego możesz pobrać oprogramowanie SAP przy użyciu pakietu Bill of Materials (BOM).

Połączenie do maszyny wirtualnej wdrażania, gdy nie używasz publicznego adresu IP

W przypadku wdrożeń bez łączności z publicznym adresem IP bezpośrednia łączność przez Internet nie jest dozwolona. W takich przypadkach możesz użyć serwera przesiadkowego usługi Azure Bastion lub wykonać następny krok z komputera, który ma łączność z siecią wirtualną platformy Azure.

W poniższym przykładzie użyto usługi Azure Bastion.

Aby nawiązać połączenie z modułem wdrażania:

  1. Zaloguj się w witrynie Azure Portal.

  2. Przejdź do grupy zasobów zawierającej maszynę wirtualną wdrażającą.

  3. Połączenie do maszyny wirtualnej przy użyciu usługi Azure Bastion.

  4. Domyślna nazwa użytkownika to azureadm.

  5. Wybierz pozycję Klucz prywatny SSH z usługi Azure Key Vault.

  6. Wybierz subskrypcję zawierającą płaszczyznę sterowania.

  7. Wybierz magazyn kluczy wdrażania.

  8. Z listy wpisów tajnych wybierz wpis tajny kończący się ciągiem -sshkey.

  9. Nawiąż połączenie z maszyną wirtualną.

Pozostałe zadania muszą być wykonywane na wdrożeniu.

Zabezpieczanie płaszczyzny sterowania

Płaszczyzna sterowania jest najbardziej krytyczną częścią struktury automatyzacji SAP. Ważne jest, aby zabezpieczyć płaszczyznę sterowania. Poniższe kroki ułatwiają zabezpieczenie płaszczyzny sterowania.

Należy zaktualizować plik płaszczyzny tfvars sterowania, aby włączyć prywatne punkty końcowe i zablokować publiczny dostęp do kont magazynu i magazynów kluczy.

  1. Aby skopiować pliki konfiguracji płaszczyzny sterowania do maszyny wirtualnej wdrażającej, możesz użyć skryptu sync_deployer.sh . Zaloguj się do maszyny wirtualnej narzędzia wdrażającego i zaktualizuj następujące polecenie, aby użyć nazwy konta magazynu stanu programu Terraform. Następnie uruchom następujący skrypt:

    
    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
    
    
    

    To polecenie kopiuje tfvars pliki konfiguracji z konta magazynu biblioteki SAP do maszyny wirtualnej wdrażającej.

  2. Zmień pliki konfiguracji płaszczyzny sterowania na:

    
        # 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. Uruchom ponownie wdrożenie, aby zastosować zmiany. Zaktualizuj nazwę konta magazynu i nazwę magazynu kluczy w skrypce.

    
    export ARM_SUBSCRIPTION_ID="<subscriptionId>"
    export       ARM_CLIENT_ID="<appId>"
    export   ARM_CLIENT_SECRET="<password>"
    export       ARM_TENANT_ID="<tenantId>"
    
    
  4. Utwórz program wdrażania i bibliotekę SAP.

    
    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}"
    

Wdrażanie aplikacji internetowej

Aplikację internetową można wdrożyć przy użyciu następującego skryptu:

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 

Zbieranie informacji o strefie obciążenia

  1. Zbierz następujące informacje w edytorze tekstów. Te informacje zostały zebrane na końcu fazy "Wdrażanie płaszczyzny sterowania".

    1. Nazwa konta magazynu plików stanu programu Terraform w grupie zasobów biblioteki:

      • Poniżej powyższego przykładu grupa zasobów to LAB-SECE-SAP_LIBRARY.
      • Nazwa konta magazynu zawiera wartość labsecetfstate.
    2. Nazwa magazynu kluczy w grupie zasobów wdrażania:

      • Poniżej powyższego przykładu grupa zasobów to LAB-SECE-DEP05-INFRASTRUCTURE.
      • Nazwa magazynu kluczy zawiera .LABSECEDEP05user
    3. Publiczny adres IP maszyny wirtualnej wdrażania. Przejdź do grupy zasobów swojego dostawcy, otwórz maszynę wirtualną dostawcy i skopiuj publiczny adres IP.

  2. Musisz zebrać następujące informacje:

    1. Nazwa pliku stanu wdrażania znajduje się w grupie zasobów biblioteki:
      • Wybierz pozycję Biblioteka grupa>zasobów Stan konta>magazynu Kontenery.>tfstate Skopiuj nazwę pliku stanu narzędzia wdrażania.
      • Poniżej powyższego przykładu nazwa obiektu blob to LAB-SECE-DEP05-INFRASTRUCTURE.terraform.tfstate.
  3. W razie potrzeby zarejestruj jednostkę usługi. W tym samouczku ten krok nie jest wymagany.

    Przy pierwszym utworzeniu wystąpienia środowiska należy zarejestrować jednostkę usługi. W tym samouczku płaszczyzna sterowania znajduje się w LAB środowisku, a strefa obciążenia znajduje się również w elemecie LAB. Z tego powodu jednostka usługi musi być zarejestrowana LAB dla środowiska.

    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}"
    

Przygotowywanie wdrożenia strefy obciążenia

Połączenie do maszyny wirtualnej wdrażania, aby wykonać następujące kroki. Teraz znajduje się tam kopia repozytorium.

Wdrażanie strefy obciążenia

Użyj skryptu install_workloadzone , aby wdrożyć strefę obciążenia SAP.

  1. Na maszynie wirtualnej wdrażającej Azure_SAP_Automated_Deployment przejdź do folderu .

    cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/LAB-SECE-SAP04-INFRASTRUCTURE
    
  2. Opcjonalnie otwórz plik konfiguracji strefy obciążenia, a w razie potrzeby zmień nazwę logiczną sieci, aby była zgodna z nazwą sieci.

  3. Rozpocznij wdrażanie strefy obciążenia. Potrzebne są szczegółowe informacje zebrane wcześniej:

    • Nazwa pliku wdrażania tfstate (znalezionego w kontenerze tfstate )
    • tfstate Nazwa konta magazynu
    • Nazwa magazynu kluczy wdrażania

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}"

Wdrożenie strefy obciążenia powinno zostać uruchomione automatycznie.

Poczekaj na zakończenie wdrożenia. Nowa grupa zasobów zostanie wyświetlona w witrynie Azure Portal.

Przygotowanie do wdrożenia infrastruktury systemu SAP

Połączenie do maszyny wirtualnej wdrażania, aby wykonać następujące kroki. Teraz znajduje się tam kopia repozytorium.

Przejdź do WORKSPACES/SYSTEM folderu i skopiuj przykładowe pliki konfiguracji do użycia z repozytorium.

Wdrażanie infrastruktury systemu SAP

Po zakończeniu strefy obciążenia można wdrożyć zasoby infrastruktury systemu SAP. System SAP tworzy maszyny wirtualne i składniki pomocnicze dla aplikacji SAP. Użyj skryptu installer.sh , aby wdrożyć system SAP.

System SAP wdraża:

  • Warstwa bazy danych, która wdraża maszyny wirtualne bazy danych i ich dyski oraz wystąpienie usługi Azure usługa Load Balancer w warstwie Standardowa. W tej warstwie można uruchamiać bazy danych HANA lub bazy danych AnyDB.
  • Warstwa SCS, która wdraża zdefiniowaną przez klienta liczbę maszyn wirtualnych i wystąpienie usługi Azure usługa Load Balancer w warstwie Standardowa.
  • Warstwa aplikacji, która wdraża maszyny wirtualne i ich dyski.
  • Warstwa Dyspozytora sieci Web.

Wdrażanie systemu SAP.


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

Sprawdź, czy grupa zasobów systemowych znajduje się teraz w witrynie Azure Portal.

Pobieranie oprogramowania SAP przy użyciu rachunku materiałów

Platforma automatyzacji udostępnia narzędzia do pobierania oprogramowania z oprogramowania SAP przy użyciu rozwiązania SAP BOM. Oprogramowanie jest pobierane do biblioteki SAP, która działa jako archiwum dla wszystkich multimediów wymaganych do wdrożenia oprogramowania SAP.

Model SAP BOM naśladuje planistę konserwacji sap. Istnieją odpowiednie identyfikatory produktów i zestaw adresów URL pobierania.

Przykładowy wyodrębnienie pliku BOM wygląda następująco:


---
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"

Na potrzeby tej przykładowej konfiguracji grupa zasobów to LAB-SECE-DEP05-INFRASTRUCTURE. Nazwa magazynu kluczy wdrażania zawiera LABSECEDEP05user nazwę. Te informacje służą do konfigurowania wpisów tajnych magazynu kluczy modułu wdrażania.

  1. Połączenie do maszyny wirtualnej wdrażania, aby wykonać następujące kroki. Teraz znajduje się tam kopia repozytorium.

  2. Dodaj wpis tajny z nazwą użytkownika konta użytkownika sap. Zastąp <vaultName> ciąg nazwą magazynu kluczy wdrażania. Zastąp <sap-username> również nazwą użytkownika sap.

    export key_vault=<vaultName>
        sap_username=<sap-username>
    
    az keyvault secret set --name "S-Username" --vault-name $key_vault --value "${sap_username}";
    
  3. Dodaj wpis tajny z hasłem dla konta użytkownika SAP. Zastąp <vaultName> ciąg nazwą magazynu kluczy wdrażania i zastąp <sap-password> ciąg hasłem SAP.

    Uwaga

    Użycie pojedynczych cudzysłowów podczas ustawiania sap_user_password jest ważne. Użycie znaków specjalnych w haśle może w przeciwnym razie spowodować nieprzewidywalne wyniki.

    sap_user_password='<sap-password>'
    
    az keyvault secret set --name "S-Password" --vault-name "${key_vault}" --value="${sap_user_password}";
    
  4. Skonfiguruj plik parametrów SAP na potrzeby procesu pobierania. Następnie pobierz oprogramowanie SAP przy użyciu podręczników rozwiązania Ansible. Uruchom następujące polecenia:

    cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
    mkdir BOMS
    cd BOMS
    
    vi sap-parameters.yaml
    
  5. Zaktualizuj element bom_base_name o nazwie BOM. Zastąp <Deployer KeyVault Name> ciąg nazwą magazynu kluczy platformy Azure dla grupy zasobów wdrażania.

    Plik powinien wyglądać podobnie do następującej przykładowej konfiguracji:

    
    bom_base_name:                 S42022SPS00_v0001ms
    deployer_kv_name:              <vaultName>
    BOM_directory:                 ${HOME}/Azure_SAP_Automated_Deployment/samples/SAP
    
    
  6. Uruchom podręcznik rozwiązania Ansible, aby pobrać oprogramowanie. Jednym ze sposobów uruchamiania podręczników jest użycie menu Narzędzia do pobierania. Uruchom skrypt download_menu.

    ${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/download_menu.sh
    
  7. Wybierz podręczniki do uruchomienia.

    1) BoM Downloader
    3) Quit
    Please select playbook:
    

    Wybierz podręcznik 1) BoM Downloader , aby pobrać oprogramowanie SAP opisane w pliku BOM na konto magazynu. Sprawdź, czy sapbits kontener ma wszystkie nośniki do instalacji.

    Podręcznik można uruchomić przy użyciu menu konfiguracji lub bezpośrednio z poziomu wiersza polecenia.

    
    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
    
    
    

    Jeśli chcesz, możesz również przekazać poświadczenia użytkownika SAP jako parametry.

    
    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
    
    
    

Instalacja aplikacji SAP

Instalacja aplikacji SAP odbywa się za pośrednictwem podręczników rozwiązania Ansible.

Przejdź do folderu wdrożenia systemu.

cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/

Upewnij się, że masz następujące pliki w bieżących folderach: sap-parameters.yaml i L00_host.yaml.

W przypadku autonomicznego systemu SAP S/4HANA istnieje osiem podręczników do uruchomienia w sekwencji. Jednym ze sposobów uruchamiania podręczników jest użycie menu konfiguracji.

Uruchom skrypt configuration_menu.

${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/configuration_menu.sh

Diagram that shows the SAP Deployment Automation Ansible configuration menu.

Wybierz podręczniki do uruchomienia.

Podręcznik: podstawowa konfiguracja systemu operacyjnego

Ten podręcznik wykonuje ogólną konfigurację systemu operacyjnego na wszystkich maszynach, w tym konfigurację repozytoriów oprogramowania, pakietów i usług.

Podręcznik można uruchomić przy użyciu menu konfiguracji lub wiersza polecenia.


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

Podręcznik: konfiguracja systemu operacyjnego specyficznego dla oprogramowania SAP

Ten podręcznik wykonuje konfigurację systemu operacyjnego SAP na wszystkich maszynach. Kroki obejmują tworzenie grup woluminów i systemów plików oraz konfigurację repozytoriów oprogramowania, pakietów i usług.

Podręcznik można uruchomić przy użyciu menu konfiguracji lub wiersza polecenia.


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

Podręcznik: przetwarzanie BOM

Ten podręcznik pobiera oprogramowanie SAP na maszynę wirtualną SCS.

Podręcznik można uruchomić przy użyciu menu konfiguracji lub wiersza polecenia.


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

Podręcznik: instalacja scS

Ten podręcznik instaluje usługi SAP Central Services. W przypadku konfiguracji o wysokiej dostępności podręcznik instaluje również wystąpienie oprogramowania SAP ERS i konfiguruje program Pacemaker.

Podręcznik można uruchomić przy użyciu menu konfiguracji lub wiersza polecenia.


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

Podręcznik: instalacja wystąpienia bazy danych

Ten podręcznik instaluje wystąpienia bazy danych.

Podręcznik można uruchomić przy użyciu menu konfiguracji lub wiersza polecenia.


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

Podręcznik: ładowanie bazy danych

Ten podręcznik wywołuje zadanie ładowania bazy danych z podstawowego serwera aplikacji.

Podręcznik można uruchomić przy użyciu menu konfiguracji lub wiersza polecenia.


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

Podręcznik: konfiguracja wysokiej dostępności bazy danych

Ten podręcznik konfiguruje wysoką dostępność bazy danych. W przypadku platformy HANA wiąże się ona z replikacją systemu HANA i programem Pacemaker dla bazy danych HANA.

Podręcznik można uruchomić przy użyciu menu konfiguracji lub wiersza polecenia.


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

Podręcznik: instalacja podstawowego serwera aplikacji

Ten podręcznik instaluje podstawowy serwer aplikacji. Podręcznik można uruchomić przy użyciu menu konfiguracji lub wiersza polecenia.


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

Podręcznik: instalacje serwera aplikacji

Ten podręcznik instaluje serwery aplikacji. Podręcznik można uruchomić przy użyciu menu konfiguracji lub wiersza polecenia.


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

Podręcznik: instalacje programu Web Dispatcher

Ten podręcznik instaluje narzędzia Web Dispatchers. Podręcznik można uruchomić przy użyciu menu konfiguracji lub wiersza polecenia.

Wdrożono i skonfigurowano autonomiczny system HANA. Jeśli musisz skonfigurować bazę danych SAP HANA o wysokiej dostępności (HA), uruchom podręcznik HANA HA.


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

Czyszczenie instalacji

Ważne jest, aby wyczyścić instalację sap z tego samouczka po zakończeniu pracy. W przeciwnym razie nadal ponosisz koszty związane z zasobami.

Aby usunąć całą wdrożona infrastrukturę SAP, należy wykonać następujące kroki:

  • Usuń zasoby infrastruktury systemu SAP.
  • Usuń wszystkie strefy obciążenia (poziome).
  • Usuń płaszczyznę sterowania.

Uruchom usuwanie zasobów infrastruktury SAP i stref obciążeń z maszyny wirtualnej wdrażającej. Uruchom usunięcie płaszczyzny sterowania z usługi Cloud Shell.

Przed rozpoczęciem zaloguj się do konta platformy Azure. Następnie sprawdź, czy jesteś w odpowiedniej subskrypcji.

Usuwanie infrastruktury SAP

Przejdź do podfolderu LAB-SECE-SAP01-L00 w folderze SYSTEM . Następnie uruchom następujące polecenie:

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

Usuwanie strefy obciążenia SAP

Przejdź do podfolderu LAB-XXXX-SAP01-INFRASTRUCTURE w folderze LANDSCAPE . Następnie uruchom następujące polecenie:


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

Usuwanie płaszczyzny sterowania

Zaloguj się do usługi Cloud Shell.

Przejdź do folderu WORKSPACES.

cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/

Wyeksportuj następujące dwie zmienne środowiskowe:

export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
export ARM_SUBSCRIPTION_ID="<subscriptionId>"

Uruchom następujące polecenie:

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

Sprawdź, czy wszystkie zasoby są czyszczone.

Następny krok