استخدام إطار تنفيذ تلقائي لنشر SAP من خدمات Azure DevOps
يبسط Azure DevOps عملية النشر من خلال توفير البنية الأساسية لبرنامج ربط العمليات التجارية التي يمكنك تشغيلها لتنفيذ نشر البنية الأساسية وأنشطة التكوين وتثبيت SAP.
يمكنك استخدام Azure Repos لتخزين ملفات التكوين واستخدام Azure Pipelines لنشر وتكوين البنية الأساسية وتطبيق SAP.
الاشتراك في خدمات Azure DevOps
لاستخدام خدمات Azure DevOps، تحتاج إلى مؤسسة Azure DevOps. وتُستخدم المنظمة لربط مجموعات من المشاريع ذات الصلة. استخدم حساب العمل أو المؤسسة التعليمية لتوصيل مؤسستك تلقائيا بمعرف Microsoft Entra. لإنشاء حساب، افتح Azure DevOps وقم إما بتسجيل الدخول أو إنشاء حساب جديد.
تكوين خدمات Azure DevOps لإطار تنفيذ تلقائي لنشر SAP
يمكنك استخدام البرنامج النصي التالي لإجراء تثبيت أساسي لخدمات Azure DevOps لإطار عمل أتمتة توزيع SAP.
افتح PowerShell ISE وانسخ البرنامج النصي التالي وقم بتحديث المعلمات لمطابقة بيئتك.
$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_ControlPlaneSubscriptionID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
$Env:MSI_OBJECT_ID = $null
$branchName = "main"
$UniqueIdentifier = "SDAF" + $ShortCode
if ($Env:ARM_TENANT_ID.Length -eq 0) {
az login --output none --only-show-errors --scope https://graph.microsoft.com//.default
}
else {
az login --output none --tenant $Env:ARM_TENANT_ID --only-show-errors --scope https://graph.microsoft.com//.default
}
az config set extension.use_dynamic_install=yes_without_prompt --only-show-errors
az extension add --name azure-devops --only-show-errors
$differentTenant = Read-Host "Is your Azure DevOps organization hosted in a different tenant than the one you are currently logged in to? y/n"
if ($differentTenant -eq 'y') {
$env:AZURE_DEVOPS_EXT_PAT = Read-Host "Please enter your Personal Access Token (PAT) with permissions to add new projects, manage agent pools to the Azure DevOps organization $Env:ADO_Organization"
try {
az devops project list
}
catch {
$_
}
}
$confirmationWebAppDeployment = Read-Host "Do you want to use the Web Application for editing the configuration files (recommended) y/n?"
if ($confirmationWebAppDeployment -eq 'y') {
$Env:SDAF_WEBAPP = "true"
$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 = "SDAF " + $UniqueIdentifier + " SDAF Control Plane"
}
else {
$Env:SDAF_APP_NAME = Read-Host "Please provide the Application registration name"
}
}
else {
$Env:SDAF_WEBAPP = "false"
}
$Env:SDAF_AuthenticationMethod = 'Managed Identity'
$confirmationDeployment = Read-Host "Do you want to use Managed Identities for the deployment (recommended) y/n?"
if ($confirmationDeployment -eq 'n') {
$Env:SDAF_AuthenticationMethod = 'Service Principal'
$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 = "SDAF " + $UniqueIdentifier + $Env:SDAF_CONTROL_PLANE_CODE + " SPN"
}
else {
$Env:SDAF_MGMT_SPN_NAME = Read-Host "Please provide the Control Plane 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") {
if ( $PSVersionTable.Platform -eq "Unix") {
Remove-Item "New-SDAFDevopsProject.ps1"
}
else {
Remove-Item ".\New-SDAFDevopsProject.ps1"
}
}
Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/$branchName/deploy/scripts/New-SDAFDevopsProject.ps1 -OutFile New-SDAFDevopsProject.ps1
if ( $PSVersionTable.Platform -eq "Unix") {
Unblock-File ./New-SDAFDevopsProject.ps1
./New-SDAFDevopsProject.ps1
}
else {
Unblock-File .\New-SDAFDevopsProject.ps1
.\New-SDAFDevopsProject.ps1
}
قم بتشغيل البرنامج النصي واتبع الإرشادات. يفتح البرنامج النصي نوافذ المستعرض للمصادقة وتنفيذ المهام في مشروع Azure DevOps.
يمكنك اختيار إما تشغيل التعليمات البرمجية مباشرة من GitHub أو يمكنك استيراد نسخة من التعليمات البرمجية إلى مشروع Azure DevOps الخاص بك.
للتأكد من إنشاء المشروع، انتقل إلى مدخل Azure DevOps وحدد المشروع. تأكد من ملء المستودع وإنشاء التدفقات.
هام
قم بتشغيل الخطوات التالية على محطة العمل المحلية. تأكد أيضا من تثبيت أحدث Azure CLI عن طريق تشغيل az upgrade
الأمر .
تكوين البيانات الاصطناعية لخدمات Azure DevOps لمنطقة حمل عمل جديدة
استخدم البرنامج النصي التالي لنشر البيانات الاصطناعية المطلوبة لدعم منطقة حمل عمل جديدة. تنشئ هذه العملية مجموعة المتغيرات واتصال الخدمة في Azure DevOps، واختياريا، أساس خدمة التوزيع.
افتح PowerShell ISE وانسخ البرنامج النصي التالي وقم بتحديث المعلمات لمطابقة بيئتك.
$Env:SDAF_ADO_ORGANIZATION = "https://dev.azure.com/ORGANIZATIONNAME"
$Env:SDAF_ADO_PROJECT = "SAP Deployment Automation Framework"
$Env:SDAF_WorkloadZoneSubscriptionID = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
$Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
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
}
}
$branchName = "main"
Set-Location -Path $sdaf_path
if ( Test-Path "New-SDAFDevopsWorkloadZone.ps1") {
remove-item .\New-SDAFDevopsWorkloadZone.ps1
}
Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/$branchName/deploy/scripts/New-SDAFDevopsWorkloadZone.ps1 -OutFile .\New-SDAFDevopsWorkloadZone.ps1 ; .\New-SDAFDevopsWorkloadZone.ps1
إنشاء نموذج تكوين وحدة التحكم
يمكنك تشغيل البنية Create Sample Deployer Configuration
الأساسية لبرنامج ربط العمليات التجارية لإنشاء تكوين عينة لمستوى التحكم. عند تشغيله، اختر منطقة Azure المناسبة. يمكنك أيضا التحكم في ما إذا كنت تريد نشر Azure Firewall وAzure Bastion.
التكوين اليدوي لخدمات Azure DevOps لإطار عمل أتمتة توزيع SAP
يمكنك تكوين خدمات Azure DevOps يدويا لإطار عمل أتمتة توزيع SAP.
إنشاء مشروع جديد
يمكنك استخدام Azure Repos لتخزين التعليمات البرمجية من مستودع GitHub ل sap-automation وملفات تكوين البيئة.
افتح Azure DevOps وأنشئ مشروعا جديدا عن طريق تحديد مشروع جديد وإدخال تفاصيل المشروع. يحتوي المشروع على مستودع التحكم في مصدر Azure Repos وAzure Pipelines لتنفيذ أنشطة التوزيع.
إذا لم تتمكن من رؤية مشروع جديد، فتأكد من أن لديك أذونات لإنشاء مشاريع جديدة في المؤسسة.
سجل عنوان URL للمشروع.
استيراد المستودع
ابدأ باستيراد مستودع SAP Deployment Automation Framework Bootstrap GitHub إلى Azure Repos.
انتقل إلى قسم Repositories وحدد Import a repository. https://github.com/Azure/sap-automation-bootstrap.git
استيراد المستودع إلى Azure DevOps. لمزيد من المعلومات، راجع استيراد مستودع.
إذا كنت غير قادر على استيراد مستودع، يمكنك إنشاء المستودع يدويا. ثم يمكنك استيراد المحتوى من مستودع SAP Deployment Automation Framework GitHub Bootstrap إليه.
إنشاء مستودع للاستيراد اليدوي
قم بهذه الخطوة فقط إذا لم تتمكن من استيراد المستودع مباشرة.
لإنشاء مستودع مساحات العمل، في قسم Repos ، ضمن Project settings، حدد Create.
اختر المستودع، وأدخل Git، وقدم اسما للمستودع. على سبيل المثال، استخدم SAP Configuration Repository.
نسخ المستودع
لتوفير إمكانية تحرير أكثر شمولا للمحتوى، يمكنك نسخ المستودع إلى مجلد محلي وتحرير المحتويات محليا.
لاستنساخ المستودع إلى مجلد محلي، في قسم Repos من المدخل، ضمن Files، حدد Clone. لمزيد من المعلومات، راجع استنساخ مستودع.
استيراد محتوى المستودع يدويا باستخدام نسخة محلية
يمكنك أيضا تنزيل المحتوى يدويا من مستودع SAP Deployment Automation Framework وإضافته إلى النسخة المحلية من مستودع Azure DevOps.
انتقل إلى https://github.com/Azure/SAP-automation-samples
المستودع وقم بتنزيل محتوى المستودع كملف .zip. حدد Code واختر Download ZIP.
انسخ المحتوى من ملف .zip إلى المجلد الجذر للنسخة المحلية.
افتح المجلد المحلي في Visual Studio Code. يجب أن ترى أنه يجب مزامنة التغييرات بواسطة المؤشر بواسطة أيقونة التحكم بالمصادر الموضحة هنا.
حدد أيقونة التحكم بالمصادر وقدم رسالة حول التغيير. على سبيل المثال، أدخل Import from GitHub وحدد Ctrl+Enter لتثبيت التغييرات. بعد ذلك، حدد مزامنة التغييرات لمزامنة التغييرات مرة أخرى إلى المستودع.
اختر مصدر التعليمات البرمجية Terraform و Ansible
يمكنك إما تشغيل التعليمات البرمجية ل SAP Deployment Automation Framework مباشرة من GitHub أو يمكنك استيرادها محليا.
تشغيل التعليمات البرمجية من مستودع محلي
إذا كنت ترغب في تشغيل التعليمات البرمجية ل SAP Deployment Automation Framework من مشروع Azure DevOps المحلي، فستحتاج إلى إنشاء مستودع تعليمات برمجية منفصل ومستودع تكوين في مشروع Azure DevOps:
- اسم مستودع التكوين:
Same as the DevOps Project name
. المصدر هوhttps://github.com/Azure/sap-automation-bootstrap.git
. - اسم مستودع التعليمات البرمجية:
sap-automation
. المصدر هوhttps://github.com/Azure/sap-automation.git
. - اسم مستودع النموذج والقالب:
sap-samples
. المصدر هوhttps://github.com/Azure/sap-automation-samples.git
.
تشغيل التعليمات البرمجية مباشرة من GitHub
إذا كنت ترغب في تشغيل التعليمات البرمجية مباشرة من GitHub، فأنت بحاجة إلى توفير بيانات اعتماد ل Azure DevOps لتكون قادرا على سحب المحتوى من GitHub.
إنشاء اتصال خدمة GitHub
لسحب التعليمات البرمجية من GitHub، تحتاج إلى اتصال خدمة GitHub. لمزيد من المعلومات، راجع إدارة اتصالات الخدمة.
لإنشاء اتصال الخدمة، انتقل إلى Project الإعدادات وضمن قسم Pipelines، انتقل إلى Service connections.
حدد GitHub كنوع اتصال الخدمة. حدد Azure Pipelines في القائمة المنسدلة OAuth Configuration .
حدد Authorize لتسجيل الدخول إلى GitHub.
أدخل اسم اتصال خدمة، على سبيل المثال، SDAF الاتصال إلى GitHub. تأكد من تحديد مربع الاختيار Grant access permission to all pipelines. حدد حفظ لحفظ اتصال الخدمة.
إعداد تطبيق الويب
يعمل إطار عمل الأتمتة اختيارياً على توفير تطبيق ويب كجزء من وحدة التحكم للمساعدة في منطقة حمل عمل SAP وملفات تكوين النظام. إذا كنت ترغب في استخدام تطبيق الويب، يجب أولا إنشاء تسجيل تطبيق لأغراض المصادقة. افتح Azure Cloud Shell وشغل الأوامر التالية.
استبدل MGMT
بالبيئة الخاصة بك، حسب الضرورة.
echo '[{"resourceAppId":"00000003-0000-0000-c000-000000000000","resourceAccess":[{"id":"e1fe6dd8-ba31-4d61-89e7-88639da4683d","type":"Scope"}]}]' >> manifest.json
TF_VAR_app_registration_app_id=$(az ad app create --display-name MGMT-webapp-registration --enable-id-token-issuance true --sign-in-audience AzureADMyOrg --required-resource-access @manifest.json --query "appId" | tr -d '"')
echo $TF_VAR_app_registration_app_id
az ad app credential reset --id $TF_VAR_app_registration_app_id --append --query "password"
rm manifest.json
احفظ قيم معرّف تسجيل التطبيق وكلمة المرور للاستخدام لاحقاً.
إنشاء مسارات Azure
يتم تنفيذ Azure Pipelines كملفات YAML. يتم تخزينها في مجلد deploy/pipelines في المستودع.
مسار نشر مستوى التحكم
إنشاء مسار توزيع وحدة التحكم. ضمن قسم Pipelines ، حدد New Pipeline. حدد Azure Repos Git كمصدر للتعليمات البرمجية الخاصة بك. تكوين البنية الأساسية لبرنامج ربط العمليات التجارية لاستخدام ملف YAML ل Azure Pipelines موجود. حدد المسار باستخدام الإعدادات التالية:
الإعداد | القيمة |
---|---|
المستودع | "مستودع الجذر" (مثل اسم المشروع) |
فرع | أساسي |
المسار | pipelines/01-deploy-control-plane.yml |
الاسم | نشر مستوى التحكم |
احفظ خط الأنابيب. للاطلاع على حفظ، حدد الرتبة العسكرية إلى جانب تشغيل. انتقل إلى قسم Pipelines وحدد البنية الأساسية لبرنامج ربط العمليات التجارية. اختر Rename/Move من قائمة علامة الحذف على اليمين وأعد تسمية البنية الأساسية لبرنامج ربط العمليات التجارية باسم نشر وحدة التحكم.
مسار نشر منطقة حِمل العمل SAP
إنشاء مسار منطقة حمل عمل SAP. ضمن قسم Pipelines ، حدد New Pipeline. حدد Azure Repos Git كمصدر للتعليمات البرمجية الخاصة بك. تكوين البنية الأساسية لبرنامج ربط العمليات التجارية لاستخدام ملف YAML ل Azure Pipelines موجود. حدد المسار باستخدام الإعدادات التالية:
الإعداد | القيمة |
---|---|
المستودع | "مستودع الجذر" (مثل اسم المشروع) |
فرع | أساسي |
المسار | pipelines/02-sap-workload-zone.yml |
الاسم | نشر منطقة حِمل العمل SAP |
احفظ خط الأنابيب. للاطلاع على حفظ، حدد الرتبة العسكرية إلى جانب تشغيل. انتقل إلى قسم Pipelines وحدد البنية الأساسية لبرنامج ربط العمليات التجارية. اختر Rename/Move من قائمة علامة الحذف على اليمين وأعد تسمية المسار كنشر منطقة حمل عمل SAP.
مسار نشر نظام SAP
إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية لتوزيع نظام SAP. ضمن قسم Pipelines ، حدد New Pipeline. حدد Azure Repos Git كمصدر للتعليمات البرمجية الخاصة بك. تكوين البنية الأساسية لبرنامج ربط العمليات التجارية لاستخدام ملف YAML ل Azure Pipelines موجود. حدد المسار باستخدام الإعدادات التالية:
الإعداد | القيمة |
---|---|
المستودع | "مستودع الجذر" (مثل اسم المشروع) |
فرع | أساسي |
المسار | pipelines/03-sap-system-deployment.yml |
الاسم | نشر نظام SAP (البنية التحتية) |
احفظ خط الأنابيب. للاطلاع على حفظ، حدد الرتبة العسكرية إلى جانب تشغيل. انتقل إلى قسم Pipelines وحدد البنية الأساسية لبرنامج ربط العمليات التجارية. اختر Rename/Move من قائمة القطع الناقص على اليمين وأعد تسمية البنية الأساسية لبرنامج ربط العمليات التجارية باسم توزيع نظام SAP (البنية الأساسية).
مسار الحصول على برامج SAP
إنشاء مسار اكتساب برامج SAP. ضمن قسم Pipelines ، حدد New Pipeline. حدد Azure Repos Git كمصدر للتعليمات البرمجية الخاصة بك. تكوين البنية الأساسية لبرنامج ربط العمليات التجارية لاستخدام ملف YAML ل Azure Pipelines موجود. حدد المسار باستخدام الإعدادات التالية:
الإعداد | القيمة |
---|---|
المستودع | "مستودع الجذر" (مثل اسم المشروع) |
فرع | أساسي |
المسار | deploy/pipelines/04-sap-software-download.yml |
الاسم | الحصول على برامج SAP |
احفظ خط الأنابيب. للاطلاع على حفظ، حدد الرتبة العسكرية إلى جانب تشغيل. انتقل إلى قسم Pipelines وحدد البنية الأساسية لبرنامج ربط العمليات التجارية. اختر Rename/Move من قائمة القطع الناقص على اليمين وأعد تسمية البنية الأساسية لبرنامج ربط العمليات التجارية باسم الحصول على برنامج SAP.
تكوين SAP و مسار تثبيت البرامج
إنشاء تكوين SAP وبنية أساسية لبرنامج ربط العمليات التجارية لتثبيت البرامج. ضمن قسم Pipelines ، حدد New Pipeline. حدد Azure Repos Git كمصدر للتعليمات البرمجية الخاصة بك. تكوين البنية الأساسية لبرنامج ربط العمليات التجارية لاستخدام ملف YAML ل Azure Pipelines موجود. حدد المسار باستخدام الإعدادات التالية:
الإعداد | القيمة |
---|---|
المستودع | "مستودع الجذر" (مثل اسم المشروع) |
فرع | أساسي |
المسار | pipelines/05-DB-and-SAP-installation.yml |
الاسم | التكوين وتثبيت SAP |
احفظ خط الأنابيب. للاطلاع على حفظ، حدد الرتبة العسكرية إلى جانب تشغيل. انتقل إلى قسم Pipelines وحدد البنية الأساسية لبرنامج ربط العمليات التجارية. اختر Rename/Move من قائمة القطع الناقص على اليمين وأعد تسمية البنية الأساسية لبرنامج ربط العمليات التجارية بتكوين SAP وتثبيت البرامج.
مسار إزالة النشر
إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية لإزالة التوزيع. ضمن قسم Pipelines ، حدد New Pipeline. حدد Azure Repos Git كمصدر للتعليمات البرمجية الخاصة بك. تكوين البنية الأساسية لبرنامج ربط العمليات التجارية لاستخدام ملف YAML ل Azure Pipelines موجود. حدد المسار باستخدام الإعدادات التالية:
الإعداد | القيمة |
---|---|
المستودع | "مستودع الجذر" (مثل اسم المشروع) |
فرع | أساسي |
المسار | pipelines/10-remover-terraform.yml |
الاسم | إزالة النشر |
احفظ خط الأنابيب. للاطلاع على حفظ، حدد الرتبة العسكرية إلى جانب تشغيل. انتقل إلى قسم Pipelines وحدد البنية الأساسية لبرنامج ربط العمليات التجارية. اختر Rename/Move من قائمة علامة الحذف على اليمين وأعد تسمية البنية الأساسية كإزالة نشر.
مسار إزالة وحدة التحكم
إنشاء مسار إزالة نشر وحدة التحكم. ضمن قسم Pipelines ، حدد New Pipeline. حدد Azure Repos Git كمصدر للتعليمات البرمجية الخاصة بك. تكوين البنية الأساسية لبرنامج ربط العمليات التجارية لاستخدام ملف YAML ل Azure Pipelines موجود. حدد المسار باستخدام الإعدادات التالية:
الإعداد | القيمة |
---|---|
المستودع | "مستودع الجذر" (مثل اسم المشروع) |
فرع | أساسي |
المسار | pipelines/12-remove-control-plane.yml |
الاسم | إزالة وحدة التحكم |
احفظ خط الأنابيب. للاطلاع على حفظ، حدد الرتبة العسكرية إلى جانب تشغيل. انتقل إلى قسم Pipelines وحدد البنية الأساسية لبرنامج ربط العمليات التجارية. اختر Rename/Move من قائمة علامة الحذف على اليمين وأعد تسمية البنية الأساسية لبرنامج ربط العمليات التجارية كإزالة وحدة التحكم.
مسار إزالة التوزيع باستخدام Azure Resource Manager
إنشاء مسار Azure Resource Manager لإزالة التوزيع. ضمن قسم Pipelines ، حدد New Pipeline. حدد Azure Repos Git كمصدر للتعليمات البرمجية الخاصة بك. تكوين البنية الأساسية لبرنامج ربط العمليات التجارية لاستخدام ملف YAML ل Azure Pipelines موجود. حدد المسار باستخدام الإعدادات التالية:
الإعداد | القيمة |
---|---|
المستودع | "مستودع الجذر" (مثل اسم المشروع) |
فرع | أساسي |
المسار | pipelines/11-remover-arm-fallback.yml |
الاسم | إزالة التوزيع باستخدام Azure Resource Manager |
احفظ خط الأنابيب. للاطلاع على حفظ، حدد الرتبة العسكرية إلى جانب تشغيل. انتقل إلى قسم Pipelines وحدد البنية الأساسية لبرنامج ربط العمليات التجارية. اختر Rename/Move من قائمة علامة الحذف على اليمين وأعد تسمية المسار كإزالة نشر باستخدام معالج ARM.
إشعار
استخدم هذا المسار فقط كحل أخير. تؤدي إزالة مجموعات الموارد فقط إلى ترك المخلفات التي قد تعقد عمليات إعادة التوزيع.
مسار محدث المستودع
إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية لمحدث المستودع. ضمن قسم Pipelines ، حدد New Pipeline. حدد Azure Repos Git كمصدر للتعليمات البرمجية الخاصة بك. تكوين البنية الأساسية لبرنامج ربط العمليات التجارية لاستخدام ملف YAML ل Azure Pipelines موجود. حدد المسار باستخدام الإعدادات التالية:
الإعداد | القيمة |
---|---|
المستودع | "مستودع الجذر" (مثل اسم المشروع) |
فرع | أساسي |
المسار | pipelines/20-update-ado-repository.yml |
الاسم | محدث المستودع |
احفظ خط الأنابيب. للاطلاع على حفظ، حدد الرتبة العسكرية إلى جانب تشغيل. انتقل إلى قسم Pipelines وحدد البنية الأساسية لبرنامج ربط العمليات التجارية. اختر Rename/Move من قائمة القطع الناقص على اليمين وأعد تسمية البنية الأساسية لبرنامج ربط العمليات التجارية كمحدث مستودع.
يجب استخدام خط الأنابيب هذا عندما يكون هناك تحديث في مستودع تنفيذ تلقائي SAP الذي تريد استخدامه.
استيراد مهمة التنظيف من Visual Studio Marketplace
تستخدم المسارات مهمة مخصصة لتنفيذ أنشطة التنظيف بعد النشر. يمكنك تثبيت المهمة المخصصة من تنظيف ما بعد الإنشاء. قم بتثبيته على مؤسسة Azure DevOps قبل تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.
التحضيرات لوكيل مستضاف ذاتيا
إنشاء تجمع عامل بالانتقال إلى الإعدادات التنظيمية. ضمن قسم Pipelines، حدد Agent Pools>Add Pool. حدد Self-hosted كنوع التجمع. قم بتسمية التجمع للمحاذاة مع بيئة وحدة التحكم. على سبيل المثال، استخدم
MGMT-WEEU-POOL
. تأكد من تحديد منح إذن الوصول إلى كافة المسارات وحدد Create لإنشاء التجمع.سجل الدخول باستخدام حساب المستخدم الذي تخطط لاستخدامه في مؤسسة Azure DevOps .
من الصفحة الرئيسية، افتح إعدادات المستخدم وحدد الرموز المميزة للوصول الشخصي.
إنشاء رمز مميز للوصول الشخصي باستخدام هذه الإعدادات:
تجمعات الوكلاء: حدد قراءة وإدارة.
Build: حدد Read & execute.
التعليمات البرمجية: حدد قراءة وكتابة.
مجموعات المتغيرات: حدد قراءة وإنشاء وإدارة.
اكتب قيمة الرمز المميز التي تم إنشاؤها.
تعريفات متغيرة
يتم تكوين مسارات التوزيع لاستخدام مجموعة من قيم المعلمات المعرفة مسبقا المعرفة باستخدام مجموعات متغيرة.
المتغيرات الشائعة
تستخدم كافة مسارات التوزيع المتغيرات الشائعة. يتم تخزينها في مجموعة متغيرة تسمى SDAF-General
.
إنشاء مجموعة متغيرات جديدة باسم SDAF-General
باستخدام صفحة المكتبة في قسم Pipelines . أضف المتغيرات التالية:
المتغيرة | القيمة | ملاحظات |
---|---|---|
مسار تكوين النشر | مساحات عمل | لاختبار تكوين العينة، استخدم samples/WORKSPACES بدلا من WORKSPACES. |
فرع | أساسي | |
S-اسم المستخدم | <SAP Support user account name> |
|
S-كلمة السر | <SAP Support user password> |
غير نوع المتغير إلى بيانات سرية عن طريق تحديد أيقونة التأمين. |
tf_version |
1.6.0 | إصدار Terraform المراد استخدامه. راجع تنزيل Terraform. |
احفظ المتغيرات.
بدلا من ذلك، يمكنك استخدام Azure DevOps CLI لإعداد المجموعات.
s-user="<SAP Support user account name>"
s-password="<SAP Support user password>"
az devops login
az pipelines variable-group create --name SDAF-General --variables ANSIBLE_HOST_KEY_CHECKING=false Deployment_Configuration_Path=WORKSPACES Branch=main S-Username=$s-user S-Password=$s-password tf_version=1.3.0 --output yaml
تذكر تعيين أذونات لكافة المسارات باستخدام أذونات البنية الأساسية لبرنامج ربط العمليات التجارية.
المتغيرات الخاصة بالبيئة
نظرا لأن كل بيئة قد يكون لها بيانات اعتماد نشر مختلفة، تحتاج إلى إنشاء مجموعة متغيرة لكل بيئة. على سبيل المثال، استخدم SDAF-MGMT
وSDAF-DEV
و SDAF-QA
.
إنشاء مجموعة متغيرات جديدة تسمى SDAF-MGMT
لبيئة وحدة التحكم باستخدام صفحة المكتبة في قسم Pipelines . أضف المتغيرات التالية:
المتغيرة | القيمة | ملاحظات |
---|---|---|
المندوب | Azure Pipelines أو اسم تجمع الوكلاء |
يتم إنشاء هذا التجمع في خطوة لاحقة. |
CP_ARM_CLIENT_ID | Service principal application ID |
|
CP_ARM_OBJECT_ID | Service principal object ID |
|
CP_ARM_CLIENT_SECRET | Service principal password |
غير نوع المتغير إلى بيانات سرية عن طريق تحديد أيقونة التأمين. |
CP_ARM_SUBSCRIPTION_ID | Target subscription ID |
|
CP_ARM_TENANT_ID | Tenant ID لمدير الخدمة |
|
AZURE_CONNECTION_NAME | اسم الاتصال الذي تم إنشاؤه سابقًا | |
sap_fqdn | اسم المجال المؤهل بالكامل ل SAP، على سبيل المثال، sap.contoso.net |
مطلوب فقط إذا لم يُستخدم DNS الخاص. |
FENCING_SPN_ID | Service principal application ID لعامل التسييج |
مطلوب للنشرات عالية التوفر التي تستخدم كيان خدمة لعامل التسييج. |
FENCING_SPN_PWD | Service principal password لعامل التسييج |
مطلوب للنشرات عالية التوفر التي تستخدم كيان خدمة لعامل التسييج. |
FENCING_SPN_TENANT | Service principal tenant ID لعامل التسييج |
مطلوب للنشرات عالية التوفر التي تستخدم كيان خدمة لعامل التسييج. |
بات | <Personal Access Token> |
استخدم الرمز المميز الشخصي المحدد في الخطوة السابقة. |
POOL | <Agent Pool name> |
تجمع العامل المراد استخدامه لهذه البيئة. |
APP_REGISTRATION_APP_ID | App registration application ID |
مطلوب في حالة نشر تطبيق الويب. |
WEB_APP_CLIENT_SECRET | App registration password |
مطلوب في حالة نشر تطبيق الويب. |
SDAF_GENERAL_GROUP_ID | معرف المجموعة لمجموعة SDAF-General | يمكن استرداد المعرف من معلمة variableGroupId URL عند الوصول إلى مجموعة المتغيرات باستخدام مستعرض. على سبيل المثال: variableGroupId=8 . |
WORKLOADZONE_PIPELINE_ID | معرف البنية الأساسية لبرنامج ربط العمليات SAP workload zone deployment التجارية |
يمكن استرداد المعرف من معلمة definitionId URL من صفحة المسار في Azure DevOps. على سبيل المثال: definitionId=31 . |
SYSTEM_PIPELINE_ID | معرف البنية الأساسية لبرنامج ربط العمليات SAP system deployment (infrastructure) التجارية |
يمكن استرداد المعرف من معلمة definitionId URL من صفحة المسار في Azure DevOps. على سبيل المثال: definitionId=32 . |
احفظ المتغيرات.
تذكر تعيين أذونات لكافة المسارات باستخدام أذونات البنية الأساسية لبرنامج ربط العمليات التجارية.
عند استخدام تطبيق الويب، تأكد من أن خدمة البناء لديها على الأقل أذونات المساهمة.
يمكنك استخدام وظيفة الاستنساخ لإنشاء مجموعة متغيرات البيئة التالية. APP_REGISTRATION_APP_ID WEB_APP_CLIENT_SECRET SDAF_GENERAL_GROUP_ID WORKLOADZONE_PIPELINE_ID SYSTEM_PIPELINE_ID مطلوبة فقط لمجموعة SDAF-MGMT.
إنشاء اتصال خدمة
لإزالة موارد Azure، تحتاج إلى اتصال خدمة Azure Resource Manager. لمزيد من المعلومات، راجع إدارة اتصالات الخدمة.
لإنشاء اتصال الخدمة، انتقل إلى Project الإعدادات. ضمن قسم Pipelines ، حدد Service connections.
حدد Azure Resource Manager كنوع اتصال الخدمة وكيان الخدمة (يدوي) كطريقة مصادقة. أدخل الاشتراك الهدف، وهو عادة اشتراك وحدة التحكم. أدخل تفاصيل كيان الخدمة. حدد التحقق للتحقق من صحة بيانات الاعتماد. لمزيد من المعلومات حول كيفية إنشاء كيان خدمة، راجع إنشاء كيان خدمة.
أدخل اسم اتصال الخدمة، على سبيل المثال، استخدم Connection to MGMT subscription
. تأكد من تحديد مربع الاختيار Grant access permission to all pipelines. حدد التحقق والحفظ لحفظ اتصال الخدمة.
الأذونات
تضيف معظم المسارات ملفات إلى Azure Repos وبالتالي تتطلب أذونات سحب. في Project الإعدادات، ضمن قسم Repositories، حدد علامة التبويب Security لمستودع التعليمات البرمجية المصدر وقم بتعيين أذونات المساهمة إلى Build Service
.
توزيع وحدة التحكم
قد لا تكون المسارات التي تم إنشاؤها حديثاً مرئية في طريقة العرض الافتراضية. حدد علامة التبويب الأخيرة وارجع إلى كافة علامات التبويب لعرض المسارات الجديدة.
حدد مسار توزيع وحدة التحكم وأدخل أسماء التكوين للموزع ومكتبة SAP. حدد Run لنشر وحدة التحكم. تأكد من تحديد خانة الاختيار Deploy the configuration web application إذا كنت تريد إعداد تطبيق ويب التكوين.
تكوين وكيل Azure DevOps Services المُستضاف ذاتيًا
التكوين اليدوي مطلوب فقط إذا لم يتم تكوين عامل Azure DevOps Services تلقائيا. تحقق من أن تجمع العامل فارغ قبل المتابعة.
للاتصال بالموزع:
قم بتسجيل الدخول إلى بوابة Azure.
انتقل إلى مجموعة الموارد التي تحتوي على الجهاز الظاهري للموزع.
الاتصال إلى الجهاز الظاهري باستخدام Azure Bastion.
اسم المستخدم الافتراضي هو azureadm.
حدد SSH Private Key من Azure Key Vault.
حدد الاشتراك الذي يحتوي على مستوى التحكم.
حدد مخزن مفاتيح التوزيع.
من قائمة الأسرار، حدد السر الذي ينتهي ب -sshkey.
اتصل بالجهاز الظاهري.
قم بتشغيل البرنامج النصي التالي لتكوين الموزع:
mkdir -p ~/Azure_SAP_Automated_Deployment
cd ~/Azure_SAP_Automated_Deployment
git clone https://github.com/Azure/sap-automation.git
cd sap-automation/deploy/scripts
./configure_deployer.sh
أعد تشغيل الموزع، وأعد الاتصال، ثم شغل البرنامج النصي التالي لإعداد عامل Azure DevOps:
cd ~/Azure_SAP_Automated_Deployment/
$DEPLOYMENT_REPO_PATH/deploy/scripts/setup_ado.sh
اقبل الترخيص، وعندما تتم مطالبتك بعنوان URL للخادم، أدخل عنوان URL الذي سجلته عند إنشاء مشروع Azure DevOps. للمصادقة، حدد PAT وأدخل قيمة الرمز المميز من الخطوة السابقة.
عند المطالبة، أدخل اسم تجمع التطبيقات الذي قمت بإنشائه في الخطوة السابقة. اقبل اسم الوكيل الافتراضي واسم مجلد العمل الافتراضي. تم الآن تكوين العامل وبدء تشغيله.
نشر تطبيق الويب لمستوى التحكم
يؤدي تحديد المعلمة deploy the web app infrastructure
عند تشغيل مسار توزيع وحدة التحكم إلى توفير البنية الأساسية اللازمة لاستضافة تطبيق الويب. ينشر مسار توزيع تطبيق الويب برنامج التطبيق إلى تلك البنية الأساسية.
انتظر حتى انتهاء عملية التوزيع. حدد علامة التبويب Extensions واتبع الإرشادات لإنهاء التكوين. reply-url
تحديث قيم تسجيل التطبيق.
نتيجة لتشغيل مسار مستوى التحكم، يتم تخزين جزء من عنوان URL لتطبيق الويب المطلوب في متغير يسمى WEBAPP_URL_BASE
في مجموعة المتغيرات الخاصة بالبيئة. في أي وقت، يمكنك تحديث عناوين URL لتطبيق ويب التطبيق المسجل باستخدام الأمر التالي.
webapp_url_base=<WEBAPP_URL_BASE>
az ad app update --id $TF_VAR_app_registration_app_id --web-home-page-url https://${webapp_url_base}.azurewebsites.net --web-redirect-uris https://${webapp_url_base}.azurewebsites.net/ https://${webapp_url_base}.azurewebsites.net/.auth/login/aad/callback
تحتاج أيضا إلى منح أذونات القارئ للهوية المدارة المعينة من قبل نظام خدمة التطبيق. انتقل إلى مورد خدمة التطبيق. على الجانب الأيسر، حدد Identity. في علامة التبويب System assigned ، حدد Azure role assignments>Add role assignment. حدد الاشتراك كنطاق وقارئ كدور. ثم حدد حفظ. بدون هذه الخطوة، لن تعمل وظيفة القائمة المنسدلة لتطبيق الويب.
يجب أن تكون الآن قادرا على زيارة تطبيق الويب واستخدامه لنشر مناطق حمل عمل SAP والبنية الأساسية لنظام SAP.