Öğ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:
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:
- Dağıtım ortamını oluşturun.
- Terraform durum dosyaları için paylaşılan depolama alanı oluşturun.
- SAP yükleme medyası için paylaşılan depolama alanı oluşturun.
İş 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.
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.
Ç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.
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.
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.
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
Azure Cloud Shell'e gidin.
Azure hesabınızda oturum açın.
az login
Oturum açma kimliğinizi doğrulama. İstenmeden pencereyi kapatmayın.
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
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
İ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
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
İ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.
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>" }
Çıkış ayrıntılarını kopyalayın. ,
password
veTenant
değerleriniappId
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ı spn_id
appId
spn_secret
password
tenant_id
tenant
İ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.
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 password
değ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
Cloud Shell'den Visual Studio Code'yu açın.
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES code .
WORKSPACES
Dizini genişletin. Altı alt klasör vardır:CONFIGURATION
,DEPLOYER
,LANDSCAPE
,LIBRARY
,SYSTEM
, veBOMS
. Bölgesel dağıtım yapılandırma dosyalarını bulmak için bu klasörlerin her birini genişletin.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.
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
.
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
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-cache
için komutunu çalıştırınaz logout
. Ardından komutunu çalıştırarakaz login
yeniden kimlik doğrulaması yapın.Otomasyon çerçevesinin Terraform işlemlerini
plan
veapply
ç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 # # # #########################################################################################
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_LIBRARY
ifadesini görebilirsinizLAB-[region]-DEP05-INFRASTRUCTURE
.Dağıtıcının ve SAP Kitaplığı kaynak grubunun içeriği burada gösterilmiştir.
Terraform durum dosyası artık adında
tfstate
bulunan 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ıntfstate
içeriği burada gösterilmiştir.
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ç azurerm
kullanı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:
Azure Portal’ında oturum açın.
Anahtar kasalarını seçin veya arayın.
Anahtar kasası sayfasında dağıtan anahtar kasasını bulun. Ad ile
LAB[REGION]DEP05user
başlar. Gerekirse Kaynak grubuna veya Konuma göre filtreleyin.Sol bölmedeki Ayarlar bölümünde Gizli Diziler'i seçin.
sshkey içeren gizli diziyi bulun ve seçin. gibi
LAB-[REGION]-DEP05-sshkey
görünebilir.Gizli dizinin sayfasında geçerli sürümü seçin. Ardından gizli dizi değerini kopyalayın.
Düz metin düzenleyicisini açın. Gizli dizi değerini kopyalayın.
SSH anahtarlarını tuttuğunuz dosyayı kaydedin. Örneğin, kullanın
C:\\Users\\<your-username>\\.ssh
.Dosyayı kaydedin. Kayıt türü istenirse, SSH bir seçenek değilse Tüm dosyalar'ı seçin. Örneğin, kullanın
deployer.ssh
.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:
Azure Portal’ında oturum açın.
Dağıtıcı VM'sini içeren kaynak grubuna gidin.
Azure Bastion kullanarak VM'ye Bağlan.
Varsayılan kullanıcı adı azureadm'dir.
Azure Key Vault'tan SSH Özel Anahtarı'na tıklayın.
Denetim düzlemini içeren aboneliği seçin.
Dağıtımcı anahtar kasasını seçin.
Gizli dizi listesinden -sshkey ile biten gizli diziyi seçin.
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.
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
.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
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>"
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
Bir metin düzenleyicisinde aşağıdaki bilgileri toplayın. Bu bilgiler "Kontrol düzlemini dağıtma" aşamasının sonunda toplanmış.
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
.
- Yukarıdaki örnekten sonra kaynak grubu şeklindedir
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
.
- Yukarıdaki örnekten sonra kaynak grubu şeklindedir
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.
Aşağıdaki bilgi parçasını toplamanız gerekir:
- 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
.
- Kitaplık kaynak grubu>Durum depolama hesabı>Kapsayıcıları'yı
- Dağıtımcı durum dosyasının adı kitaplık kaynak grubunun altında bulunur:
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çindedirLAB
. Bu nedenle, ortam için bir hizmet sorumlusu kaydedilmelidirLAB
.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.
Dağıtan VM'de klasörüne
Azure_SAP_Automated_Deployment
gidin.cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/LAB-SECE-SAP04-INFRASTRUCTURE
İ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.
İş 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ıdatfstate
bulunur) tfstate
Depolama hesabının adı- Dağıtan anahtar kasasının adı
- Dağıtıcı
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.
Aşağıdaki adımlar için dağıtıcı VM'nize Bağlan. Deponun bir kopyası artık orada.
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}";
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}";
İ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
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
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
Ç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ıdasapbits
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
Ç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
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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin