SAP Deployment Automation Framework ile çalışmaya başlama
SAP Deployment Automation Framework ile hızlı bir şekilde çalışmaya başlayın.
Önkoşullar
SAP Deployment Automation Framework ile çalışmaya başlamak için şunları yapmanız gerekir:
- Azure aboneliği. Azure aboneliğiniz yoksa ücretsiz hesap oluşturabilirsiniz.
- Sap yazılımını Azure ortamınıza indirme izinlerine sahip bir SAP Kullanıcı hesabı. S-User hakkında daha fazla bilgi için bkz . SAP S-User.
- Azure CLI yüklemesi.
- Denetim düzlemi dağıtımı için kullanılacak kullanıcı Tarafından Atanan Kimlik (MS) veya hizmet sorumlusu.
- İş yükü bölgesi dağıtımı için kullanılacak kullanıcı Tarafından Atanan Kimlik (MS) veya A hizmet sorumlusu.
- Dağıtım için Azure DevOps kullanmak istiyorsanız Azure DevOps projesi oluşturma olanağı.
Önkoşullardan bazıları dağıtım ortamınıza zaten yüklenmiş olabilir. Hem Azure Cloud Shell hem de dağıtıcı Terraform ve Azure CLI yüklü olarak gelir.
Hizmet sorumlusu oluşturma
SAP otomasyonu dağıtım çerçevesi dağıtım için hizmet sorumlularını kullanır.
Hizmet sorumlunuz için bir ad seçtiğinizde, adın Azure kiracınızda benzersiz olduğundan emin olun. Betiği çalıştırırken hizmet sorumluları oluşturma izinlerine sahip bir hesap kullandığınızdan emin olun.
Katkıda Bulunan izinleriyle hizmet sorumlusunu oluşturun.
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 istrator rolünü atamazsanız, otomasyon çerçevesini kullanarak izin atayamazsınız.
Kullanıcı tarafından atanan kimlik oluşturma
SAP otomasyonu dağıtım çerçevesi, dağıtım için kullanıcı tarafından atanan kimliği (MSI) de kullanabilir. Kimliği oluşturan betiği çalıştırırken yönetilen kimlikler oluşturmak için izinlere sahip bir hesap kullandığınızdan emin olun.
Yönetilen kimliği oluşturun.
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export control_plane_env_code="LAB" az identity create --name ${control_plane_env_code}-Deployment-Identity --resource-group <ExistingResourceGroup>
Çıktıyı gözden geçirin. Örneğin:
{ "clientId": "<appId>", "id": "<armId>", "location": "<location>", "name": "${control_plane_env_code}-Deployment-Identity", "principalId": "<objectId>", "resourceGroup": "<ExistingResourceGroup>", "systemData": null, "tags": {}, "tenantId": "<TenantId>", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
Çıkış ayrıntılarını kopyalayın.
Çıkış aşağıdaki parametrelerle eşler. Bu parametreleri otomasyon komutlarıyla sonraki adımlarda kullanacaksınız.
Parametre giriş adı Çıkış adı app_id
appId
msi_id
armId
Kimliğe Katkıda Bulunan rolünü atayın.
export appId="<appId>" az role assignment create --assignee $appId --role "Contributor" --scope /subscriptions/$ARM_SUBSCRIPTION_ID
İsteğe bağlı olarak, kimliğe 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
Yönetilen kimliğe Kullanıcı Erişimi Yönetici istrator rolünü atamazsanız, otomasyon çerçevesini kullanarak izin atayamazsınız.
Uçuş öncesi denetimler
Uçuş öncesi denetimleri gerçekleştirmek için aşağıdaki betiği kullanabilirsiniz. Betik aşağıdaki denetimleri ve testleri gerçekleştirir:
- Hizmet sorumlusunun abonelikte kaynak oluşturmak için doğru izinlere sahip olup olmadığını denetler.
- Hizmet sorumlusunun kullanıcı Erişimi Yönetici istrator izinlerine sahip olup olmadığını denetler.
- Azure Sanal Ağ oluşturma.
- Özel uç nokta ile bir Azure Sanal Anahtar Kasası oluşturun.
- Azure Dosyalar NSF paylaşımı oluşturun.
- Premium Depolama v2 kullanarak veri diski ile bir Azure Sanal Sanal Makinesi oluşturun.
- Dağıtılan sanal makineyi kullanarak gerekli URL'lere erişimi denetleyin.
$sdaf_path = Get-Location
if ( $PSVersionTable.Platform -eq "Unix") {
if ( -Not (Test-Path "SDAF") ) {
$sdaf_path = New-Item -Path "SDAF" -Type Directory
}
}
else {
$sdaf_path = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SDAF"
if ( -not (Test-Path $sdaf_path)) {
New-Item -Path $sdaf_path -Type Directory
}
}
Set-Location -Path $sdaf_path
git clone https://github.com/Azure/sap-automation.git
cd sap-automation
cd deploy
cd scripts
if ( $PSVersionTable.Platform -eq "Unix") {
./Test-SDAFReadiness.ps1
}
else {
.\Test-SDAFReadiness.ps1
}
Azure DevOps Services'dan SAP Deployment Automation Framework kullanma
Azure DevOps'un kullanılması dağıtım işlemini kolaylaştırır. Azure DevOps, altyapı dağıtımını ve yapılandırma ile SAP yükleme etkinliklerini gerçekleştirmek için çalıştırabileceğiniz işlem hatları sağlar.
Yapılandırma dosyalarınızı depolamak için Azure Repos'ı kullanabilirsiniz. Azure Pipelines, altyapıyı ve SAP uygulamasını dağıtmak ve yapılandırmak için kullanılabilen işlem hatları sağlar.
Azure DevOps Services'a kaydolma
Azure DevOps Services'i kullanmak için bir Azure DevOps kuruluşuna ihtiyacınız vardır. Bir kuruluş, ilgili proje gruplarını bağlamak için kullanılır. Kuruluşunuzu Microsoft Entra Id'nize otomatik olarak bağlamak için iş veya okul hesabınızı kullanın. Hesap oluşturmak için Azure DevOps'u açın ve oturum açın veya yeni bir hesap oluşturun.
Azure DevOps ile SAP Deployment Automation Framework ortamı oluşturma
SAP Deployment Automation Framework için Azure DevOps Services'ın temel yüklemesini yapmak için aşağıdaki betiği kullanabilirsiniz.
PowerShell ISE'yi açın ve aşağıdaki betiği kopyalayın ve parametreleri ortamınızla eşleşecek şekilde güncelleştirin.
$Env:SDAF_ADO_ORGANIZATION = "https://dev.azure.com/ORGANIZATIONNAME"
$Env:SDAF_ADO_PROJECT = "SAP Deployment Automation Framework"
$Env:SDAF_CONTROL_PLANE_CODE = "MGMT"
$Env:SDAF_WORKLOAD_ZONE_CODE = "DEV"
$Env:SDAF_ControlPlaneSubscriptionID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$Env:SDAF_WorkloadZoneSubscriptionID = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
$Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
$UniqueIdentifier = Read-Host "Please provide an identifier that makes the service principal names unique, for instance a project code"
$confirmation = Read-Host "Do you want to create a new Application registration (needed for the Web Application) y/n?"
if ($confirmation -eq 'y') {
$Env:SDAF_APP_NAME = $UniqueIdentifier + " SDAF Control Plane"
}
else {
$Env:SDAF_APP_NAME = Read-Host "Please provide the Application registration name"
}
$confirmation = Read-Host "Do you want to create a new Service Principal for the Control plane y/n?"
if ($confirmation -eq 'y') {
$Env:SDAF_MGMT_SPN_NAME = $UniqueIdentifier + " SDAF " + $Env:SDAF_CONTROL_PLANE_CODE + " SPN"
}
else {
$Env:SDAF_MGMT_SPN_NAME = Read-Host "Please provide the Control Plane Service Principal Name"
}
$confirmation = Read-Host "Do you want to create a new Service Principal for the Workload zone y/n?"
if ($confirmation -eq 'y') {
$Env:SDAF_WorkloadZone_SPN_NAME = $UniqueIdentifier + " SDAF " + $Env:SDAF_WORKLOAD_ZONE_CODE + " SPN"
}
else {
$Env:SDAF_WorkloadZone_SPN_NAME = Read-Host "Please provide the Workload Zone Service Principal Name"
}
if ( $PSVersionTable.Platform -eq "Unix") {
if ( Test-Path "SDAF") {
}
else {
$sdaf_path = New-Item -Path "SDAF" -Type Directory
}
}
else {
$sdaf_path = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SDAF"
if ( Test-Path $sdaf_path) {
}
else {
New-Item -Path $sdaf_path -Type Directory
}
}
Set-Location -Path $sdaf_path
if ( Test-Path "New-SDAFDevopsProject.ps1") {
remove-item .\New-SDAFDevopsProject.ps1
}
Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/main/deploy/scripts/New-SDAFDevopsProject.ps1 -OutFile .\New-SDAFDevopsProject.ps1 ; .\New-SDAFDevopsProject.ps1
Betiği çalıştırın ve yönergeleri izleyin. Betik, kimlik doğrulaması ve Azure DevOps projesinde görevleri gerçekleştirmek için tarayıcı pencerelerini açar.
Kodu doğrudan GitHub'dan çalıştırmayı seçebilir veya kodun bir kopyasını Azure DevOps projenize aktarabilirsiniz.
Projenin oluşturulduğunu onaylamak için Azure DevOps portalına gidin ve projeyi seçin. Deponun dolduruldığından ve işlem hatlarının oluşturulduğundan emin olun.
Önemli
Yerel iş istasyonunuzda aşağıdaki adımları çalıştırın. Ayrıca komutunu çalıştırarak en son Azure CLI'yi yüklediğinizden az upgrade
emin olun.
SAP Deployment Automation Framework için Azure DevOps yapılandırma hakkında daha fazla bilgi için bkz . SAP Deployment Automation Framework için Azure DevOps'yi yapılandırma.
Azure DevOps olmadan SAP Deployment Automation Framework ortamı oluşturma
SAP Deployment Automation Framework'u Azure'daki bir sanal makineden çalıştırabilirsiniz. Aşağıdaki adımlarda ortamın nasıl oluşturulacağı açıklanmaktadır.
Önemli
Sanal makinenin kaynak oluşturmak için abonelikte izinleri olan sistem tarafından atanan veya kullanıcı tarafından atanan bir kimlik kullandığından emin olun.
Sanal makinede aşağıdaki önkoşulların yüklü olduğundan emin olun:
- git
- Jq
- Unzip
- virtualenv (Ubuntu üzerinde çalışıyorsa)
Aşağıdaki komutu kullanarak bir Ubuntu sanal makinesine önkoşulları yükleyebilirsiniz:
sudo apt-get install -y git jq unzip virtualenv
Ardından aşağıdaki komutları kullanarak dağıtıcı bileşenlerini yükleyebilirsiniz:
wget https://raw.githubusercontent.com/Azure/sap-automation/main/deploy/scripts/configure_deployer.sh -O configure_deployer.sh
chmod +x ./configure_deployer.sh
./configure_deployer.sh
# Source the new variables
. /etc/profile.d/deploy_server.sh
Örnekler
klasör, ~/Azure_SAP_Automated_Deployment/samples
dağıtım otomasyonu çerçevesini test etmeye başlamak için bir dizi örnek yapılandırma dosyası içerir. Aşağıdaki komutları kullanarak bunları kopyalayabilirsiniz:
cd ~/Azure_SAP_Automated_Deployment
cp -Rp samples/Terraform/WORKSPACES ~/Azure_SAP_Automated_Deployment