البرنامج التعليمي: نشر إطار عمل أتمتة توزيع SAP على نطاق المؤسسة

يوضح لك هذا البرنامج التعليمي كيفية إجراء عمليات التوزيع باستخدام SAP Deployment Automation Framework. يستخدم هذا المثال Azure Cloud Shell لتوزيع البنية الأساسية لوحدة التحكم. يُنشئ الجهاز الظاهري لتوزيع (VM) البنية الأساسية المتبقية وتكوينات SAP Hana.

في هذا البرنامج التعليمي، تنفذ المهام التالية:

  • نشر مستوى التحكم (البنية الأساسية للموزع والمكتبة).
  • نشر منطقة حمل العمل (الأفقي والنظام).
  • تنزيل/تحميل فاتورة المواد.
  • تكوين إعدادات نظام التشغيل القياسية وSAP الخاصة.
  • تثبيت قاعدة بيانات HANA.
  • تثبيت خادم SAP Central Services (SCS).
  • تحميل قاعدة بيانات HANA.
  • تثبيت خادم التطبيق الأساسي.

هناك ثلاث خطوات رئيسية لتوزيع SAP على Azure مع إطار عمل الأتمتة:

  1. إعداد المنطقة. يمكنك نشر المكونات لدعم إطار عمل أتمتة SAP في منطقة Azure محددة. في هذه الخطوة، يمكنك:

    1. إنشاء بيئة النشر.
    2. إنشاء تخزين مشترك لملفات حالة Terraform.
    3. إنشاء تخزين مشترك لوسائط تثبيت SAP.
  2. إعداد منطقة حمل العمل. يمكنك نشر مكونات منطقة حمل العمل، مثل الشبكة الظاهرية وخزائن المفاتيح.

  3. وزّع النظام. يمكنك نشر البنية الأساسية لنظام SAP.

هناك العديد من مهام سير العمل في عملية توزيع التنفيذ التلقائي. يركز هذا البرنامج التعليمي على سير عمل واحد لسهولة النشر. يمكنك نشر سير العمل هذا، بيئة SAP S4 HANA المستقلة، باستخدام Bash. يصف هذا البرنامج التعليمي التسلسل الهرمي العام والمراحل المختلفة للتوزيع.

نظرة عامة على البيئة

يحتوي SAP Deployment Automation Framework على مكونين رئيسيين:

  • توزيع البنية الأساسية (وحدة التحكم)
  • البنية الأساسية ل SAP (حمل عمل SAP)

يوضح الرسم البياني التالي التبعية بين وحدة التحكم ووحدة التطبيق.

Diagram that shows the DevOps tutorial infrastructure design.

يستخدم إطار العمل Terraform لنشر البنية الأساسية و Ansible لنظام التشغيل وتكوين التطبيق. يوضح الرسم التخطيطي التالي الفصل المنطقي لوحدة التحكم ومنطقة حمل العمل.

Diagram that shows the SAP Deployment Automation Framework environment.

منطقة الإدارة

تحتوي منطقة الإدارة على البنية الأساسية لوحدة التحكم التي يتم توزيع البيئات الأخرى منها. بعد نشر منطقة الإدارة، نادرا ما تحتاج إلى إعادة النشر، إن لم يكن ذلك من قبل.

Diagram that shows the control plane.

الموزع هو محرك تنفيذ إطار عمل أتمتة SAP. يتم استخدام هذا الجهاز الظاهري المكون مسبقا لتنفيذ أوامر Terraform و Ansible.

توفر مكتبة SAP التخزين الدائم لملفات حالة Terraform ووسائط تثبيت SAP التي تم تنزيلها لوحدة التحكم.

يمكنك تكوين الموزع والمكتبة في ملف متغير Terraform .tfvars . لمزيد من المعلومات، راجع تكوين مستوى التحكم.

منطقة حمل العمل

يحتوي تطبيق SAP عادةً على طبقات توزيع متعددة. على سبيل المثال، قد يكون لديك مستويات تطوير وتأكيد الجودة والإنتاج. يستدعي SAP Deployment Automation Framework مناطق حمل العمل هذه المستويات.

Diagram that shows the workload zone.

تحتوي منطقة حمل عمل SAP على الشبكات والمكونات المشتركة لأجهزة SAP الظاهرية. تتضمن هذه المكونات جداول التوجيه ومجموعات أمان الشبكة والشبكات الظاهرية. يوفر المشهد الفرصة لتقسيم عمليات التوزيع إلى بيئات مختلفة. لمزيد من المعلومات، راجع تكوين منطقة حمل العمل.

يتكون نشر النظام من الأجهزة الظاهرية لتشغيل تطبيق SAP، بما في ذلك طبقات الويب والتطبيق وقاعدة البيانات. لمزيد من المعلومات، راجع تكوين نظام SAP.

المتطلبات الأساسية

يتوفر مستودع SAP Deployment Automation Framework على GitHub.

تحتاج إلى نشر Azure Bastion أو استخدام عميل Secure Shell (SSH) للاتصال بالموزع. استخدم أي عميل SSH تشعر بالراحة معه.

مراجعة الحصة النسبية لاشتراك Azure

تأكد من أن اشتراكك في Azure يحتوي على اقتباس أساسي كاف لوحدات SKU العائلية DdSV4 وEdsV4 في المنطقة المحددة. يجب أن يكفي حوالي 50 نواة متاحة لكل عائلة VM.

حساب المستخدم S لتنزيل برنامج SAP

مطلوب حساب مستخدم SAP صالح (حساب مستخدم SAP أو S-User) مع امتيازات تنزيل البرنامج لتنزيل برنامج SAP.

قم بإعداد سحابة Shell

  1. انتقل إلى Azure Cloud Shell.

  2. سجّل الدخول إلى حساب Azure.

    az login
    

    مصادقة تسجيل الدخول. لا تغلق النافذة حتى يُطلب منك ذلك.

  3. تحقق من صحة اشتراكك النشط وسجل معرف الاشتراك الخاص بك:

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

    أو:

    az account list --output=table | grep True
    
  4. إذا لزم الأمر، قم بتغيير اشتراكك النشط.

    az account set --subscription <Subscription ID>
    

    تحقق من تغيير اشتراكك النشط.

    az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=table
    
  5. اختياريا، قم بإزالة كافة عناصر التوزيع. استخدم هذا الأمر عندما تريد إزالة كافة بقايا عناصر التوزيع السابقة.

    
    cd ~
    
    rm -rf Azure_SAP_Automated_Deployment .sap_deployment_automation .terraform.d
    
  6. قم بإنشاء مجلد التوزيع واستنساخ المستودع.

    mkdir -p ${HOME}/Azure_SAP_Automated_Deployment; cd $_
    
    git clone https://github.com/Azure/sap-automation-bootstrap.git config
    
    git clone https://github.com/Azure/sap-automation.git sap-automation
    
    git clone https://github.com/Azure/sap-automation-samples.git samples
    
    cp -Rp samples/Terraform/WORKSPACES ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
    
    
  7. اختياريا، تحقق من صحة إصدارات Terraform وAzure CLI المتوفرة على مثيل Cloud Shell.

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

    لتشغيل إطار عمل التنفيذ التلقائي، قم بتحديث الإصدارات التالية:

إنشاء كيان خدمة

يستخدم إطار عمل توزيع التنفيذ التلقائي SAP أساسيات الخدمة للتوزيع. إنشاء كيان خدمة لنشر وحدة التحكم الخاصة بك. تأكد من استخدام حساب لديه أذونات لإنشاء كيانات الخدمة.

عند اختيار اسم لكيان الخدمة، تأكد من أن الاسم فريد داخل مستأجر Azure.

  1. امنح أذونات المساهم الأساسي للخدمة ووصول المستخدم مسؤول istrator.

    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"
    

    راجع الإخراج. على سبيل المثال:

    {
        "appId": "<AppId>",
        "displayName": "<environment>-Deployment-Account ",
        "name": "<AppId>",
        "password": "<AppSecret>",
        "tenant": "<TenantId>"
    }
    
  2. انسخ تفاصيل الإخراج لأسفل. تأكد من حفظ قيم و appIdpasswordو.Tenant

    يتم تعيين الإخراج إلى المعلمات التالية. يمكنك استخدام هذه المعلمات في خطوات لاحقة، مع أوامر التشغيل الآلي.

    اسم إدخال المعلمة اسم الإخراج
    spn_id appId
    spn_secret password
    tenant_id tenant
  3. اختياريا، قم بتعيين دور المستخدم Access مسؤول istrator إلى كيان الخدمة.

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

هام

إذا لم تقم بتعيين دور المستخدم Access مسؤول istrator إلى كيان الخدمة، فلا يمكنك تعيين أذونات باستخدام التشغيل التلقائي.

تكوين بيانات اعتماد تطبيق الويب لمستوى التحكم

كجزء من وحدة التحكم في إطار عمل أتمتة SAP، يمكنك اختياريا إنشاء تطبيق ويب تفاعلي يساعدك في إنشاء ملفات التكوين المطلوبة.

Screenshot that shows the web app front page.

إنشاء تسجيل التطبيق

إذا كنت ترغب في استخدام تطبيق الويب، يجب أولا إنشاء تسجيل تطبيق لأغراض المصادقة. افتح Cloud Shell وقم بتشغيل الأوامر التالية:

استبدل LAB بالبيئة الخاصة بك، حسب الضرورة.

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

إشعار

تأكد من تسجيل الدخول باستخدام حساب مستخدم لديه الأذونات المطلوبة لإنشاء تسجيلات التطبيق. لمزيد من المعلومات حول تسجيلات التطبيقات، راجع إنشاء تسجيل تطبيق.

انسخ تفاصيل الإخراج لأسفل. تأكد من حفظ القيم ل App registration ID و App registration password.

يتم تعيين الإخراج إلى المعلمات التالية. يمكنك استخدام هذه المعلمات في خطوات لاحقة، مع أوامر التشغيل الآلي.

اسم إدخال المعلمة اسم الإخراج
app_registration_app_id App registration ID
webapp_client_secret App registration password

اعرض ملفات التكوين

  1. افتح Visual Studio Code من Cloud Shell.

    cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
    code .
    
  2. قم بتوسيع WORKSPACES الدليل. هناك ستة مجلدات فرعية: CONFIGURATIONو DEPLOYERLANDSCAPEوLIBRARYSYSTEM.BOMS قم بتوسيع كل من هذه المجلدات للعثور على ملفات تكوين التوزيع الإقليمية.

  3. ابحث عن ملفات متغيّر Terraform في المجلد الفرعي المناسب. على سبيل المثال، DEPLOYER قد يبدو ملف متغير Terraform مثل هذا المثال:

    # 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
    
    

    لاحظ مواقع الملفات المتغيرة Terraform لعمليات التحرير المستقبلية أثناء التوزيع.

  4. ابحث عن ملفات متغير Terraform لمكتبة SAP في المجلد الفرعي المناسب. على سبيل المثال، LIBRARY قد يبدو ملف متغير Terraform مثل هذا المثال:

    # 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
    

    لاحظ مواقع الملفات المتغيرة Terraform لعمليات التحرير المستقبلية أثناء التوزيع.

هام

تأكد من أن يطابق dns_label مثيل Azure Private DNS.

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

استخدم البرنامج النصي deploy_controlplane.sh لنشر الموزع والمكتبة. تشكل قطع التوزيع هذه وحدة التحكم لمنطقة التشغيل الآلي المختارة.

يمر التوزيع من خلال دورات توزيع البنية الأساسية وتحديث الحالة وتحميل ملفات حالة Terraform إلى حساب تخزين المكتبة. يتم تجميع كل هذه الخطوات في برنامج نصي واحد للتوزيع. يحتاج البرنامج النصي إلى موقع ملف التكوين للموزع والمكتبة وبعض المعلمات الأخرى.

على سبيل المثال، اختر غرب أوروبا كموقع للتوزيع، بالاسم SECEالمكون من أربعة أحرف ، كما هو موضح سابقا. يوجد نموذج ملف تكوين التوزيع LAB-SECE-DEP05-INFRASTRUCTURE.tfvars في المجلد ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/LAB-SECE-DEP05-INFRASTRUCTURE.

يوجد نموذج ملف تكوين مكتبة SAP LAB-SECE-SAP_LIBRARY.tfvars في المجلد ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/LAB-SECE-SAP_LIBRARY.

  1. تعيين متغيرات البيئة لمدير الخدمة:

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

    إذا كنت تقوم بتشغيل البرنامج النصي من محطة عمل ليست جزءا من شبكة التوزيع أو من Cloud Shell، يمكنك استخدام الأمر التالي لتعيين متغير البيئة للسماح بالاتصال من عنوان IP الخاص بك:

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

    إذا كنت تقوم بنشر تطبيق ويب التكوين، تحتاج أيضا إلى تعيين متغيرات البيئة التالية:

    
    export TF_VAR_app_registration_app_id=<appRegistrationId>
    export    TF_VAR_webapp_client_secret=<appRegistrationPassword>
    export                  TF_use_webapp=true
    
  2. أنشئ الموزع ومكتبة SAP وأضف تفاصيل كيان الخدمة إلى مخزن مفاتيح النشر باستخدام هذا البرنامج النصي:

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

    إذا واجهت مشكلات في المصادقة، فقم بتشغيل az logout لتسجيل الخروج ومسح token-cache. ثم قم بتشغيل az login لإعادة المصادقة.

    انتظر حتى يقوم إطار عمل الأتمتة بتشغيل عمليات plan Terraform و apply.

    قد يتم تشغيل نشر الموزع لمدة من 15 إلى 20 دقيقة تقريبا.

    تحتاج إلى ملاحظة بعض القيم للخطوات القادمة. ابحث عن كتلة النص هذه في الإخراج:

    #########################################################################################
    #                                                                                       #
    #  Please save these values:                                                            #
    #     - Key Vault: LABSECEDEP05user39B                                                  #
    #     - Deployer IP: x.x.x.x                                                            #
    #     - Storage Account: labsecetfstate53e                                              #
    #     - Web Application Name: lab-sece-sapdeployment39B                                 #
    #     - App registration Id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx                       #
    #                                                                                       #
    #########################################################################################
    
  3. انتقل إلى مدخل Azure.

    حدد Resource groups. ابحث عن مجموعات موارد جديدة للبنية التحتية للتوزيع والمكتبة. على سبيل المثال، قد ترى LAB-[region]-DEP05-INFRASTRUCTURE و LAB-[region]-SAP_LIBRARY.

    يتم عرض محتويات التوزيع ومجموعة موارد مكتبة SAP هنا.

    Screenshot that shows deployer resources.

    Screenshot that shows library resources.

    يتم الآن وضع ملف حالة Terraform في حساب التخزين الذي يحتوي اسمه على tfstate. يحتوي حساب التخزين على حاوية تسمى tfstate بملفات حالة الموزع والمكتبة. تظهر محتويات الحاوية tfstate بعد نشر وحدة التحكم بنجاح هنا.

    Screenshot that shows the control plane Terraform state files.

المشكلات والحلول الشائعة

فيما يلي بعض تلميحات استكشاف الأخطاء وإصلاحها:

  • إذا تلقيت الخطأ التالي لإنشاء وحدة التوزيع، فتأكد من أنك في WORKSPACES الدليل عند تشغيل البرنامج النصي:

    Incorrect parameter file.
    The file must contain the environment attribute!!
    
  • الخطأ التالي عابر. أعد تشغيل نفس الأمر، deploy_controlplane.sh.

    Error: file provisioner error
    ..
    timeout - last error: dial tcp
    
  • إذا كانت لديك مشكلات في المصادقة مباشرة بعد تشغيل البرنامج النصي deploy_controlplane.sh، فقم بتشغيل هذا الأمر:

    az logout
    
    az login
    

الاتصال إلى الجهاز الظاهري للموزع

بعد نشر مستوى التحكم، يتم تخزين حالة Terraform باستخدام الواجهة الخلفية البعيدة azurerm. تتوافر جميع الأسرار الخاصة بالاتصال بالجهاز الظاهري للموزع في خزنة مفاتيح في مجموعة موارد جهة التوزيع.

للاتصال بالجهاز الظاهري للموزع:

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

  2. حدد أو ابحث عن خزانات المفاتيح.

  3. في صفحة خزنة المفاتيح، ابحث عن خزنة مفاتيح التوزيع. يبدأ الاسم بـ LAB[REGION]DEP05user. تصفية حسب مجموعة الموارد أو الموقع، إذا لزم الأمر.

  4. في قسم الإعدادات في الجزء الأيمن، حدد Secrets.

  5. ابحث عن السر الذي يحتوي على مفتاح sshkey وحدده. قد يبدو مثل LAB-[REGION]-DEP05-sshkey.

  6. في صفحة البيانات السرية، حدد الإصدار الحالي. ثم انسخ القيمة السرية.

  7. افتح محرر نص عادي. انسخ قيمة البيانات السرية.

  8. احفظ الملف حيث تحتفظ بمفاتيح SSH. على سبيل المثال، استخدم C:\\Users\\<your-username>\\.ssh.

  9. حفظ الملف. إذا طُلب منك حفظ كنوع، فحدد All files إذا لم يكن SSH خياراً. على سبيل المثال، استخدم deployer.ssh.

  10. الاتصال إلى الجهاز الظاهري للموزع من خلال أي عميل SSH، مثل Visual Studio Code. استخدم عنوان IP العام الذي لاحظته سابقا ومفتاح SSH الذي قمت بتنزيله. للحصول على إرشادات حول كيفية الاتصال بالموزع باستخدام Visual Studio Code، راجع الاتصال إلى الموزع باستخدام Visual Studio Code. إذا كنت تستخدم PuTTY، فحول ملف مفتاح SSH أولا باستخدام PuTTYGen.

إشعار

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

تأكد من أن الملف الذي تستخدمه لحفظ مفتاح SSH يمكنه حفظ الملف باستخدام التنسيق الصحيح، أي بدون أحرف إرجاع حرف (CR). استخدم Visual Studio Code أو المفكرة++.

بعد الاتصال بالجهاز الظاهري للموزع، يمكنك تنزيل برنامج SAP باستخدام Bill of Materials (BOM).

الاتصال إلى الجهاز الظاهري للموزع عندما لا تستخدم عنوان IP عاما

بالنسبة إلى عمليات النشر دون اتصال IP عام، لا يسمح بالاتصال المباشر عبر الإنترنت. في هذه الحالات، يمكنك استخدام مربع انتقال Azure Bastion أو يمكنك تنفيذ الخطوة التالية من كمبيوتر لديه اتصال بشبكة Azure الظاهرية.

يستخدم المثال التالي Azure Bastion.

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

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

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

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

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

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

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

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

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

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

يجب تنفيذ بقية المهام على الموزع.

تأمين مستوى التحكم

وحدة التحكم هي الجزء الأكثر أهمية من إطار عمل أتمتة SAP. من المهم تأمين وحدة التحكم. تساعدك الخطوات التالية على تأمين وحدة التحكم.

يجب تحديث ملف وحدة tfvars التحكم لتمكين نقاط النهاية الخاصة ولحظر الوصول العام إلى حسابات التخزين وخزائن المفاتيح.

  1. لنسخ ملفات تكوين وحدة التحكم إلى الجهاز الظاهري للموزع، يمكنك استخدام sync_deployer.sh البرنامج النصي. سجل الدخول إلى الجهاز الظاهري للموزع وقم بتحديث الأمر التالي لاستخدام اسم حساب تخزين حالة Terraform. ثم قم بتشغيل البرنامج النصي التالي:

    
    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
    
    
    

    ينسخ tfvars هذا الأمر ملفات التكوين من حساب تخزين مكتبة SAP إلى الجهاز الظاهري للموزع.

  2. قم بتغيير ملفات التكوين لمستوى التحكم إلى:

    
        # use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled
        use_private_endpoint = true
    
        # enable_firewall_for_keyvaults_and_storage defines that the storage accounts and key vaults have firewall enabled
        enable_firewall_for_keyvaults_and_storage = true
    
        # public_network_access_enabled controls if storage account and key vaults have public network access enabled
        public_network_access_enabled = false
    
        #if you want to use the webapp
        use_webapp=true 
    
    
  3. أعد تشغيل النشر لتطبيق التغييرات. تحديث اسم حساب التخزين واسم مخزن المفاتيح في البرنامج النصي.

    
    export ARM_SUBSCRIPTION_ID="<subscriptionId>"
    export       ARM_CLIENT_ID="<appId>"
    export   ARM_CLIENT_SECRET="<password>"
    export       ARM_TENANT_ID="<tenantId>"
    
    
  4. إنشاء الموزع ومكتبة SAP.

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

نشر تطبيق الويب

يمكنك نشر تطبيق الويب باستخدام البرنامج النصي التالي:

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 

جمع معلومات منطقة حمل العمل

  1. جمع المعلومات التالية في محرر نصوص. تم جمع هذه المعلومات في نهاية مرحلة "نشر وحدة التحكم".

    1. اسم حساب تخزين ملف حالة Terraform في مجموعة موارد المكتبة:

      • متابعة من المثال السابق، مجموعة الموارد هي LAB-SECE-SAP_LIBRARY.
      • يحتوي اسم حساب التخزين على labsecetfstate.
    2. اسم key vault في مجموعة موارد التوزيع:

      • متابعة من المثال السابق، مجموعة الموارد هي LAB-SECE-DEP05-INFRASTRUCTURE.
      • يحتوي اسم خزنة المفاتيح على LABSECEDEP05user.
    3. عنوان IP العام للجهاز الظاهري للموزع. انتقل إلى مجموعة موارد جهة التوزيع الخاصة بك، وافتح الجهاز الظاهري الخاص بالتوزيع، وانسخ عنوان IP العام.

  2. تحتاج إلى جمع المعلومات التالية:

    1. تم العثور على اسم ملف حالة التوزيع ضمن مجموعة موارد المكتبة:
      • حدد Library resource group>State storage account>Containers.>tfstate انسخ اسم ملف حالة التوزيع.
      • بعد المثال السابق، اسم الكائن الثنائي كبير الحجم هو LAB-SECE-DEP05-INFRASTRUCTURE.terraform.tfstate.
  3. إذا لزم الأمر، قم بتسجيل كيان الخدمة. بالنسبة لهذا البرنامج التعليمي، هذه الخطوة غير مطلوبة.

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

    export ARM_SUBSCRIPTION_ID="<subscriptionId>"
    export       ARM_CLIENT_ID="<appID>"
    export   ARM_CLIENT_SECRET="<password>"
    export       ARM_TENANT_ID="<tenant>"
    export           key_vault="<vaultName>"
    export            env_code="LAB"
    export         region_code="SECE"
    
    export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
    export         CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"
    
    
    
    ${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/set_secrets.sh \
        --environment "${env_code}"                           \
        --region "${region_code}"                             \
        --vault "${key_vault}"                                \
        --subscription "${ARM_SUBSCRIPTION_ID}"               \
        --spn_id "${ARM_CLIENT_ID}"                           \
        --spn_secret "${ARM_CLIENT_SECRET}"                   \
        --tenant_id "${ARM_TENANT_ID}"
    

إعداد توزيع منطقة حمل العمل

قم بالاتصال بجهاز التوزيع الظاهري الخاص بك للخطوات التالية. نسخة من المستودع هناك الآن.

توزيع منطقة حمل العمل

استخدم البرنامج النصي install_workloadzone لتوزيع منطقة حمل عمل SAP.

  1. على الجهاز الظاهري للموزع، انتقل إلى Azure_SAP_Automated_Deployment المجلد .

    cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/LAB-SECE-SAP04-INFRASTRUCTURE
    
  2. اختياريا، افتح ملف تكوين منطقة حمل العمل، وإذا لزم الأمر، قم بتغيير الاسم المنطقي للشبكة لمطابقة اسم الشبكة.

  3. بدء نشر منطقة حمل العمل. التفاصيل التي جمعتها سابقا مطلوبة هنا:

    • اسم ملف التوزيع tfstate (الموجود في الحاوية tfstate )
    • tfstate اسم حساب التخزين
    • اسم مخزن مفتاح التوزيع

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

يجب أن يبدأ توزيع منطقة حمل العمل تلقائياً.

انتظر حتى انتهاء عملية التوزيع. تظهر مجموعة الموارد الجديدة في مدخل Microsoft Azure.

استعد لتوزيع البنية الأساسية لنظام SAP

قم بالاتصال بجهاز التوزيع الظاهري الخاص بك للخطوات التالية. نسخة من المستودع هناك الآن.

انتقل إلى WORKSPACES/SYSTEM المجلد وانسخ ملفات التكوين النموذجية لاستخدامها من المستودع.

نشر البنية الأساسية لنظام SAP

بعد انتهاء منطقة حمل العمل، يمكنك نشر موارد البنية الأساسية لنظام SAP. يقوم نظام SAP بإنشاء أجهزة ظاهرية ومكونات داعمة لتطبيق SAP الخاص بك. استخدم البرنامج النصي installer.sh لتوزيع نظام SAP.

توزيع نظام SAP:

  • طبقة قاعدة البيانات، التي تنشر أجهزة ظاهرية لقاعدة البيانات وأقراصها ومثيل Azure Standard Load Balancer. يمكنك تشغيل قواعد بيانات HANA أو قواعد بيانات AnyDB في هذه الطبقة.
  • طبقة SCS، التي تنشر عددا محددا من قبل العميل من الأجهزة الظاهرية ومثيل Azure Standard Load Balancer.
  • طبقة التطبيق، التي توزع الأجهزة الظاهرية وأقراصها.
  • مستوى Web Dispatcher.

توزيع نظام SAP.


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

تفحص أن مجموعة موارد النظام موجودة الآن في مدخل Microsoft Azure.

الحصول على برنامج SAP باستخدام فاتورة المواد

يوفر لك إطار عمل الأتمتة أدوات لتنزيل البرامج من SAP باستخدام SAP BOM. يتم تنزيل البرنامج إلى مكتبة SAP، والتي تعمل كأرشيف لجميع الوسائط المطلوبة لنشر SAP.

يحاكي SAP BOM مخطط صيانة SAP. هناك معرّفات منتجات ذات صلة ومجموعة من عناوين URL للتنزيل.

يبدو نموذج استخراج ملف BOM مثل هذا المثال:


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

بالنسبة إلى مثال التكوين هذا، فإن مجموعة الموارد هي LAB-SECE-DEP05-INFRASTRUCTURE. يحتوي LABSECEDEP05user اسم مخزن مفاتيح التوزيع على الاسم. يمكنك استخدام هذه المعلومات لتكوين أسرار خزنة المفاتيح الخاصة بالتوزيع.

  1. قم بالاتصال بجهاز التوزيع الظاهري الخاص بك للخطوات التالية. نسخة من المستودع هناك الآن.

  2. أضف سراً باسم المستخدم لحساب مستخدم SAP الخاص بك. استبدل <vaultName> باسم خزنة مفاتيح التوزيع الخاصة بك. استبدل أيضاً <sap-username> باسم مستخدم SAP الخاص بك.

    export key_vault=<vaultName>
        sap_username=<sap-username>
    
    az keyvault secret set --name "S-Username" --vault-name $key_vault --value "${sap_username}";
    
  3. أضف سراً باستخدام كلمة المرور لحساب مستخدم SAP الخاص بك. استبدل <vaultName> باسم مخزن مفاتيح النشر واستبدل <sap-password> بكلمة مرور SAP الخاصة بك.

    إشعار

    يعد استخدام علامات اقتباس مفردة عند تعيينها sap_user_password أمرا مهما. يمكن أن يؤدي استخدام أحرف خاصة في كلمة المرور إلى نتائج غير متوقعة.

    sap_user_password='<sap-password>'
    
    az keyvault secret set --name "S-Password" --vault-name "${key_vault}" --value="${sap_user_password}";
    
  4. قم بتكوين ملف معلمات SAP لعملية التنزيل. ثم قم بتنزيل برنامج SAP باستخدام أدلة المبادئ Ansible. شغّل الأوامر التالية:

    cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
    mkdir BOMS
    cd BOMS
    
    vi sap-parameters.yaml
    
  5. bom_base_name قم بتحديث باسم BOM. استبدل <Deployer KeyVault Name> باسم Azure key vault لمجموعة موارد التوزيع.

    يجب أن يبدو ملفك مشابهاً لتكوين المثال التالي:

    
    bom_base_name:                 S42022SPS00_v0001ms
    deployer_kv_name:              <vaultName>
    BOM_directory:                 ${HOME}/Azure_SAP_Automated_Deployment/samples/SAP
    
    
  6. قم بتشغيل دليل المبادئ Ansible لتنزيل البرنامج. إحدى الطرق التي يمكنك من خلالها تشغيل أدلة المبادئ هي استخدام قائمة Downloader . download_menu تشغيل البرنامج النصي.

    ${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/download_menu.sh
    
  7. حدد أدلة المبادئ التي سيتم تشغيلها.

    1) BoM Downloader
    3) Quit
    Please select playbook:
    

    حدد دليل المبادئ 1) BoM Downloader لتنزيل برنامج SAP الموضح في ملف BOM في حساب التخزين. تفحص أن الحاوية sapbits تحتوي على جميع الوسائط الخاصة بك لتثبيتها.

    يمكنك تشغيل دليل المبادئ باستخدام قائمة التكوين أو مباشرة من سطر الأوامر.

    
    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
    
    
    

    إذا أردت، يمكنك أيضا تمرير بيانات اعتماد مستخدم SAP كمعلمات.

    
    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

يتم تثبيت تطبيق SAP من خلال دليل المبادئ Ansible.

انتقل إلى مجلد نشر النظام.

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

تأكد من أن لديك الملفات التالية في المجلدات الحالية: sap-parameters.yaml و L00_host.yaml.

بالنسبة لنظام SAP S/4HANA مستقل، هناك ثمانية أدلة مبادئ لتشغيلها بالتسلسل. إحدى الطرق التي يمكنك من خلالها تشغيل أدلة المبادئ هي استخدام قائمة التكوين.

configuration_menu تشغيل البرنامج النصي.

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

Diagram that shows the SAP Deployment Automation Ansible configuration menu.

اختر أدلة المبادئ لتشغيلها.

Playbook: تكوين نظام التشغيل الأساسي

يقوم دليل المبادئ هذا بإعداد تكوين نظام التشغيل العام على جميع الأجهزة، والذي يتضمن تكوين مستودعات البرامج والحزم والخدمات.

يمكنك تشغيل دليل المبادئ باستخدام قائمة التكوين أو سطر الأوامر.


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

يقوم دليل المبادئ هذا بتنفيذ إعداد تكوين نظام التشغيل SAP على جميع الأجهزة. وتشمل الخطوات إنشاء مجموعات وحدة التخزين وأنظمة الملفات وتكوين مستودعات البرامج والحزم والخدمات.

يمكنك تشغيل دليل المبادئ باستخدام قائمة التكوين أو سطر الأوامر.


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

دليل المبادئ: معالجة قائمة مكونات الصنف

يقوم دليل المبادئ هذا بتنزيل برنامج SAP إلى جهاز SCS الظاهري.

يمكنك تشغيل دليل المبادئ باستخدام قائمة التكوين أو سطر الأوامر.


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

يقوم دليل المبادئ هذا بتثبيت SAP Central Services. بالنسبة للتكوينات عالية التوفر، يقوم دليل المبادئ أيضا بتثبيت مثيل SAP ERS وتكوين Pacemaker.

يمكنك تشغيل دليل المبادئ باستخدام قائمة التكوين أو سطر الأوامر.


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: تثبيت مثيل قاعدة البيانات

يقوم دليل المبادئ هذا بتثبيت مثيلات قاعدة البيانات.

يمكنك تشغيل دليل المبادئ باستخدام قائمة التكوين أو سطر الأوامر.


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: تحميل قاعدة البيانات

يستدعي دليل المبادئ هذا مهمة تحميل قاعدة البيانات من خادم التطبيق الأساسي.

يمكنك تشغيل دليل المبادئ باستخدام قائمة التكوين أو سطر الأوامر.


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: إعداد قابلية وصول عالية لقاعدة البيانات

يقوم دليل المبادئ هذا بتكوين قابلية الوصول العالية لقاعدة البيانات. بالنسبة إلى HANA، فإنه يستلزم النسخ المتماثل لنظام HANA و Pacemaker لقاعدة بيانات HANA.

يمكنك تشغيل دليل المبادئ باستخدام قائمة التكوين أو سطر الأوامر.


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: تثبيت خادم التطبيق الأساسي

يقوم دليل المبادئ هذا بتثبيت خادم التطبيق الأساسي. يمكنك تشغيل دليل المبادئ باستخدام قائمة التكوين أو سطر الأوامر.


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: تثبيتات خادم التطبيق

يقوم دليل المبادئ هذا بتثبيت خوادم التطبيق. يمكنك تشغيل دليل المبادئ باستخدام قائمة التكوين أو سطر الأوامر.


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

يقوم دليل المبادئ هذا بتثبيت Web Dispatchers. يمكنك تشغيل دليل المبادئ باستخدام قائمة التكوين أو سطر الأوامر.

لقد قمت الآن بنشر وتكوين نظام HANA مستقل. إذا كنت بحاجة إلى تكوين قاعدة بيانات SAP HANA عالية التوفر (HA)، فقم بتشغيل دليل مبادئ HANA HA.


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

تنظيف التثبيت

من المهم تنظيف تثبيت SAP الخاص بك من هذا البرنامج التعليمي بعد الانتهاء. بخلاف ذلك، ستستمر في تكبد التكاليف المتعلقة بالموارد.

لإزالة بنية SAP الأساسية التي قمت بتوزيعها بالكامل، تحتاج إلى:

  • إزالة موارد البنية الأساسية لنظام SAP.
  • إزالة جميع مناطق حمل العمل (الأفقي).
  • إزالة مستوى التحكم.

قم بتشغيل إزالة موارد البنية الأساسية ل SAP ومناطق حمل العمل من الجهاز الظاهري للموزع. قم بتشغيل إزالة وحدة التحكم من Cloud Shell.

قبل البدء، سجل الدخول إلى حساب Azure الخاص بك. بعد ذلك، تفحص اشتراكك الصحيح.

إزالة البنية الأساسية ل SAP

انتقل إلى LAB-SECE-SAP01-L00 المجلد الفرعي داخل SYSTEM المجلد. بعد ذلك، قم بتشغيل هذا الأمر:

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

انتقل إلى LAB-XXXX-SAP01-INFRASTRUCTURE المجلد الفرعي داخل LANDSCAPE المجلد. ثم قم بتشغيل الأمر التالي:


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

قم بإزالة وحدة التحكم

تسجيل الدخول إلى Cloud Shell.

انتقل إلى المجلد WORKSPACES.

cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/

تصدير متغيري البيئة التاليين:

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

شغّل الأمر التالي:

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

تحقق من تنظيف جميع الموارد.

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