Aracılığıyla paylaş


Öğretici: Kurumsal ölçek için SAP Deployment Automation Framework dağıtma

Bu öğreticide SAP Deployment Automation Framework kullanarak dağıtımları nasıl gerçekleştirebileceğiniz gösterilmektedir. Bu örnek, denetim düzlemi altyapısını dağıtmak için Azure Cloud Shell'i kullanır. Dağıtıcı sanal makinesi (VM), kalan altyapıyı ve SAP HANA yapılandırmalarını oluşturur.

Bu öğreticide, aşağıdaki görevleri gerçekleştireceksiniz:

  • Denetim düzlemini (dağıtıcı altyapısı ve kitaplığı) dağıtın.
  • İş yükü bölgesini (yatay ve sistem) dağıtın.
  • Ürün Reçetesini İndir/Karşıya Yükle.
  • Standart ve SAP'ye özgü işletim sistemi ayarlarını yapılandırın.
  • HANA veritabanını yükleyin.
  • SAP Central Services (SCS) sunucusunu yükleyin.
  • HANA veritabanını yükleyin.
  • Birincil uygulama sunucusunu yükleyin.

Azure'da otomasyon çerçevesiyle sap dağıtımının üç ana adımı vardır:

  1. Bölgeyi hazırlayın. Belirli bir Azure bölgesinde SAP otomasyon çerçevesini desteklemek için bileşenleri dağıtırsınız. Bu adımda şunları gerçekleştirirsiniz:

    1. Dağıtım ortamını oluşturun.
    2. Terraform durum dosyaları için paylaşılan depolama alanı oluşturun.
    3. SAP yükleme medyası için paylaşılan depolama alanı oluşturun.
  2. İş yükü bölgesini hazırlayın. Sanal ağ ve anahtar kasaları gibi iş yükü bölgesi bileşenlerini dağıtırsınız.

  3. Sistemi dağıtın. SAP sistemi için altyapıyı dağıtırsınız.

Dağıtım otomasyonu işleminde birkaç iş akışı vardır. Bu öğretici, dağıtım kolaylığı için tek bir iş akışına odaklanır. Bash kullanarak SAP S4 HANA tek başına ortamı olan bu iş akışını dağıtabilirsiniz. Bu öğreticide, dağıtımın genel hiyerarşisi ve farklı aşamaları açıklanmaktadır.

Ortama genel bakış

SAP Deployment Automation Framework'ün iki ana bileşeni vardır:

  • Dağıtım altyapısı (denetim düzlemi)
  • SAP altyapısı (SAP iş yükü)

Aşağıdaki diyagramda denetim düzlemi ile uygulama düzlemi arasındaki bağımlılık gösterilmektedir.

Diagram that shows the DevOps tutorial infrastructure design.

Çerçevede altyapı dağıtımı için Terraform, işletim sistemi ve uygulama yapılandırması için Ansible kullanılır. Aşağıdaki diyagramda denetim düzlemi ve iş yükü bölgesinin mantıksal ayrımı gösterilmektedir.

Diagram that shows the SAP Deployment Automation Framework environment.

Yönetim bölgesi

Yönetim bölgesi, diğer ortamların dağıtıldığı denetim düzlemi altyapısını içerir. Yönetim bölgesi dağıtıldıktan sonra, nadiren yeniden dağıtmanız gerekir.

Diagram that shows the control plane.

Dağıtıcı, SAP otomasyon çerçevesinin yürütme altyapısıdır. Önceden yapılandırılmış bu VM, Terraform ve Ansible komutlarını yürütmek için kullanılır.

SAP Kitaplığı, Terraform durum dosyaları için kalıcı depolamayı ve denetim düzlemi için indirilen SAP yükleme medyasını sağlar.

Dağıtıcıyı ve kitaplığı terraform .tfvars değişken dosyasında yapılandırabilirsiniz. Daha fazla bilgi için bkz . Denetim düzlemini yapılandırma.

İş yükü bölgesi

SAP uygulamasının genellikle birden çok dağıtım katmanı vardır. Örneğin geliştirme, kalite güvencesi ve üretim katmanlarınız olabilir. SAP Deployment Automation Framework bu katmanları iş yükü bölgelerini çağırır.

Diagram that shows the workload zone.

SAP iş yükü bölgesi, SAP VM'leri için ağ ve paylaşılan bileşenleri içerir. Bu bileşenler yol tablolarını, ağ güvenlik gruplarını ve sanal ağları içerir. Yatay, dağıtımları farklı ortamlara bölme fırsatı sunar. Daha fazla bilgi için bkz . İş yükü bölgesini yapılandırma.

Sistem dağıtımı, web, uygulama ve veritabanı katmanları dahil olmak üzere SAP uygulamasını çalıştırmak için vm'lerden oluşur. Daha fazla bilgi için bkz . SAP sistemini yapılandırma.

Önkoşullar

SAP Deployment Automation Framework deposu GitHub'da kullanılabilir.

Dağıtımcıya bağlanmak için Azure Bastion'ı dağıtmanız veya Secure Shell (SSH) istemcisi kullanmanız gerekir. Rahat hisseddiğiniz herhangi bir SSH istemcisini kullanın.

Azure abonelik kotasını gözden geçirme

Azure aboneliğinizin seçilen bölgedeki DdSV4 ve EdsV4 ailesi SKU'ları için yeterli çekirdek teklife sahip olduğundan emin olun. Her VM ailesi için kullanılabilir yaklaşık 50 çekirdek yeterli olmalıdır.

SAP yazılım indirmesi için S-User hesabı

SAP yazılımını indirmek için yazılım indirme ayrıcalıklarına sahip geçerli bir SAP kullanıcı hesabı (SAP-User veya S-User hesabı) gerekir.

Cloud Shell'i ayarlama

  1. Azure Cloud Shell'e gidin.

  2. Azure hesabınızda oturum açın.

    az login
    

    Oturum açma kimliğinizi doğrulama. İstenmeden pencereyi kapatmayın.

  3. Etkin aboneliğinizi doğrulayın ve abonelik kimliğinizi kaydedin:

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

    Veya:

    az account list --output=table | grep True
    
  4. Gerekirse etkin aboneliğinizi değiştirin.

    az account set --subscription <Subscription ID>
    

    Etkin aboneliğinizin değiştiğini doğrulayın.

    az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=table
    
  5. İsteğe bağlı olarak, tüm dağıtım yapıtlarını kaldırın. Önceki dağıtım yapıtlarının tüm kalıntılarını kaldırmak istediğinizde bu komutu kullanın.

    
    cd ~
    
    rm -rf Azure_SAP_Automated_Deployment .sap_deployment_automation .terraform.d
    
  6. Dağıtım klasörünü oluşturun ve depoyu kopyalayın.

    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. İsteğe bağlı olarak, Cloud Shell örneğinizde bulunan Terraform ve Azure CLI sürümlerini doğrulayın.

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

    Otomasyon çerçevesini çalıştırmak için aşağıdaki sürümlere güncelleştirin:

    • az sürüm 2.5.0 veya üzeri.
    • terraform sürüm 1.5 veya üzeri. Terraform yönergelerini kullanarak gerektiği gibi yükseltin.

Hizmet sorumlusu oluşturma

SAP otomasyonu dağıtım çerçevesi dağıtım için hizmet sorumlularını kullanır. Denetim düzlemi dağıtımınız için bir hizmet sorumlusu oluşturun. Hizmet sorumluları oluşturmak için izinlere sahip bir hesap kullandığınızdan emin olun.

Hizmet sorumlunuz için bir ad seçtiğinizde, adın Azure kiracınızda benzersiz olduğundan emin olun.

  1. Hizmet sorumlusuna Katkıda Bulunan ve Kullanıcı Erişimi Yönetici istrator izinleri verin.

    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"
    

    Çıktıyı gözden geçirin. Örneğin:

    {
        "appId": "<AppId>",
        "displayName": "<environment>-Deployment-Account ",
        "name": "<AppId>",
        "password": "<AppSecret>",
        "tenant": "<TenantId>"
    }
    
  2. Çıkış ayrıntılarını kopyalayın. , passwordve Tenantdeğerlerini appIdkaydettiğinizden emin olun.

    Çıkış aşağıdaki parametrelerle eşler. Bu parametreleri otomasyon komutlarıyla sonraki adımlarda kullanacaksınız.

    Parametre giriş adı Çıkış adı
    spn_id appId
    spn_secret password
    tenant_id tenant
  3. İsteğe bağlı olarak, hizmet sorumlusuna Kullanıcı Erişimi Yönetici istrator rolünü atayın.

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

Önemli

Hizmet sorumlusuna Kullanıcı Erişimi Yönetici istratör rolünü atamazsanız, otomasyonu kullanarak izin atayamazsınız.

Denetim düzlemi web uygulaması kimlik bilgilerini yapılandırma

SAP otomasyon çerçevesi denetim düzleminin bir parçası olarak, isteğe bağlı olarak gerekli yapılandırma dosyalarını oluşturmanıza yardımcı olan etkileşimli bir web uygulaması oluşturabilirsiniz.

Screenshot that shows the web app front page.

Uygulama kaydı oluşturma

Web uygulamasını kullanmak istiyorsanız, önce kimlik doğrulaması amacıyla bir uygulama kaydı oluşturmanız gerekir. Cloud Shell'i açın ve aşağıdaki komutları çalıştırın:

LABORATUVAR'ı gerektiği gibi ortamınızla değiştirin.

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

Not

Uygulama kayıtları oluşturmak için gerekli izinlere sahip bir kullanıcı hesabı kullanarak oturum açtığınızdan emin olun. Uygulama kayıtları hakkında daha fazla bilgi için bkz . Uygulama kaydı oluşturma.

Çıkış ayrıntılarını kopyalayın. ve App registration passworddeğerlerini App registration ID kaydettiğinizden emin olun.

Çıkış aşağıdaki parametrelerle eşler. Bu parametreleri otomasyon komutlarıyla sonraki adımlarda kullanacaksınız.

Parametre giriş adı Çıkış adı
app_registration_app_id App registration ID
webapp_client_secret App registration password

Yapılandırma dosyalarını görüntüleme

  1. Cloud Shell'den Visual Studio Code'yu açın.

    cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
    code .
    
  2. WORKSPACES Dizini genişletin. Altı alt klasör vardır: CONFIGURATION, DEPLOYER, LANDSCAPE, LIBRARY, SYSTEM, ve BOMS. Bölgesel dağıtım yapılandırma dosyalarını bulmak için bu klasörlerin her birini genişletin.

  3. Terraform değişken dosyalarını uygun alt klasörde bulun. Örneğin Terraform DEPLOYER değişken dosyası şu örnekteki gibi görünebilir:

    # 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
    
    

    Dağıtım sırasında gelecekteki düzenlemeler için Terraform değişken dosya konumlarına dikkat edin.

  4. SAP Kitaplığı için Terraform değişken dosyalarını uygun alt klasörde bulun. Örneğin Terraform LIBRARY değişken dosyası şu örnekteki gibi görünebilir:

    # 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
    

    Dağıtım sırasında gelecekteki düzenlemeler için Terraform değişken dosya konumlarına dikkat edin.

Önemli

öğesinin dns_label Azure Özel DNS örneğinizle eşleştiğinden emin olun.

Kontrol düzlemini dağıtma

Dağıtıcıyı ve kitaplığı dağıtmak için deploy_controlplane.sh betiğini kullanın. Bu dağıtım parçaları, seçilen otomasyon alanının kontrol düzlemini oluşturur.

Dağıtım, altyapıyı dağıtma, durumu yenileme ve Terraform durum dosyalarını kitaplık depolama hesabına yükleme döngülerinden geçer. Bu adımların tümü tek bir dağıtım betiğinde paketlenir. Betik, dağıtımcı ve kitaplık için yapılandırma dosyasının konumuna ve diğer bazı parametrelere ihtiyaç duyar.

Örneğin, dağıtım konumu olarak Batı Avrupa'yı seçin ve daha önce açıklandığı gibi dört karakterli adıyla SECE. Örnek dağıtımcı yapılandırma dosyası LAB-SECE-DEP05-INFRASTRUCTURE.tfvars klasördedir ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/LAB-SECE-DEP05-INFRASTRUCTURE .

Örnek SAP Kitaplığı yapılandırma dosyası LAB-SECE-SAP_LIBRARY.tfvars klasördedir ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/LAB-SECE-SAP_LIBRARY .

  1. Hizmet sorumlusu için ortam değişkenlerini ayarlayın:

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

    Betiği dağıtım ağının parçası olmayan bir iş istasyonundan veya Cloud Shell'den çalıştırıyorsanız, IP adresinizden bağlantıya izin vermek üzere ortam değişkenini ayarlamak için aşağıdaki komutu kullanabilirsiniz:

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

    Yapılandırma web uygulamasını dağıtıyorsanız aşağıdaki ortam değişkenlerini de ayarlamanız gerekir:

    
    export TF_VAR_app_registration_app_id=<appRegistrationId>
    export    TF_VAR_webapp_client_secret=<appRegistrationPassword>
    export                  TF_use_webapp=true
    
  2. Bu betiği kullanarak dağıtıcıyı ve SAP Kitaplığı'nı oluşturun ve hizmet sorumlusu ayrıntılarını dağıtım anahtarı kasasına ekleyin:

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

    Kimlik doğrulaması sorunlarıyla karşılaşırsanız oturumunu kapatmak ve işaretini silmek token-cacheiçin komutunu çalıştırınaz logout. Ardından komutunu çalıştırarak az login yeniden kimlik doğrulaması yapın.

    Otomasyon çerçevesinin Terraform işlemlerini plan ve applyçalıştırmasını bekleyin.

    Dağıtıcının dağıtımı yaklaşık 15-20 dakika çalışabilir.

    Yaklaşan adımlar için bazı değerlere dikkat etmeniz gerekir. Çıktıda şu metin bloğunu arayın:

    #########################################################################################
    #                                                                                       #
    #  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. Azure portalına gidin.

    Kaynak grupları’nı seçin. Dağıtımcı altyapısı ve kitaplığı için yeni kaynak grupları arayın. Örneğin, ve LAB-[region]-SAP_LIBRARYifadesini görebilirsinizLAB-[region]-DEP05-INFRASTRUCTURE.

    Dağıtıcının ve SAP Kitaplığı kaynak grubunun içeriği burada gösterilmiştir.

    Screenshot that shows deployer resources.

    Screenshot that shows library resources.

    Terraform durum dosyası artık adında tfstatebulunan depolama hesabına yerleştirilir. Depolama hesabı, dağıtıcı ve kitaplık durum dosyalarıyla adlı tfstate bir kapsayıcıya sahiptir. Başarılı bir denetim düzlemi dağıtımından sonra kapsayıcının tfstate içeriği burada gösterilmiştir.

    Screenshot that shows the control plane Terraform state files.

Yaygın sorunlar ve çözümleri

İşte bazı sorun giderme ipuçları:

  • Dağıtımcı modülü oluşturma işlemi için aşağıdaki hatayı alırsanız, betiği çalıştırdığınızda dizinde WORKSPACES olduğunuzdan emin olun:

    Incorrect parameter file.
    The file must contain the environment attribute!!
    
  • Aşağıdaki hata geçicidir. aynı komutu yeniden çalıştırın. deploy_controlplane.sh

    Error: file provisioner error
    ..
    timeout - last error: dial tcp
    
  • Betiği deploy_controlplane.shçalıştırdıktan hemen sonra kimlik doğrulaması sorunlarınız varsa şu komutu çalıştırın:

    az logout
    
    az login
    

Dağıtan VM'ye Bağlan

Denetim düzlemi dağıtıldıktan sonra Terraform durumu uzak arka uç azurermkullanılarak depolanır. Dağıtımcı VM'sine bağlanmaya yönelik tüm gizli diziler, dağıtanın kaynak grubundaki bir anahtar kasasında kullanılabilir.

Dağıtıcı VM'nize bağlanmak için:

  1. Azure Portal’ında oturum açın.

  2. Anahtar kasalarını seçin veya arayın.

  3. Anahtar kasası sayfasında dağıtan anahtar kasasını bulun. Ad ile LAB[REGION]DEP05userbaşlar. Gerekirse Kaynak grubuna veya Konuma göre filtreleyin.

  4. Sol bölmedeki Ayarlar bölümünde Gizli Diziler'i seçin.

  5. sshkey içeren gizli diziyi bulun ve seçin. gibi LAB-[REGION]-DEP05-sshkeygörünebilir.

  6. Gizli dizinin sayfasında geçerli sürümü seçin. Ardından gizli dizi değerini kopyalayın.

  7. Düz metin düzenleyicisini açın. Gizli dizi değerini kopyalayın.

  8. SSH anahtarlarını tuttuğunuz dosyayı kaydedin. Örneğin, kullanın C:\\Users\\<your-username>\\.ssh.

  9. Dosyayı kaydedin. Kayıt türü istenirse, SSH bir seçenek değilse Tüm dosyalar'ı seçin. Örneğin, kullanın deployer.ssh.

  10. Visual Studio Code gibi herhangi bir SSH istemcisi aracılığıyla dağıtıcı VM'sine Bağlan. Daha önce not ettiğiniz genel IP adresini ve indirdiğiniz SSH anahtarını kullanın. Visual Studio Code kullanarak dağıtıcıya bağlanma yönergeleri için bkz. Visual Studio Code kullanarak dağıtıcıya Bağlan. PuTTY kullanıyorsanız önce PuTTYGen kullanarak SSH anahtar dosyasını dönüştürün.

Not

Varsayılan kullanıcı adı azureadm'dir.

SSH anahtarını kaydetmek için kullandığınız dosyanın, satır başı (CR) karakterleri olmadan doğru biçimi kullanarak dosyayı kaydedebildiğinden emin olun. Visual Studio Code veya Not Defteri++ kullanın.

Dağıtımcı VM'sine bağlandıktan sonra, Ürün Reçetesini (BOM) kullanarak SAP yazılımını indirebilirsiniz.

Genel IP kullanmadığınızda dağıtıcı VM'sine Bağlan

Genel IP bağlantısı olmayan dağıtımlar için İnternet üzerinden doğrudan bağlantıya izin verilmez. Bu gibi durumlarda, Azure Bastion atlama kutusunu kullanabilir veya Azure sanal ağına bağlantısı olan bir bilgisayardan sonraki adımı gerçekleştirebilirsiniz.

Aşağıdaki örnekte Azure Bastion kullanılır.

Dağıtımcıya bağlanmak için:

  1. Azure Portal’ında oturum açın.

  2. Dağıtıcı VM'sini içeren kaynak grubuna gidin.

  3. Azure Bastion kullanarak VM'ye Bağlan.

  4. Varsayılan kullanıcı adı azureadm'dir.

  5. Azure Key Vault'tan SSH Özel Anahtarı'na tıklayın.

  6. Denetim düzlemini içeren aboneliği seçin.

  7. Dağıtımcı anahtar kasasını seçin.

  8. Gizli dizi listesinden -sshkey ile biten gizli diziyi seçin.

  9. VM’ye bağlanın.

Kalan görevler dağıtıcıda yürütülmelidir.

Kontrol düzleminin güvenliğini sağlama

Kontrol düzlemi SAP otomasyon çerçevesinin en kritik parçasıdır. Kontrol düzleminin güvenliğini sağlamak önemlidir. Aşağıdaki adımlar kontrol düzleminin güvenliğini sağlamaya yardımcı olur.

Özel uç noktaları etkinleştirmek ve depolama hesaplarına ve anahtar kasalarına genel erişimi engellemek için denetim düzlemi tfvars dosyasını güncelleştirmeniz gerekir.

  1. Denetim düzlemi yapılandırma dosyalarını dağıtıcı VM'ye kopyalamak için betiği kullanabilirsiniz sync_deployer.sh . Dağıtan VM'de oturum açın ve Terraform durum depolama hesabı adınızı kullanmak için aşağıdaki komutu güncelleştirin. Ardından aşağıdaki betiği çalıştırın:

    
    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
    
    
    

    Bu komut, yapılandırma dosyalarını SAP Kitaplığı'nın depolama hesabından dağıtıcı VM'sine kopyalar tfvars .

  2. Denetim düzleminin yapılandırma dosyalarını şu şekilde değiştirin:

    
        # 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. Değişiklikleri uygulamak için dağıtımı yeniden çalıştırın. Betikteki depolama hesabı adını ve anahtar kasası adını güncelleştirin.

    
    export ARM_SUBSCRIPTION_ID="<subscriptionId>"
    export       ARM_CLIENT_ID="<appId>"
    export   ARM_CLIENT_SECRET="<password>"
    export       ARM_TENANT_ID="<tenantId>"
    
    
  4. Dağıtıcıyı ve SAP Kitaplığı'nı oluşturun.

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

Web uygulamasını dağıtma

Aşağıdaki betiği kullanarak web uygulamasını dağıtabilirsiniz:

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 

İş yükü bölgesi bilgilerini toplama

  1. Bir metin düzenleyicisinde aşağıdaki bilgileri toplayın. Bu bilgiler "Kontrol düzlemini dağıtma" aşamasının sonunda toplanmış.

    1. Kitaplık kaynak grubundaki Terraform durum dosyası depolama hesabının adı:

      • Yukarıdaki örnekten sonra kaynak grubu şeklindedir LAB-SECE-SAP_LIBRARY.
      • Depolama hesabının adı içerir labsecetfstate.
    2. Dağıtımcı kaynak grubundaki anahtar kasasının adı:

      • Yukarıdaki örnekten sonra kaynak grubu şeklindedir LAB-SECE-DEP05-INFRASTRUCTURE.
      • Anahtar kasasının adı içerir LABSECEDEP05user.
    3. Dağıtan VM'nin genel IP adresi. Dağıtımcınızın kaynak grubuna gidin, dağıtıcı VM'sini açın ve genel IP adresini kopyalayın.

  2. Aşağıdaki bilgi parçasını toplamanız gerekir:

    1. Dağıtımcı durum dosyasının adı kitaplık kaynak grubunun altında bulunur:
      • Kitaplık kaynak grubu>Durum depolama hesabı>Kapsayıcıları'yıtfstate> seçin. Dağıtıcı durum dosyasının adını kopyalayın.
      • Yukarıdaki örnekten sonra blobun adı şeklindedir LAB-SECE-DEP05-INFRASTRUCTURE.terraform.tfstate.
  3. Gerekirse hizmet sorumlusunu kaydedin. Bu öğretici için bu adım gerekli değildir.

    Bir ortam ilk kez örneklendiğinde, bir hizmet sorumlusunun kaydedilmesi gerekir. Bu öğreticide, denetim düzlemi ortamda ve LAB iş yükü bölgesi de içindedir LAB. Bu nedenle, ortam için bir hizmet sorumlusu kaydedilmelidir LAB .

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

İş yükü bölgesi dağıtımını hazırlama

Aşağıdaki adımlar için dağıtıcı VM'nize Bağlan. Deponun bir kopyası artık orada.

İş yükü bölgesini dağıtma

SAP iş yükü bölgesini dağıtmak için install_workloadzone betiğini kullanın.

  1. Dağıtan VM'de klasörüne Azure_SAP_Automated_Deployment gidin.

    cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/LAB-SECE-SAP04-INFRASTRUCTURE
    
  2. İsteğe bağlı olarak, iş yükü bölgesi yapılandırma dosyasını açın ve gerekirse ağ mantıksal adını ağ adıyla eşleşecek şekilde değiştirin.

  3. İş yükü bölgesinin dağıtımını başlatın. Daha önce topladığınız ayrıntılar burada gereklidir:

    • Dağıtıcı tfstate dosyasının adı (kapsayıcıda tfstate bulunur)
    • tfstate Depolama hesabının adı
    • Dağıtan anahtar kasasının adı

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

İş yükü bölgesi dağıtımı otomatik olarak başlatılmalıdır.

Dağıtımın bitmesini bekleyin. Yeni kaynak grubu Azure portalında görünür.

SAP sistem altyapısını dağıtmaya hazırlanma

Aşağıdaki adımlar için dağıtıcı VM'nize Bağlan. Deponun bir kopyası artık orada.

Klasörüne WORKSPACES/SYSTEM gidin ve depodan kullanılacak örnek yapılandırma dosyalarını kopyalayın.

SAP sistem altyapısını dağıtma

İş yükü bölgesi tamamlandıktan sonra SAP sistem altyapısı kaynaklarını dağıtabilirsiniz. SAP sistemi, SAP uygulamanız için VM'lerinizi ve destekleyici bileşenleri oluşturur. SAP sistemini dağıtmak için installer.sh betiğini kullanın.

SAP sistemi aşağıdakileri dağıtır:

  • Veritabanı VM'lerini, disklerini ve bir Azure Standart Load Balancer örneğini dağıtan veritabanı katmanı. Bu katmanda HANA veritabanlarını veya AnyDB veritabanlarını çalıştırabilirsiniz.
  • Müşteri tarafından tanımlanan sayıda VM ve Azure Standart Load Balancer örneği dağıtan SCS katmanı.
  • VM'leri ve disklerini dağıtan uygulama katmanı.
  • Web Dağıtıcısı katmanı.

SAP sistemini dağıtın.


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

Sistem kaynak grubunun artık Azure portalında olup olmadığını denetleyin.

Ürün Reçetesini kullanarak SAP yazılımı alma

Otomasyon çerçevesi, SAP BOM'u kullanarak SAP'den yazılım indirmeniz için araçlar sağlar. Yazılım, SAP'yi dağıtmak için gereken tüm medyalar için arşiv görevi gören SAP Kitaplığı'na indirilir.

SAP BOM, SAP bakım planlayıcısını taklit eder. İlgili ürün tanımlayıcıları ve bir dizi indirme URL'si vardır.

Bir BOM dosyasının örnek ayıklaması şu örneğe benzer:


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

Bu örnek yapılandırma için kaynak grubu şeklindedir LAB-SECE-DEP05-INFRASTRUCTURE. Dağıtımcı anahtar kasası adı adında yer alır LABSECEDEP05user . Dağıtımcınızın anahtar kasası gizli dizilerini yapılandırmak için bu bilgileri kullanırsınız.

  1. Aşağıdaki adımlar için dağıtıcı VM'nize Bağlan. Deponun bir kopyası artık orada.

  2. SAP kullanıcı hesabınızın kullanıcı adını içeren bir gizli dizi ekleyin. değerini, dağıtıcı anahtar kasanızın adıyla değiştirin <vaultName> . ayrıca değerini SAP kullanıcı adınız ile değiştirin <sap-username> .

    export key_vault=<vaultName>
        sap_username=<sap-username>
    
    az keyvault secret set --name "S-Username" --vault-name $key_vault --value "${sap_username}";
    
  3. SAP kullanıcı hesabınızın parolasını içeren bir gizli dizi ekleyin. değerini <vaultName> dağıtıcı anahtar kasası adınızla ve değerini SAP parolanızla değiştirin <sap-password> .

    Not

    Ayarlarken sap_user_password tek tırnak işareti kullanılması önemlidir. Parolada özel karakterlerin kullanılması, aksi takdirde öngörülemeyen sonuçlara neden olabilir.

    sap_user_password='<sap-password>'
    
    az keyvault secret set --name "S-Password" --vault-name "${key_vault}" --value="${sap_user_password}";
    
  4. İndirme işlemi için SAP parametreleri dosyanızı yapılandırın. Ardından Ansible playbook'larını kullanarak SAP yazılımını indirin. Aşağıdaki komutları çalıştırın:

    cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
    mkdir BOMS
    cd BOMS
    
    vi sap-parameters.yaml
    
  5. bom_base_name öğesini BOM adıyla güncelleştirin. değerini, dağıtıcı kaynak grubu için Azure anahtar kasasının adıyla değiştirin <Deployer KeyVault Name> .

    Dosyanız aşağıdaki örnek yapılandırmaya benzer olmalıdır:

    
    bom_base_name:                 S42022SPS00_v0001ms
    deployer_kv_name:              <vaultName>
    BOM_directory:                 ${HOME}/Azure_SAP_Automated_Deployment/samples/SAP
    
    
  6. Yazılımı indirmek için Ansible playbook'unu çalıştırın. Playbook'ları çalıştırmanın bir yolu, İndirici menüsünü kullanmaktır. download_menu betiğini çalıştırın.

    ${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/download_menu.sh
    
  7. Çalıştırılacak playbook'ları seçin.

    1) BoM Downloader
    3) Quit
    Please select playbook:
    

    BOM dosyasında açıklanan SAP yazılımını depolama hesabına indirmek için playbook'u 1) BoM Downloader seçin. Kapsayıcıda sapbits yükleme için tüm medyanızın olup olmadığını denetleyin.

    Yapılandırma menüsünü kullanarak veya doğrudan komut satırından playbook'u çalıştırabilirsiniz.

    
    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
    
    
    

    İsterseniz SAP Kullanıcı kimlik bilgilerini parametre olarak da geçirebilirsiniz.

    
    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
    
    
    

SAP uygulaması yüklemesi

SAP uygulaması yüklemesi Ansible playbook'ları aracılığıyla gerçekleşir.

Sistem dağıtım klasörüne gidin.

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

Geçerli klasörlerde aşağıdaki dosyalara sahip olduğunuzdan emin olun: sap-parameters.yaml ve L00_host.yaml.

Tek başına SAP S/4HANA sistemi için sırayla çalıştırılacak sekiz playbook vardır. Playbook'ları çalıştırmanın bir yolu yapılandırma menüsünü kullanmaktır.

configuration_menu betiğini çalıştırın.

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

Diagram that shows the SAP Deployment Automation Ansible configuration menu.

Çalıştırılacak playbook'ları seçin.

Playbook: Temel işletim sistemi yapılandırması

Bu playbook, tüm makinelerde yazılım depolarının, paketlerinin ve hizmetlerinin yapılandırmasını içeren genel işletim sistemi yapılandırma kurulumunu gerçekleştirir.

Yapılandırma menüsünü veya komut satırını kullanarak playbook'u çalıştırabilirsiniz.


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'ye özgü işletim sistemi yapılandırması

Bu playbook, tüm makinelerde SAP işletim sistemi yapılandırma kurulumunu gerçekleştirir. Adımlar birim gruplarının ve dosya sistemlerinin oluşturulmasını ve yazılım depolarının, paketlerinin ve hizmetlerinin yapılandırılmasını içerir.

Yapılandırma menüsünü veya komut satırını kullanarak playbook'u çalıştırabilirsiniz.


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: Ürün reçetesi işleme

Bu playbook, SAP yazılımını SCS VM'sine indirir.

Yapılandırma menüsünü veya komut satırını kullanarak playbook'u çalıştırabilirsiniz.


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 yüklemesi

Bu playbook SAP Central Services'ı yükler. Yüksek oranda kullanılabilir yapılandırmalar için playbook, SAP ERS örneğini de yükler ve Pacemaker'ı yapılandırır.

Yapılandırma menüsünü veya komut satırını kullanarak playbook'u çalıştırabilirsiniz.


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: Veritabanı örneği yüklemesi

Bu playbook, veritabanı örneklerini yükler.

Yapılandırma menüsünü veya komut satırını kullanarak playbook'u çalıştırabilirsiniz.


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: Veritabanı yükü

Bu playbook, birincil uygulama sunucusundan veritabanı yükleme görevini çağırır.

Yapılandırma menüsünü veya komut satırını kullanarak playbook'u çalıştırabilirsiniz.


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: Veritabanı yüksek kullanılabilirlik kurulumu

Bu playbook, veritabanının yüksek kullanılabilirliğini yapılandırır. HANA için, HANA sistem çoğaltmasını ve HANA veritabanı için Pacemaker'ı gerektirir.

Yapılandırma menüsünü veya komut satırını kullanarak playbook'u çalıştırabilirsiniz.


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: Birincil uygulama sunucusu yüklemesi

Bu playbook birincil uygulama sunucusunu yükler. Yapılandırma menüsünü veya komut satırını kullanarak playbook'u çalıştırabilirsiniz.


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: Uygulama sunucusu yüklemeleri

Bu playbook uygulama sunucularını yükler. Yapılandırma menüsünü veya komut satırını kullanarak playbook'u çalıştırabilirsiniz.


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 yüklemeleri

Bu playbook, Web Dispatchers'ı yükler. Yapılandırma menüsünü veya komut satırını kullanarak playbook'u çalıştırabilirsiniz.

Artık tek başına bir HANA sistemi dağıtıp yapılandırmış oldunuz. Yüksek oranda kullanılabilir (HA) bir SAP HANA veritabanı yapılandırmanız gerekiyorsa HANA HA playbook'unu çalıştırın.


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

Yüklemeyi temizleme

İşiniz bittiğinde bu öğreticiden SAP yüklemenizi temizlemeniz önemlidir. Aksi takdirde, kaynaklarla ilgili maliyetler doğurmaya devam edebilirsiniz.

Dağıtılan SAP altyapısının tamamını kaldırmak için şunları yapmanız gerekir:

  • SAP sistem altyapısı kaynaklarını kaldırın.
  • Tüm iş yükü bölgelerini (yatay) kaldırın.
  • Kontrol düzlemini kaldırın.

DAĞıTıcı VM'sinden SAP altyapı kaynaklarınızın ve iş yükü bölgelerinizin kaldırılmasını çalıştırın. Cloud Shell'den kontrol düzleminin kaldırılmasını çalıştırın.

Başlamadan önce Azure hesabınızda oturum açın. Ardından doğru abonelikte olup olmadığınız kontrol edin.

SAP altyapısını kaldırma

LAB-SECE-SAP01-L00 Klasörün içindeki alt klasöre SYSTEM gidin. Ardından şu komutu çalıştırın:

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

SAP iş yükü bölgesini kaldırma

LAB-XXXX-SAP01-INFRASTRUCTURE Klasörün içindeki alt klasöre LANDSCAPE gidin. Ardından şu komutu çalıştırın:


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

Kontrol düzlemini kaldırma

Cloud Shell'de oturum açın.

WORKSPACES klasörüne gidin.

cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/

Aşağıdaki iki ortam değişkenini dışarı aktarın:

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

Şu komutu çalıştırın:

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

Tüm kaynakların temizlendiğini doğrulayın.

Sonraki adım