تمكين Azure Automation State Configuration

إشعار

سيتم إيقاف Azure Automation State Configuration في 30 سبتمبر 2027، يرجى الانتقال إلى Azure Machine Configuration بحلول ذلك التاريخ. لمزيد من المعلومات، راجع إعلان نشر المدونة. تجمع خدمة Azure Machine Configuration بين ميزات ملحق DSC، وتكوين حالة أتمتة Azure، والميزات الأكثر شيوعا المطلوبة من ملاحظات العملاء. يتضمن تكوين جهاز Azure أيضا دعم الجهاز المختلط من خلال الخوادم الممكنة بواسطة Arc.

تنبيه

تم إيقاف Azure Automation DSC ل Linux في 30 سبتمبر 2023. لمزيد من المعلومات، راجع الإعلان.

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

تمكين Azure VMs

باستخدام Azure Automation State Configuration، تستطيع تمكين Azure VMs بسهولة لإدارة التكوين عن طريق مدخل Azure أو قوالب Azure Resource Manager أو PowerShell. يسجل ملحق Azure VM Desired State Configuration الجهاز الظاهري مع Azure Automation State Configuration تلقائيا. بما أنه يتم تشغيل ملحق Azure بشكل غير متزامن، يمكنك تعقب مدى تقدمه عن طريق التحقق من حالة إعداد الجهاز الظاهري.

إشعار

يستخدم توزيع DSC على عقدة Linux مجلد /tmp. يتم تنزيل الوحدات مثل nxautomation مؤقتا للتحقق من صحتها قبل تثبيتها في المواقع المناسبة. للتأكد من تثبيت الوحدات بشكل صحيح، يحتاج عامل Log Analytics لـ Linux أذونات القراءة/الكتابة على المجلد /tmp. يتم تشغيل عامل Log Analytics لـ Linux باعتباره مستخدم omsagent. لمنح >إذن omsagent الكتابة للمستخدم، قم بتشغيل الأمر setfacl -m u:omsagent:rwx /tmp.

تمكين جهاز ظاهري باستخدام مدخل Azure

لتمكين Azure VM لـ State Configuration من خلال مدخل Azure:

  1. انتقل إلى حساب Azure Automation حيث سيكون باستطاعتك تمكين الأجهزة الظاهرية.
  2. في صفحة State Configuration، حدد علامة التبويب Nodes ، ثم حدد Add.
  3. اختر جهاز ظاهري لتمكينه.
  4. إذا لم يكن الجهاز يحتوي على ملحق الحالة المطلوبة PowerShell مثبتا وحالة الطاقة قيد التشغيل، فحدد اتصال.
  5. ضمن تسجيل، أدخل قيم PowerShell DSC Local Configuration Manager المطلوبة لحالة الاستخدام. بشكل اختياري، يمكنك إدخال تكوين عقدة لتعيينها إلى جهاز ظاهري.

تمكين جهاز ظاهري

تمكين جهاز ظاهري باستخدام قوالب Azure Resource Manager

يمكنك تثبيت جهاز ظاهري وتمكينه لـ State Configuration باستخدام قوالب Azure Resource Manager. راجع الخادم المُدار بواسطة خدمة Desired State Configuration للحصول على نموذج قالب يمكّن جهاز ظاهري موجود لـ State Configuration. إذا كنت تدير مجموعة مقياس جهاز ظاهري، فشاهد نموذج القالب في تكوين مجموعة مقياس الجهاز الظاهري المدار بواسطة Azure Automation.

تمكين الأجهزة باستخدام PowerShell

يمكنك استخدام Register-AzAutomationDscNode cmdlet في PowerShell لتمكين الأجهزة الظاهرية لـ State Configuration.

إشعار

يتم Register-AzAutomationDscNodeتنفيذ cmdlet حالياً فقط للأجهزة التي تعمل بنظام التشغيل Windows، وذلك أنه يشغّل فقط ملحق Windows.

تسجيل الأجهزة الظاهرية عبر اشتراكات Azure

أفضل طريقة لتسجيل الأجهزة الظاهرية من اشتراكات Azure الأخرى هي استخدام ملحق DSC في قالب توزيع Azure Resource Manager. يتم توفير الأمثلة في ملحق Desired State Configuration مع قوالب Azure Resource Manager.

استخدام تكوين تعريف DSC لتسجيل الأجهزة المختلطة

يمكنك تمكين الأجهزة بشكل آمن لحساب Azure Automation من خلال تكوين تعريف DSC. تستخدم البروتوكولات المنفذة في DSC معلومات من تكوين التعريف للمصادقة على تكوين حالة أتمتة Azure. تسجل العقدة مع الخدمة في عنوان URL للتسجيل وتصادق باستخدام مفتاح التسجيل. أثناء التسجيل، تتفاوض عقدة DSC وخدمة DSC على شهادة فريدة للعقدة لاستخدامها للمصادقة على الخادم بعد التسجيل. تمنع هذه العملية العقد الممكّنة من انتحال بعضها صفة الآخر، على سبيل المثال، إذا تم اختراق عقدة وصارت ضارة. بعد التسجيل، لا يتم استخدام مفتاح التسجيل للمصادقة مرة أخرى، ويتم حذفه من العقدة.

يمكنك الحصول على المعلومات المطلوبة لبروتوكول تسجيل State Configuration من Keys ضمن Account Settings في مدخل Azure.

مفاتيح Azure automation وعنوان URL

  • عنوان URL للتسجيل هو حقل URL في صفحة Keys.
  • مفتاح التسجيل هو قيمة الحقل مفتاح الوصول الأساسي أو الحقل مفتاح الوصول الثانوي في صفحة Keys. يمكن; استخدام أي من المفتاحين.

لمزيد من الأمان، يمكنك إعادة إنشاء مفاتيح الوصول الأساسية والثانوية لحساب Automation في أي وقت على الصفحة Keys. تمنع إعادة إنشاء المفاتيح تسجيلات العقد المستقبلية من استخدام المفاتيح السابقة.

إنشاء تكوينات تعريف DSC

لتمكين أي جهاز لـ State Configuration، يمكنك إنشاء تكوين تعريف DSC. يطلب هذا التكوين من عامل DSC سحب من و/أو الإبلاغ إلى Azure Automation State Configuration. يمكنك إنشاء تكوين تعريف DSC لـ Azure Automation State Configuration باستخدام تكوين PowerShell DSC أو Azure Automation PowerShell cmdlets.

إشعار

تحتوي تكوينات تعريف DSC على البيانات السرية اللازمة لتمكين جهاز في حساب Automation لإدارته. تأكد من توفير الحماية الملائمة لأي تكوينات تعريف تنشئها لـ DSC أو احذفها بعد الاستخدام.

يتحكم Local Configuration Manager (LCM) في دعم الوكيل لتكوينات التعريف. يعمل LCM على جميع العُقد المستهدفة وهو مسؤول عن استدعاء موارد التكوين المضمّنة في البرنامج النصي لتكوين تعريف DSC. يمكنك تضمين دعم الوكيل في تكوين تعريف عن طريق تضمين تعريفات ProxyURL وخصائص ProxyCredential حسب الحاجة في كتل ConfigurationRepositoryWeb وResourceRepositoryWeb وReportServerWeb. مثال على إعداد URL هو ProxyURL = "http://172.16.3.6:3128";. تُعين خاصية ProxyCredentialعلى عنصر PSCredential، كما هو موضح في إدارة بيانات الاعتماد في Azure Automation.

إنشاء تكوينات تعريف DSC باستخدام تكوين DSC

  1. افتح محرر نص، مثل Visual Studio Code (VS Code)، كمسؤول على جهاز في بيئتك المحلية. يجب أن يكون الإصدار الأخير من WMF 5 مثبتاً على الجهاز.

  2. انسخ البرنامج النصي التالي محلياً. هذا البرنامج النصي يحتوي على تكوين PowerShell DSC لإنشاء تكوينات التعريف، وأمر لبدء إنشاء تكوين التعريف.

    إشعار

    أسماء State Configuration Node Configuration حساسة لحالة الأحرف في مدخل Azure. إذا كانت الحالة غير متطابقة، tلن تظهر العقدة تحت علامة التبويب العُقد.

    # The DSC configuration that will generate metaconfigurations
    [DscLocalConfigurationManager()]
    Configuration DscMetaConfigs
    {
         param
         (
             [Parameter(Mandatory=$True)]
             [String]$RegistrationUrl,
    
             [Parameter(Mandatory=$True)]
             [String]$RegistrationKey,
    
             [Parameter(Mandatory=$True)]
             [String[]]$ComputerName,
    
             [Int]$RefreshFrequencyMins = 30,
    
             [Int]$ConfigurationModeFrequencyMins = 15,
    
             [String]$ConfigurationMode = 'ApplyAndMonitor',
    
             [String]$NodeConfigurationName,
    
             [Boolean]$RebootNodeIfNeeded= $False,
    
             [String]$ActionAfterReboot = 'ContinueConfiguration',
    
             [Boolean]$AllowModuleOverwrite = $False,
    
             [Boolean]$ReportOnly
         )
    
         if(!$NodeConfigurationName -or $NodeConfigurationName -eq '')
         {
             $ConfigurationNames = $null
         }
         else
         {
             $ConfigurationNames = @($NodeConfigurationName)
         }
    
         if($ReportOnly)
         {
             $RefreshMode = 'PUSH'
         }
         else
         {
             $RefreshMode = 'PULL'
         }
    
         Node $ComputerName
         {
             Settings
             {
                 RefreshFrequencyMins           = $RefreshFrequencyMins
                 RefreshMode                    = $RefreshMode
                 ConfigurationMode              = $ConfigurationMode
                 AllowModuleOverwrite           = $AllowModuleOverwrite
                 RebootNodeIfNeeded             = $RebootNodeIfNeeded
                 ActionAfterReboot              = $ActionAfterReboot
                 ConfigurationModeFrequencyMins = $ConfigurationModeFrequencyMins
             }
    
             if(!$ReportOnly)
             {
             ConfigurationRepositoryWeb AzureAutomationStateConfiguration
                 {
                     ServerUrl          = $RegistrationUrl
                     RegistrationKey    = $RegistrationKey
                     ConfigurationNames = $ConfigurationNames
                 }
    
                 ResourceRepositoryWeb AzureAutomationStateConfiguration
                 {
                     ServerUrl       = $RegistrationUrl
                     RegistrationKey = $RegistrationKey
                 }
             }
    
             ReportServerWeb AzureAutomationStateConfiguration
             {
                 ServerUrl       = $RegistrationUrl
                 RegistrationKey = $RegistrationKey
             }
         }
    }
    
    # Create the metaconfigurations
    # NOTE: DSC Node Configuration names are case sensitive in the portal.
    # TODO: edit the below as needed for your use case
    $Params = @{
         RegistrationUrl = '<fill me in>';
         RegistrationKey = '<fill me in>';
         ComputerName = @('<some VM to onboard>', '<some other VM to onboard>');
         NodeConfigurationName = 'SimpleConfig.webserver';
         RefreshFrequencyMins = 30;
         ConfigurationModeFrequencyMins = 15;
         RebootNodeIfNeeded = $False;
         AllowModuleOverwrite = $False;
         ConfigurationMode = 'ApplyAndMonitor';
         ActionAfterReboot = 'ContinueConfiguration';
         ReportOnly = $False;  # Set to $True to have machines only report to AA DSC but not pull from it
    }
    
    # Use PowerShell splatting to pass parameters to the DSC configuration being invoked
    # For more info about splatting, run: Get-Help -Name about_Splatting
    DscMetaConfigs @Params
    
  3. املأ مفتاح التسجيل وعنوان URL لحساب التنفيذ التلقائي وأسماء الأجهزة التي يجب تمكينها. المعلّمات الأخرى اختيارية. للعثور على مفتاح التسجيل وعنوان URL للتسجيل لحساب التنفيذ التلقائي الخاص بك، راجع استخدام تكوين تعريف DSC لتسجيل الأجهزة المختلطة.

  4. إذا كنت تريد أن تقوم الأجهزة بالإبلاغ عن معلومات حالة DSC إلى Azure Automation State Configuration لكن دون سحب التكوين أو وحدات PowerShell، فعيّن المعلّمة ReportOnly على true.

  5. إذا ReportOnly لم يتم تعيين، تقوم الأجهزة بالإبلاغ عن معلومات حالة DSC إلى تكوين حالة أتمتة Azure وتكوين السحب أو وحدات PowerShell النمطية. قم بتعيين المعلّمات وفقا لذلك في كتل ConfigurationRepositoryWeb وResourceRepositoryWeb وReportServerWeb.

  6. قم بتشغيل البرنامج النصي لا بد أن يكون لديك الآن مجلد الدليل المشغّل المُسمى DscMetaConfigs، والذي يحتوي على تكوينات التعريف من PowerShell DSC للأجهزة المطلوب تمكينها (كمسؤول).

    Set-DscLocalConfigurationManager -Path ./DscMetaConfigs
    

إنشاء تكوينات تعريف DSC باستخدام Azure Automation cmdlets

يمكنك إنشاء تكوينات تعريف DSC باستخدام أوامر Cmdlets Azure Automation في ظل الشروط التالية:

  • تتطابق الإعدادات الافتراضية ل LCM مع حالة الاستخدام الخاصة بك
  • تريد تمكين الأجهزة من السحب من تكوين حالة التنفيذ التلقائي في Azure والإبلاغ عنه

استخدم الخطوات التالية لإنشاء تكوينات التعريف:

  1. افتح وحدة تحكم PowerShell أو VS Code كمسؤول على جهاز في بيئتك المحلية.

  2. اتصل بـ Azure Resource Manager باستخدام Connect-AzAccount.

  3. قم بتنزيل تكوينات تعريف PowerShell DSC للأجهزة التي تريد تمكينها من حساب التنفيذ التلقائي الذي تقوم بإعداد العقد فيه.

    # Define the parameters for Get-AzAutomationDscOnboardingMetaconfig using PowerShell Splatting
    $Params = @{
        ResourceGroupName = 'ContosoResources' # The Resource Group that contains your Azure Automation account
        AutomationAccountName = 'ContosoAutomation'; # The Azure Automation account where you want to onboard the node
        ComputerName = @('web01', 'web02', 'sql01'); # The computers to generate the metaconfigurations for
        OutputFolder = "$env:UserProfile\Desktop\";
    }
    # Use PowerShell splatting to pass parameters to the Azure Automation cmdlet being invoked
    # For more info about splatting, run: Get-Help -Name about_Splatting
    Get-AzAutomationDscOnboardingMetaconfig @Params
    
  4. لا بد أن يكون لديك الآن مجلد DscMetaConfigs الذي يحتوي على تكوينات التعريف من PowerShell DSC للأجهزة المطلوب تمكينها (كمسؤول).

    Set-DscLocalConfigurationManager -Path $env:UserProfile\Desktop\DscMetaConfigs
    

تمكين أجهزة Windows الفعلية/الظاهرية

يمكنك تمكين خوادم Windows التي تعمل محلياً أو في بيئات السحابة الأخرى (بما في ذلك مثيلات AWS EC2) لـ Azure Automation State Configuration. لا بد أن يكون للخوادم وصول خارجي إلى Azure.

  1. تأكد من تثبيت الإصدار الأخير من WMF 5 على الأجهزة لتمكينه لـ State Configuration. بالإضافة إلى ذلك، يجب تثبيت WMF 5 على الكمبيوتر الذي تستخدمه لتمكين الأجهزة.

  2. لإنشاء مجلد يحتوي على تكوينات تعريف DSC المطلوبة، اتبع التوجيهات في إنشاء تكوينات تعريف DSC.

  3. استخدم cmdlet التالي لتطبيق تكوينات التعريف لـ PowerShell DSC عن بُعد على الأجهزة المطلوب تمكينها.

    Set-DscLocalConfigurationManager -Path C:\Users\joe\Desktop\DscMetaConfigs -ComputerName MyServer1, MyServer2
    
  4. إذا لم تتمكن من تطبيق تكوينات تعريف PowerShell DSC عن بعد، فانسخ مجلد metaconfigurations إلى الأجهزة التي تقوم بتمكينها. بعد ذلك، أضف التعليمة البرمجية لاستدعاء Set-DscLocalConfigurationManager محلياً على الأجهزة.

  5. باستخدام مدخل Azure أو cmdlets، تحقق من ظهور الأجهزة كعُقد State Configuration مسجلة في حساب Azure Automation.

تمكين أجهزة Linux الفعلية/الظاهرية

يمكنك تمكين خوادم Linux التي تعمل محلياً أو في بيئات أخرى على السحابة لـ State Configuration. لا بد أن يكون للخوادم وصول خارجي إلى Azure.

  1. تأكد من تثبيت الإصدار الأخير من PowerShell Desired State Configuration لـ Linux على الأجهزة لتمكينه لـ State Configuration.

  2. إذا كانت الإعدادات الافتراضية لـ PowerShell DSC Local Configuration Manager تتطابق مع حالة استخدامك، وكنت تريد تمكين الأجهزة بحيث تسحب من State Configuration: وتبلغه:

    • على كل جهاز Linux مطلوب تمكينه، استخدم Register.py لتمكين الجهاز بالإعدادات الافتراضية لـ PowerShell DSC Local Configuration Manager.

      /opt/microsoft/dsc/Scripts/Register.py <Automation account registration key> <Automation account registration URL>

    • للعثور على مفتاح التسجيل وعنوان URL للتسجيل لحساب التنفيذ التلقائي الخاص بك، راجع استخدام تكوين تعريف DSC لتسجيل الأجهزة المختلطة.

  3. إذا كانت الإعدادات الافتراضية لـ PowerShell DSC Local Configuration Manager (LCM) لا تُطابق حالة الاستخدام، أو إذا كنت تريد تمكين الأجهزة التي تقوم بإبلاغ Azure Automation State Configuration، فاتبع الخطوات 4-7. أو بدلاً من ذلك، انتقل مباشرة إلى الخطوة 7.

  4. اتبع التعليمات في المقطع إنشاء تكوينات تعريف DSC لإنشاء مجلد يحتوي على تكوينات تعريف DSC المطلوبة.

  5. تأكد من تثبيت الإصدار الأخير من WMF 5 على الكمبيوتر المُستخدم لتمكين الأجهزة لـ State Configuration.

  6. أضف التعليمة البرمجية كما يلي لتطبيق تكوينات تعريف PowerShell DSC عن بُعد على الأجهزة المطلوب تمكينها.

    $SecurePass = ConvertTo-SecureString -String '<root password>' -AsPlainText -Force
    $Cred = New-Object System.Management.Automation.PSCredential 'root', $SecurePass
    $Opt = New-CimSessionOption -UseSsl -SkipCACheck -SkipCNCheck -SkipRevocationCheck
    # need a CimSession for each Linux machine to onboard
    $Session = New-CimSession -Credential $Cred -ComputerName <your Linux machine> -Port 5986 -Authentication basic -SessionOption $Opt
    Set-DscLocalConfigurationManager -CimSession $Session -Path C:\Users\joe\Desktop\DscMetaConfigs
    
  7. إذا لم تتمكن من تطبيق تكوينات التعريف لـ PowerShell DSC عن بُعد، فانسخ تكوينات التعريف المناظرة للأجهزة البعيدة من المجلد الموضح في الخطوة 4 إلى أجهزة Linux.

  8. أضف تعليمة برمجية لاستدعاء Set-DscLocalConfigurationManager.py محلياً على كل جهاز Linux مطلوب تمكينه لـ State Configuration.

    /opt/microsoft/dsc/Scripts/SetDscLocalConfigurationManager.py -configurationmof <path to metaconfiguration file>

  9. تأكد من أن الأجهزة تظهر كعقد DSC مسجلة في حساب Azure Automation الخاص بك. يمكنك استخدام مدخل Microsoft Azure أو أوامر cmdlets.

إعادة تسجيل عقدة

بعد تسجيل جهاز كعقدة DSC في Azure Automation State Configuration، هناك عدة أسباب قد تحتاج إلى إعادة تسجيل تلك العقدة في المستقبل.

  • تجديد الشهادة. بالنسبة إلى الإصدارات Windows Server الأقدم من Windows Server 2019، تطالب كل عقدة تلقائياً بشهادة فريدة للمصادقة التي تنتهي صلاحيتها بعد سنة واحدة. إذا انتهت صلاحية شهادة بدون التجديد، فستكون العقدة غير قادرة على الاتصال بـ Azure Automation وستُوضع عليها العلامة Unresponsive. حاليا، لا يمكن لبروتوكول تسجيل PowerShell DSC تجديد الشهادات تلقائيا عند اقتراب انتهاء صلاحيتها، ويجب إعادة تسجيل العقد بعد مرور عام. قبل إعادة التسجيل، تأكد من أن كل عقدة تقوم بتشغيل WMF 5 RTM.

    يتم إنشاء شهادة جديدة واستخدامها إذا قمت بإعادة تسجيل 90 يوما أو أقل من وقت انتهاء صلاحية الشهادة أو في أي وقت بعد وقت انتهاء صلاحية الشهادة. تم تصحيح هذه المشكلة في Windows Server 2019 والإصدارات الأحدث.

  • التغييرات التي أجريت على قيم DSC LCM. قد تحتاج إلى تغيير مجموعة قيم PowerShell DSC LCM التي تم تعيينها أثناء التسجيل الأولي للعقدة، على سبيل المثال ConfigurationMode. يمكنك في الوقت الحالي تغيير قيم عامل DSC هذه فقط من خلال إعادة التسجيل. الاستثناء الوحيد هو قيمة تكوين العقدة. يمكنك تغيير هذه القيمة في Azure Automation DSC مباشرة.

يمكنك إعادة تسجيل عقدة تماماً كما فعلت لتسجيل العقدة في البداية، باستخدام أي من الأساليب الموضحة في هذا المستند. لا تحتاج إلى إلغاء تسجيل عقدة من Azure Automation State Configuration قبل إعادة تسجيلها.

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

باستخدام State Configuration، يمكنك بسهولة تمكين Azure Windows VMs لإدارة التكوين. يتم استخدام ملحق Azure VM Desired State Configuration بشكل خفي لتسجيل الجهاز الظاهري مع Azure Automation State Configuration. بما أن محلق Azure VM Desired State Configuration يعمل بشكل غير متزامن، قد يكون من المهم تتبع مدى تقدمه واستكشاف أخطاء طرق تنفيذه وإصلاحها.

إشعار

قد يستغرق أي أسلوب لتمكين Azure Windows VMs for State Configuration الذي يستخدم ملحق Azure VM Desired State Configuration ما يصل إلى ساعة حتى يُظهر Azure Automation الأجهزة الظاهرية باعتبارها مسجّلة. هذا التأخير ناتج عن تثبيت WMF 5 على الجهاز الظاهري بواسطة ملحق Azure VM Desired State Configuration، الذي هو مطلوب لتمكين الأجهزة الظاهرية لـ State Configuration.

لعرض حالة ملحق Azure VM Desired State Configuration:

  1. في مدخل Azure، انتقل إلى الجهاز الظاهري الذي يتم تمكينه.
  2. حدد "الملحقات" ضمن "الإعدادات".
  3. والآن، حدد DSC أو DSCForLinux، حسب نظام التشغيل الذي تستخدمه.
  4. لمزيد من التفاصيل، يمكنك تحديد عرض الحالة التفصيلية.

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