تمكين Azure Automation State Configuration

إشعار

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

يصف هذا الموضوع كيفية إعداد الأجهزة لإدارتها باستخدام 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، حدد علامة التبويب العقد ثم انقر فوق إضافة.

  3. اختر جهاز ظاهري لتمكينه.

  4. إذا لم يكن ملحق الحالة المطلوب من PowerShell مثبتاً وكانت حالة الطاقة قيد التشغيل، فانقر فوق Connect.

  5. ضمن تسجيل، أدخل قيم PowerShell DSC Local Configuration Manager المطلوبة لحالة الاستخدام. بشكل اختياري، يمكنك إدخال تكوين عقدة لتعيينها إلى جهاز ظاهري.

enabling VM

تمكين جهاز ظاهري باستخدام قوالب 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 keys and 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، وهو محرّك Windows PowerShell DSC. يعمل LCM على جميع العُقد المستهدفة وهو مسؤول عن استدعاء موارد التكوين المضمّنة في البرنامج النصي لتكوين تعريف DSC. يمكنك تضمين دعم الوكيل في تكوين تعريف عن طريق تضمين تعريفات ProxyURL وخصائص ProxyCredential حسب الحاجة في كتل ConfigurationRepositoryWeb وResourceRepositoryWeb وReportServerWeb. مثال على إعداد URL هو ProxyURL = "http://172.16.3.6:3128";. تُعين خاصية ProxyCredentialعلى عنصر PSCredential، كما هو موضح في إدارة بيانات الاعتماد في Azure Automation.

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

  1. افتح VSCode (أو المحرر المفضل لديك) كمسؤول على جهاز في البيئة المحلية. يجب أن يكون الإصدار الأخير من 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 لحساب Automation، بالإضافة إلى أسماء الأجهزة المطلوب تمكينها. المعلّمات الأخرى اختيارية. للعثور على مفتاح التسجيل وعنوان URL للتسجيل لحساب التنفيذ التلقائي الخاص بك، راجع استخدام تكوين تعريف DSC لتسجيل الأجهزة المختلطة.

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

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

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

    Set-DscLocalConfigurationManager -Path ./DscMetaConfigs
    

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

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

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

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

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

    # Define the parameters for Get-AzAutomationDscOnboardingMetaconfig using PowerShell Splatting
    $Params = @{
        ResourceGroupName = 'ContosoResources'; # The name of the Resource Group that contains your Azure Automation account
        AutomationAccountName = 'ContosoAutomation'; # The name of the Azure Automation account where you want a node on-boarded to
        ComputerName = @('web01', 'web02', 'sql01'); # The names of the computers that the metaconfiguration will be generated 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 عن بُعد، فانسخ المجلد تكوينات التعريف إلى الأجهزة التي تقوم بتمكينها. بعد ذلك، أضف التعليمة البرمجية لاستدعاء 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. باستخدام مدخل Azure أو cmdlets، تأكد من أن الأجهزة التي تريد تمكينها تظهر الآن كعُقد DSC مسجلة في حساب Azure Automation.

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

بعد تسجيل جهاز كعقدة 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 هذه فقط من خلال إعادة التسجيل. الاستثناء الوحيد هو قيمة Node Configuration المُعينة للعقدة. ويمكنك تغيير هذا مباشرة في 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. انقر فوق Extensions ضمن Settings.
  3. والآن، حدد DSC أو DSCForLinux، حسب نظام التشغيل الذي تستخدمه.
  4. لمزيد من التفاصيل، يمكنك النقر فوق عرض الحالة التفصيلية.

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