مجرد أداة أخرى: التعرف على تكوين الخدمة باستخدام Desired State Configuration 

تعد تهيئة الحالة المرغوبة (DSC) أداة لإدارة تكوين الخادم. باستخدامه ، يمكنك تكوين الخادم (إجراء تغييرات على السجل ، ونسخ الملفات ، وتثبيت المكونات وإزالتها) ، ومراقبة الحالة الحالية للإعدادات والعودة بسرعة إلى الإعدادات الأساسية.

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

جنبا إلى جنب مع ستانيسلاف بولداكوف من Raiffeisenbankقمنا بدمج تجربتنا مع محرك DSC وتقسيمها إلى مقالتين. في البداية ، سنقوم بتحليل المبادئ الأساسية للعمل والتعرف على ميزات الاستخدام في الأمثلة العملية:

  • "فك العلبة" بمحرك DSC ، واعرف ما هي الموارد افتراضيًا ، وأظهر مكان الحصول على موارد إضافية ؛
  • دعونا نرى كيفية وصف التكوين في DSC ؛ 
  • سنتعرف على كيفية قيام وكيل التهيئة المحلي المضمّن بتطبيق التكوينات على الخادم ، وإظهار كيفية تكوينه باستخدام التكوينات الوصفية ؛
  • دعنا ننتقل إلى حالات تكوين أكثر تعقيدًا: تكوينات جزئية وتكوينات كعب الروتين.



DSC هو محرك خفيف الوزن وسريع. على سبيل المثال ، باستخدامه ، يمكنك تثبيت .NET Framework 3.5 على الأجهزة الافتراضية بشكل أسرع. إليك ما يساعده على تسريع عملية تكوين الخدمة:

  • « » Windows PowerShell. 
    DSC PowerShell Windows Management Framework. Linux . , PowerShell. 
  • , . 
    , , , . DSC. 
  • , .
    DSC , . .

يتم تنفيذ التكوينات دائمًا بالتتابع ، بدون شروط وتفرعات. لذلك ، باختصار ، تبدو خوارزمية تشغيل DSC كما يلي:

  1. تكوين مدير التكوين المحلي (LCM) . هذا هو الوكيل المدمج المسؤول عن تطبيق التكوينات على الخادم. نقول له كيف يجب أن تعمل التكوينات المعلنة وبأي ترتيب. 
  2. إذا كانت هناك حاجة إلى موارد إضافية ، فقم بتثبيتها وتوصيلها مسبقًا.
  3. في شكل إعلاني ، نكتب ترتيب التكوين. 
  4. نشرنا التكوين بتنسيق ملف MOF.
  5. نرسل التكوين إلى الخادم المنشور حديثًا أو الموجود.
  6. يتلقى LCM التكوين (ملف MOF) بالإضافة إلى تعليمات إعداد LCM نفسه.
  7. يتم تطبيق التكوين على الفور من قبل فريقنا.


مخطط مبسط لمعمارية DSC.

سنبدأ التعرف على المحرك من خلال دراسة الموارد المحددة مسبقًا. بعد ذلك ، حاول كتابة التكوين.

موارد DSC 


تعد موارد DSC نوعًا من التناظرية مع وحدات PowerShell. يحتوي أي خادم Windows بالفعل على مجموعة محددة مسبقًا من موارد DSC ؛ فهي في نفس الدليل مثل وحدات PowerShell. يمكن الحصول على القائمة من خلال Get-DscResourse cmdlet. إليك ما تبدو عليه هذه القائمة في Windows 10 1809:
 
PS C:\windows\system32> Get-DscResource | Sort-Object -Property Name | ft ImplementedAs, Name -a
 
ImplementedAs Name
------------- ----
   PowerShell Archive
   PowerShell Environment
       Binary File
   PowerShell Group
    Composite GroupSet
       Binary Log
   PowerShell Package
   PowerShell PackageManagement
   PowerShell PackageManagementSource
    Composite ProcessSet
   PowerShell Registry
   PowerShell Script
   PowerShell Service
    Composite ServiceSet
       Binary SignatureValidation
   PowerShell User
   PowerShell WaitForAll
   PowerShell WaitForAny
   PowerShell WaitForSome
   PowerShell WindowsFeature
    Composite WindowsFeatureSet
   PowerShell WindowsOptionalFeature
    Composite WindowsOptionalFeatureSet
   PowerShell WindowsPackageCab
   PowerShell WindowsProcess

تعطي أسماء الموارد فهمًا لما تعمل به: 

  • الأرشيف - مع أرشيفات التعبئة والتفريغ ؛
  • البيئة - مع متغيرات البيئة ؛
  • ملف - مع ملفات ؛
  • مجموعة - مع مجموعات المستخدمين المحليين ؛
  • سجل - مع سجلات ؛
  • حزمة — مع حزم البرامج ؛
  • السجل —- باستخدام مفاتيح التسجيل وحالتها ؛
  • الخدمة - مع الخدمات وحالتها ؛
  • المستخدم - مع حسابات المستخدمين المحلية ؛
  • WindowsFeature — Windows Server;
  • WindowsProcess — Windows;
  • Script —  PowerShell- . 3 : SetScript — -, TestScript — , , GetScript — .

في أغلب الأحيان ، لا تكفي موارد DSC الجاهزة . في هذه الحالة ، يمكنك كتابة البرامج النصية الخاصة بك لكل شيء يتجاوز الوحدة القياسية. لكي لا تعيد اختراع العجلة ، يمكنك استخدام موارد DSC المكتوبة من قبل المطورين الآخرين. على سبيل المثال ، من هنا https://github.com/PowerShell/DscResources أو من PSGallery
 
كيفية تثبيت موارد إضافية . نستخدم cmdlet تثبيت الوحدة النمطية . تثبيت الموارد هو ببساطة نسخ ملفات الموارد على طول أحد المسارات في $ env: متغير بيئة PSModulePath . لا يتم توصيل الموارد المثبتة تلقائيًا أثناء التجميع ، لذلك سنقوم لاحقًا بتوصيلها في التكوين نفسه.

لاستخدام مورد ، تحتاج إلى تثبيته محليًا وعلى الخادم الهدف. في البنى التحتية داخل المباني ، تمنع سياسة الأمان عادةً الوصول إلى الإنترنت للخوادم. في هذه الحالة ، لن يتمكن خادم DSC من تحميل موارد إضافية من مصادر خارجية. لنشر المحفوظات مع الوحدات النمطية ، نقوم بنشر مستودع NuGet محلي أو خادم ويب منتظم. يمكنك تثبيت موارد إضافية لخادم الويب عن طريق تفريغ الوحدة النمطية في دليل C: \ Program Files \ WindowsPowerShell \ Modules \
وهذا بالضبط ما يفعله cmdlet لـ Install-Module.

في المقالة الثانية ، سنلقي نظرة فاحصة على الفرق بين إعداد وضعي الدفع والسحب. 

تحليل التكوين البسيط


التكوين هو وصف بسيط ومتسق لما يجب القيام به على الخادم. هذه هي الطريقة التي تبدو بها تهيئة DSC البسيطة: 

Configuration EnvironmentVariable_Path
{
param ()
Import-DscResource -ModuleName 'PSDscResources'
Node localhost
    {
        Environment CreatePathEnvironmentVariable
        {
            Name = 'TestPathEnvironmentVariable'
            Value = 'TestValue'
            Ensure = 'Present'
            Path = $true
            Target = @('Process', 'Machine')
        }
    }
}
EnvironmentVariable_Path -OutputPath:"C:\EnvironmentVariable_Path"

على سبيل المثال ، دعنا نرى ما يتكون التكوين.

كتلة التكوين هي نوع خاص من وظائف PowerShell التي تصف ما نريد الحصول عليه. 

يحتوي داخل الكتلة على: 

  • كتلة بارزة مع معلمات يمكن استخدامها داخليًا ؛ 
  • حظر مع مكالمات PowerShell إضافية. هنا في بداية التكوين ، نقوم دائمًا بتشغيل Import-Resource لتوصيل موارد إضافية ؛
  • كتل مع إعدادات لخوادم اسم الخادم العقدة $ محددة

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

دعونا نلقي نظرة أعمق قليلاً ونلقي نظرة على بناء جملة مورد معين من خلال الأمر Get-DscResource -Name Environment -Syntax:
 

PS C:\windows\system32> Get-DscResource -Name Environment -Syntax
Environment [String] #ResourceName
{
    Name = [string]
    [DependsOn = [string[]]]
    [Ensure = [string]{ Absent | Present }]
    [Path = [bool]]
    [PsDscRunAsCredential = [PSCredential]]
    [Value = [string]]
}

في هذا المثال: 

  • الاسم - اسم متغير البيئة.
  • في DependsOn ، نحدد الاعتماد على الموارد الأخرى. من المهم أن تتذكر أن العملية لن يتم تنفيذها حتى يكتمل المورد المحدد هنا. 
  • في ضمان ، نحدد شروط التكوين. إذا كان هذا المتغير غائبًا ، فسننشئه ؛ إذا كان موجودًا ، فلن يتم تكوين هذا المورد.
  • على مسار يحدد ما إذا كان متغير بيئة تحتوي على المسار. 
  • في PsDscRunAsCredential بيانات الاعتماد المحددة.
  • القيمة - قيمة متغير البيئة. 
  • و الهدف يجوز أن يبين في احترام منهم يتم تطبيق التكوين.

كيفية بدء التجميع . نسمي فقط التكوين باسمه بالمعلمات الضرورية. ستكون النتيجة ملف mof ، والذي يستخدمه محرك DSC أيضًا لتكوين خادم معين:
 
PS C:\windows\system32> EnvironmentVariable_Path -OutputPath:"C:\EnvironmentVariable_Path"
 
    Directory: C:\EnvironmentVariable_Path
 
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       25.02.2020     14:05           2172 localhost.mof

تكوين مدير التكوين المحلي


مدير التكوين المحلي مسؤول عن تطبيق التكوينات التي قمنا بتجميعها في ملفات mof. هو الذي يراقب الحفاظ على الدولة المحدد في التكوين. إذا ترك النظام هذه الحالة ، يستدعي LCM الرمز في الموارد لاستعادة الحالة المحددة. 

دعونا نرى إعدادات مدير التكوين المحلي من خلال Get-DscLocalConfigurationManager:
 
PS C:\windows\system32> Get-DscLocalConfigurationManager
 
ActionAfterReboot              : ContinueConfiguration
AgentId                        : 1FB3A2EE-57C9-11EA-A204-58A023EF3A48
AllowModuleOverWrite           : False
CertificateID                  :
ConfigurationDownloadManagers  : {}
ConfigurationID                :
ConfigurationMode              : ApplyAndMonitor
ConfigurationModeFrequencyMins : 15
Credential                     :
DebugMode                      : {NONE}
DownloadManagerCustomData      :
DownloadManagerName            :
LCMCompatibleVersions          : {1.0, 2.0}
LCMState                       : Idle
LCMStateDetail                 :
LCMVersion                     : 2.0
StatusRetentionTimeInDays      : 10
SignatureValidationPolicy      : NONE
SignatureValidations           : {}
MaximumDownloadSizeMB          : 500
PartialConfigurations          :
RebootNodeIfNeeded             : False
RefreshFrequencyMins           : 30
RefreshMode                    : PUSH
ReportManagers                 : {}
ResourceModuleManagers         : {}
PSComputerName                 :

  • يحتوي RefreshMode على وضع التشغيل LCM - دفع أو سحب. سنتحدث أكثر عن الأوضاع في المقالة الثانية.
  • يعرض ConfigurationMode وضع تطبيق التكوين الحالي. في حالتنا ، هو ApplyAndMonitor - تطبيق التغييرات وتتبعها. تتوفر أوضاع ApplyOnly أيضًا (لن يتتبع LCM تغييرات التكوين) وأنماط ApplyAndAutocorrect (لن يتتبع LCM التغييرات فحسب ، بل سيعيدها أيضًا إلى التكوين الأساسي).
  • RebootNodeIfNeeded - يمكن إعادة تشغيل الخادم بعد اكتمال التكوين ، إذا لزم الأمر لتطبيق الإعدادات. 
  • ConfigurationModeFrequencyMins - يحدد عدد المرات التي سيبحث فيها LCM عن تغييرات التكوين.

تغيير إعدادات LCM في التكوين التعريفي. هنا مثالها:
 

Configuration LCMConfiguration
{
   Node Localhost
   {
       LocalConfigurationManager
       {
           RebootNodeIfNeeeded = $True
       }
   }
}
LCMConfiguration

نفس الشيء بالنسبة لأحدث إصدار من WMF مع التعليقات:


 
[DSCLocalConfigurationManager()]
Configuration LCMConfiguration
{
   param
   (
       [string[]]$Server = "localhost"
   )

 

#  LCM:
#  ,  
# : PUSH
#    30 
   Node $Server
   {
       Settings
       {
           RebootNodeIfNeeded = $True
           RefreshMode        = 'Push'
           RefreshFrequencyMins = 30
       }
   }
}


#   
LCMConfiguration -Server "localhost" -OutputPath "C:\DSC\MetaConfigurations\EnvironmentVariable_Path\"

ملامح التكوين metaconfiguration . عند كتابة تكوين metaconfiguration ، نستخدم نفس الكتل المستخدمة في تكوين DSC العادي. الاستثناء هو الكتلة الداخلية LocalConfigurationManager (v4) أو السمة DSCLocalConfigurationManager (v5) لخادم معين. يصفون جميع الإعدادات اللازمة. 

يتم أيضًا تجميع metaconfiguration في ملف mof ، ولكن لاستخدامه ، يتم استخدام الأمر cmdlet Set-DSCLocalConfigurationManager ، وليس Start-DSCConfiguration.
 
PS C:\windows\system32> LCMConfiguration -OutputPath C:\EnvironmentVariable_Path\
 
    Directory: C:\EnvironmentVariable_Path
 
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       26.02.2020     20:05           1016 Localhost.meta.mof

 

PS C:\windows\system32> Set-DscLocalConfigurationManager -Path C:\EnvironmentVariable_Path\
PS C:\windows\system32> Get-DscLocalConfigurationManager
 
RebootNodeIfNeeded             : True

نظريا ، لا شيء يمنعنا من الجمع بين تكوين LCM والموارد التقليدية داخل نفس التكوين. ولكن من أجل البساطة ، يوصى بفصل تهجئة وتطبيق التكوين وتكوين metaconfiguration.

تكوينات جزئية 


التكوينات الجزئية - العديد من التكوينات التي يتم تنفيذها بالتتابع واحدة تلو الأخرى. وهي مفيدة عندما تعمل عدة فرق على الخدمة. يشير كل أمر من الأوامر إلى الإعدادات الخاصة بالجزء الخاص بها من الخدمة ، ثم يقوم التكوين الجزئي بتطبيق جميع الإعدادات بالتتابع. في إعدادات LCM ، نحدد تكوينات جزئية في تكوينات PartialConfigurations

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

لنفترض أننا نريد تسليم التكوين إلى الخادم بشكل مضمون والمتابعة وفقًا للخوارزمية التالية:

  1. أولاً ، تحقق من تثبيت الوحدات النمطية الضرورية على الخادم.
  2. نقوم بالتهيئة ، والتي ستجعل الخادم في الحالة المطلوبة.

إليك ما يبدو عليه تكوين metaconfiguration مع العديد من التكوينات المتتالية في الداخل:


#   
[DSCLocalConfigurationManager()]
configuration MetaPushConfig
{
param
   (
       [ValidateNotNullOrEmpty()]
       [string] $NodeName = 'localhost'
   )

 

   Node $NodeName
   {
 	
 #      LCM,    
       PartialConfiguration ModulesDownloadConfig
       {
               Description = 'Download and install modules'
               RefreshMode = 'Push'
       }

 

       #        
       PartialConfiguration ServerOSConfig
       {
               DependsOn = "[PartialConfiguration]ModulesDownloadConfig"
               Description = 'Configuration'
               RefreshMode = 'Push'
       }

 

       #   LCM
       Settings
       {
               RefreshMode        = 'Push'
               RefreshFrequencyMins = 30
               RebootNodeIfNeeded = $true
       }
   }
}

 
 

#  
MetaPushConfig -NodeName "NewServer.contoso.com" -OutputPath c:\DSC\MetaConfigurations

 

#      
$cred = (Get-Credential -UserName Administrator -Message "Enter admin credentials")

 

#  LCM   
Set-DscLocalConfigurationManager -ComputerName "NewServer.contoso.com" -Credential $cred -Path "c:\DSC\MetaConfigurations" -Verbose -Force

 

#  
Publish-DscConfiguration c:\DSC\Configurations\ModulesDownloadConfig -ComputerName "NewServer.contoso.com" -Credential $cred -Force
Publish-DscConfiguration c:\DSC\Configurations\ServerOSConfig -ComputerName "NewServer.contoso.com" -Credential $cred -Force

 

#    
Start-DscConfiguration -UseExisting -ComputerName "NewServer.contoso.com" -Credential $cred -Force -Verbose

يقول الجزء الأول من التكوين تنزيل وتثبيت الوحدات النمطية s: تنزيل وتثبيت الموارد اللازمة. الجزء الثاني من ServerOSConfig يجلب الخادم إلى الحالة المطلوبة. ما هي الفروق الدقيقة مع استقامة DSC هنا: 

  1. إذا كان الجزء الأول من التهيئة يُرجع FALSE في البداية ويكتمل تمامًا ، فلن ينتقل LCM إلى التكوين الثاني. وفقًا لمنطق DSC ، تحتاج أولاً إلى إحضار الخادم إلى الحالة الأولى الموضحة. 
    كيفية المعالجة: قم بتشغيل التكوين مرتين أو أتمتة العملية بأكملها في برنامج نصي.
  2. إذا كان الخادم بعد تثبيت أي مكون يتطلب إعادة تشغيل ، فإن التكوين لن يذهب أبعد من ذلك حتى نقوم نحن بإعادة تشغيل الخادم. حتى لو أخبرنا LCM أن RebootNodeIfNeeeded = $ True ، فإن الوكيل سوف ينتظر حلنا أثناء التكوين.
    كيفية المعالجة: يأتي مورد xPendingReboot في عملية الإنقاذ ، التي تتحكم في مفتاح التسجيل عند إعادة التشغيل. هذا المورد يعيد تشغيل الخادم بالنسبة لنا.

فيما يلي مثال لتكوين تنزيل الموارد وتثبيتها في سيناريو "المؤسسة الدموية" ، عندما لا يكون لدى الخادم وصول إلى الإنترنت. يفترض وجود خادم ويب ، حيث تتوفر الموارد التي تم تنزيلها مسبقًا للجميع عبر بروتوكول http.


Configuration ModulesDownloadConfig
{
   param
   (
       [string[]]$Server
   )

 

   #   
   Import-DscResource -ModuleName "PSDesiredStateConfiguration"

 

   #  
   Node $Server
   {
       #  IE Security
       Registry DisableIEESC-Admin {
           Key = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}"
           ValueName = "IsInstalled"
           Ensure = "Present"
           ValueData = 0
           ValueType = "DWORD"
       }

 

       Registry DisableIEESC-User {
           Key = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}"
           ValueName = "IsInstalled"
           Ensure = "Present"
           ValueData = "0"
           ValueType = "DWORD"
       }

 

	
 #    ,    
       File CreateDistribDir {
           Ensure          = "present"
           DestinationPath = "C:\Install\PSModules"
           Type            = "Directory"
       }

 

	
 #   NetworkingDsc (<a href="https://www.powershellgallery.com/packages/NetworkingDsc/8.0.0-preview0004">https://www.powershellgallery.com/packages/NetworkingDsc/8.0.0-preview0004</a>),      
       Script NetworkingDscDownLoad {
           SetScript = { Invoke-WebRequest -Uri "http://repo.contoso.com/repo/modules/NetworkingDsc.zip" -OutFile "C:\Install\PSModules\NetworkingDsc.zip" }
           GetScript = { return @{ Result = Test-Path "C:\Install\PSModules\NetworkingDsc.zip"
               GetScript = $GetScript; SetScript = $SetScript; TestScript = $TestScript
               }
           }
           TestScript = { Test-Path "C:\Program Files\WindowsPowerShell\Modules\NetworkingDsc" }
       }

 

 #   NetworkingDsc  C:\Program Files\WindowsPowerShell\Modules
       Archive UnpackNetworkingDsc {
           Ensure = "Present"
           DependsOn = "[Script]NetworkingDscDownLoad"
           Path = "C:\Install\PSModules\NetworkingDsc.zip"
           Destination = "C:\Program Files\WindowsPowerShell\Modules\"
       }

 

 #   ComputerManagementDsc (<a href="https://www.powershellgallery.com/packages/ComputerManagementDsc/8.2.1-preview0001">https://www.powershellgallery.com/packages/ComputerManagementDsc/8.2.1-preview0001</a>),      
       Script ComputerManagementDscDownLoad {
           SetScript = { Invoke-WebRequest -Uri "http://repo.contoso.com/repo/modules/ComputerManagementDsc.zip" -OutFile "C:\Install\PSModules\ComputerManagementDsc.zip" }
           GetScript = { return @{ Result = Test-Path "C:\Install\PSModules\ComputerManagementDsc.zip"
               GetScript = $GetScript; SetScript = $SetScript; TestScript = $TestScript
               }
           }
           TestScript = { Test-Path "C:\Program Files\WindowsPowerShell\Modules\ComputerManagementDsc" }
       }

 

	
 #   ComputerManagementDsc  C:\Program Files\WindowsPowerShell\Modules
       Archive UnpackComputerManagementDsc {
           Ensure = "Present"
           DependsOn = "[Script]ComputerManagementDscDownLoad"
           Path = "C:\Install\PSModules\ComputerManagementDsc.zip"
           Destination = "C:\Program Files\WindowsPowerShell\Modules\"
       }

 

	
 #   xPendingReboot (<a href="https://www.powershellgallery.com/packages/xPendingReboot/0.4.0.0">https://www.powershellgallery.com/packages/xPendingReboot/0.4.0.0</a>),      
       Script xPendingRebootDownLoad {
           SetScript = { Invoke-WebRequest -Uri "http://repo.contoso.com/repo/modules/xPendingReboot.zip" -OutFile "C:\Install\PSModules\xPendingReboot.zip" }
           GetScript = { return @{ Result = Test-Path "C:\Install\PSModules\xPendingReboot.zip"
               GetScript = $GetScript; SetScript = $SetScript; TestScript = $TestScript
               }
           }
           TestScript = { Test-Path "C:\Program Files\WindowsPowerShell\Modules\xPendingReboot" }
       }

 

	
 #   xPendingReboot  C:\Program Files\WindowsPowerShell\Modules
       Archive UnpackxPendingReboot {
           Ensure = "Present"
           DependsOn = "[Script]xPendingRebootDownLoad"
           Path = "C:\Install\PSModules\xPendingReboot.zip"
           Destination = "C:\Program Files\WindowsPowerShell\Modules\"
       }
   }
}

عن الأمن


إن نقص الدهون في DSC على الأرض هو عدم وجود Run As Accounts. تقوم هذه الآلية بتخزين الحسابات بأمان في شكل اسم مستخدم + "تجزئة الملح لكلمة المرور" وإخراجها من الخدمة المسؤولة عن المصادقة. بدونها ، لا يمكن لـ DSC إدارة الحسابات نيابة عن خدمة أخرى. وإذا كنا بحاجة إلى المصادقة تحت حساب يتمتع بامتيازات خاصة ، فإن عملية الأتمتة معقدة إلى حد كبير. على سبيل المثال ، سيكون هذا هو الحال عند دخول الخادم في المجال.

كل شيء تحت تصرفنا:

  • يتم تخزين بيانات الاعتماد في نص عادي ،
  • أوراق الاعتماد المشفرة تعمل فقط على جهاز الكمبيوتر حيث تم إنشاؤها.

من الناحية العملية ، هناك العديد من الحلول. 


تعتبر "Stubs" جيدة عند ضمان إمكانية التنبؤ بسلوك الخادم.
نقوم بعمل "كعب روتين" بعد تكوين الخادم في عدة حالات ، إذا استخدمنا:

  • إعادة التشغيل (مورد xPendingReboot) 
  • نقل بيانات الاعتماد 
  • الموارد الأخرى التي قد تؤثر على أداء الخادم فيما يتعلق بعمليات إعادة التشغيل أو الأمان غير المخطط لها.

للقيام بذلك ، قم بإنشاء وإعادة تكوين تكوينات بدون كتل تحتوي على مورد xPendingReboot وتكوينات ذات بيانات اعتماد.

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

وتأتي أيضًا لمناقشة الفروق الدقيقة في تكنولوجيا DSC وحدود تطبيقها في 28 مايو في الساعة 18.00 في الاجتماع الأول عبر الإنترنت لمجتمع الاتصالات Raiffeisenbank DGTL. سنتحدث أيضًا في الاجتماع عن كيفية تكوين أصدقاء ELK و Exchange وما يمكن أن يفعله Microsoft Endpoint Manager في إدارة الأجهزة. هنا التسجيل لميتاب .

All Articles