استخدام إطار تنفيذ تلقائي لنشر 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. لمزيد من المعلومات، راجع استنساخ مستودع.

Screenshot that shows how to clone the repository.

استيراد محتوى المستودع يدويا باستخدام نسخة محلية

يمكنك أيضا تنزيل المحتوى يدويا من مستودع SAP Deployment Automation Framework وإضافته إلى النسخة المحلية من مستودع Azure DevOps.

انتقل إلى https://github.com/Azure/SAP-automation-samples المستودع وقم بتنزيل محتوى المستودع كملف .zip. حدد Code واختر Download ZIP.

انسخ المحتوى من ملف .zip إلى المجلد الجذر للنسخة المحلية.

افتح المجلد المحلي في Visual Studio Code. يجب أن ترى أنه يجب مزامنة التغييرات بواسطة المؤشر بواسطة أيقونة التحكم بالمصادر الموضحة هنا.

Screenshot that shows that source code is changed.

حدد أيقونة التحكم بالمصادر وقدم رسالة حول التغيير. على سبيل المثال، أدخل 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.

Screenshot that shows how to create a service connection for GitHub.

حدد 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 قبل تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.

التحضيرات لوكيل مستضاف ذاتيا

  1. إنشاء تجمع عامل بالانتقال إلى الإعدادات التنظيمية. ضمن قسم Pipelines، حدد Agent Pools>Add Pool. حدد Self-hosted كنوع التجمع. قم بتسمية التجمع للمحاذاة مع بيئة وحدة التحكم. على سبيل المثال، استخدم MGMT-WEEU-POOL. تأكد من تحديد منح إذن الوصول إلى كافة المسارات وحدد Create لإنشاء التجمع.

  2. سجل الدخول باستخدام حساب المستخدم الذي تخطط لاستخدامه في مؤسسة Azure DevOps .

  3. من الصفحة الرئيسية، افتح إعدادات المستخدم وحدد الرموز المميزة للوصول الشخصي.

    Diagram that shows the creation of a personal access token.

  4. إنشاء رمز مميز للوصول الشخصي باستخدام هذه الإعدادات:

    • تجمعات الوكلاء: حدد قراءة وإدارة.

    • Build: حدد Read & execute.

    • التعليمات البرمجية: حدد قراءة وكتابة.

    • مجموعات المتغيرات: حدد قراءة وإنشاء وإدارة.

      اكتب قيمة الرمز المميز التي تم إنشاؤها.

    Diagram that shows the attributes of the personal access token.

تعريفات متغيرة

يتم تكوين مسارات التوزيع لاستخدام مجموعة من قيم المعلمات المعرفة مسبقا المعرفة باستخدام مجموعات متغيرة.

المتغيرات الشائعة

تستخدم كافة مسارات التوزيع المتغيرات الشائعة. يتم تخزينها في مجموعة متغيرة تسمى 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_varsion=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.

Screenshot that shows how to create a service connection.

حدد Azure Resource Manager كنوع اتصال الخدمة وكيان الخدمة (يدوي) كطريقة مصادقة. أدخل الاشتراك الهدف، وهو عادة اشتراك وحدة التحكم. أدخل تفاصيل كيان الخدمة. حدد التحقق للتحقق من صحة بيانات الاعتماد. لمزيد من المعلومات حول كيفية إنشاء كيان خدمة، راجع إنشاء كيان خدمة.

أدخل اسم اتصال الخدمة، على سبيل المثال، استخدم Connection to MGMT subscription. تأكد من تحديد مربع الاختيار Grant access permission to all pipelines. حدد التحقق والحفظ لحفظ اتصال الخدمة.

الأذونات

تضيف معظم المسارات ملفات إلى Azure Repos وبالتالي تتطلب أذونات سحب. في Project الإعدادات، ضمن قسم Repositories، حدد علامة التبويب Security لمستودع التعليمات البرمجية المصدر وقم بتعيين أذونات المساهمة إلى Build Service.

Screenshot that shows repository permissions.

توزيع وحدة التحكم

قد لا تكون المسارات التي تم إنشاؤها حديثاً مرئية في طريقة العرض الافتراضية. حدد علامة التبويب الأخيرة وارجع إلى كافة علامات التبويب لعرض المسارات الجديدة.

حدد مسار توزيع وحدة التحكم وأدخل أسماء التكوين للموزع ومكتبة SAP. حدد Run لنشر وحدة التحكم. تأكد من تحديد خانة الاختيار Deploy the configuration web application إذا كنت تريد إعداد تطبيق ويب التكوين.

تكوين وكيل Azure DevOps Services المُستضاف ذاتيًا

التكوين اليدوي مطلوب فقط إذا لم يتم تكوين عامل Azure DevOps Services تلقائيا. تحقق من أن تجمع العامل فارغ قبل المتابعة.

للاتصال بالموزع:

  1. قم بتسجيل الدخول إلى بوابة Azure.

  2. انتقل إلى مجموعة الموارد التي تحتوي على الجهاز الظاهري للموزع.

  3. الاتصال إلى الجهاز الظاهري باستخدام Azure Bastion.

  4. اسم المستخدم الافتراضي هو azureadm.

  5. حدد SSH Private Key من Azure Key Vault.

  6. حدد الاشتراك الذي يحتوي على مستوى التحكم.

  7. حدد مخزن مفاتيح التوزيع.

  8. من قائمة الأسرار، حدد السر الذي ينتهي ب -sshkey.

  9. اتصل بالجهاز الظاهري.

قم بتشغيل البرنامج النصي التالي لتكوين الموزع:

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.

الخطوة التالية