كيفية إنشاء بيانات اصطناعية مخصصة لحزمة تكوين الجهاز

قبل أن تبدأ، يُفضل قراءة صفحة النظرة العامة لتكوين الجهاز.

يستخدم تكوين الجهاز تكوين الحالة المطلوبة (DSC) عند تدقيق وتكوين كل من Windows وLinux. يحدد تكوين DSC الحالة التي يجب أن تكون عليها الجهاز.

هام

الحزم المخصصة التي تدقق حالة البيئة وتطبق التكوينات في حالة دعم متاح بشكل عام (GA). ومع ذلك، تنطبق القيود التالية:

لاستخدام حزم تكوين الجهاز التي تطبق التكوينات، يلزم إصدار ملحق تكوين ضيف Azure VM 1.26.24 أو أحدث، أو عامل Arc 1.10.0 أو أحدث.

تتوفر الوحدة النمطية GuestConfiguration فقط على Ubuntu 18 والإحدث. ومع ذلك، يمكن استخدام الحزمة والنهج التي تنتجها الوحدة النمطية على أي توزيع Linux وإصدار مدعوم في Azure أو Arc.

لا تتوفر حزم الاختبار على macOS.

لا تستخدم البيانات السرية أو المعلومات السرية في حزم المحتوى المخصصة.

استخدم الخطوات التالية لإنشاء التكوين الخاص بك لإدارة حالة جهاز Azure أو جهاز غير Azure.

قم بتثبيت PowerShell 7 ووحدات PowerShell النمطية المطلوبة

أولا، اتبع الخطوات الواردة في كيفية إعداد بيئة تأليف تكوين الجهاز. تساعدك هذه الخطوات على تثبيت الإصدار المطلوب من PowerShell لنظام التشغيل الخاص بك، والوحدة النمطية GuestConfiguration ، والوحدة النمطية PSDesiredStateConfiguration .

تأليف تكوين

قبل إنشاء حزمة تكوين، قم بتأليف وتجميع تكوين DSC. تتوفر أمثلة على التكوينات لنظامي التشغيل Windows وLinux.

هام

عند التحويل البرمجي لتكوينات Windows، استخدم PSDesiredStateConfiguration الإصدار 2.0.7 (الإصدار الثابت). عند تجميع التكوينات لنظام Linux، قم بتثبيت الإصدار التجريبي 3.0.0.

هذا المثال التكوين لأجهزة Windows. يقوم بتكوين الجهاز لإنشاء MC_ENV_EXAMPLE متغير البيئة في Process النطاقات و Machine . تعين قيمة المتغير إلى 'This was set by machine configuration'.

Configuration MyConfig {
    Import-DscResource -Name 'Environment' -ModuleName 'PSDscResources'
    Environment MachineConfigurationExample {
        Name   = 'MC_ENV_EXAMPLE'
        Value  = 'This was set by machine configuration'
        Ensure = 'Present'
        Target = @('Process', 'Machine')
    }
}

MyConfig

مع حفظ هذا التعريف في MyConfig.ps1 ملف البرنامج النصي، يمكنك تشغيل البرنامج النصي لتحويل التكوين برمجيا.

. .\MyConfig.ps1
    Directory: C:\dsc\MyConfig

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           5/16/2023 10:39 AM           1080 localhost.mof

يتم تحويل التكوين برمجيا إلى localhost.mof الملف في MyConfig المجلد في دليل العمل الحالي. أعد تسمية localhost.mof الاسم الذي تريد استخدامه كاسم الحزمة، مثل MyConfig.mof.

Rename-Item -Path .\MyConfig\localhost.mof -NewName MyConfig.mof -PassThru
    Directory: C:\dsc\MyConfig

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           5/16/2023 10:40 AM           1080 MyConfig.mof

إشعار

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

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

إنشاء أداة حزمة التكوين

بمجرد تجميع MOF، يجب تجميع الملفات الداعمة معاً. الحزمة المكتملة يتم استخدامها من قِبل تكوين الجهاز لإنشاء تعريفات Azure Policy.

يقوم الأمر New-GuestConfigurationPackage بإنشاء الحزمة. يجب أن تكون الوحدات النمطية المطلوبة من قبل التكوين متوفرة في $Env:PSModulePath لبيئة التطوير حتى تتمكن الأوامر في الوحدة النمطية من إضافتها إلى الحزمة.

معلمات الأمر New-GuestConfigurationPackage عند إنشاء محتوى Windows:

  • الاسم: اسم حزمة تكوين الجهاز.
  • Configuration: المسار الكامل لوثيقة تكوين DSC المجمعة.
  • Path: مسار مجلد الإخراج. هذه المعلمة اختيارية. إذا لم يتم تحديدها، يتم إنشاء الحزمة في الدليل الحالي.
  • النوع: (Audit، AuditandSet) يحدد ما إذا كان يجب تدقيق التكوين فقط أو إذا كان يجب أن يغير التكوين حالة الجهاز إذا كان خارج الحالة المطلوبة. الافتراضي هو Audit.

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

تنشئ الأوامر التالية أداة حزمة:

# Create a package that will only audit compliance
$params = @{
    Name          = 'MyConfig'
    Configuration = './MyConfig/MyConfig.mof'
    Type          = 'Audit'
    Force         = $true
}
New-GuestConfigurationPackage @params
# Create a package that will audit and apply the configuration (Set)
$params = @{
    Name          = 'MyConfig'
    Configuration = './MyConfig/MyConfig.mof'
    Type          = 'AuditAndSet'
    Force         = $true
}
New-GuestConfigurationPackage @params

يتم إرجاع كائن باسم ومسار الحزمة التي تم إنشاؤها.

Name     Path
----     ----
MyConfig C:\dsc\MyConfig.zip

المحتويات المتوقعة للبيانات الاصطناعية لتكوين الجهاز

الحزمة المكتملة يتم استخدامها من قِبل تكوين الجهاز لإنشاء تعريفات Azure Policy. الحزمة تتكون من:

  • تكوين DSC الذي تم تحويله برمجياً كتنسيق عنصر مُدار MOF
  • مجلد الوحدات النمطية
    • وحدة تكوين الضيف
    • وحدة DscNativeResources
    • الوحدات النمطية لموارد DSC المطلوبة من قِبل MOF
  • ملف metaconfig الذي يخزن الحزمة type وversion

يقوم PowerShell cmdlet بإنشاء ملف الحزمة .zip . لا يلزم وجود مجلد على مستوى الجذر أو مجلد الإصدار. يجب أن يكون تنسيق الحزمة ملفا .zip ولا يمكن أن يتجاوز الحجم الإجمالي 100 ميغابايت عند إلغاء الضغط.

يمكنك توسيع الأرشيف لفحصه باستخدام Expand-Archive cmdlet.

Expand-Archive -Path .\MyConfig.zip -DestinationPath MyConfigZip

يمكنك الحصول على الحجم الإجمالي للحزمة غير المضغوطة باستخدام PowerShell.

Get-ChildItem -Recurse -Path .\MyConfigZip |
    Measure-Object -Sum Length |
    ForEach-Object -Process {
        $Size = [math]::Round(($_.Sum / 1MB), 2)
        "$Size MB"
    }

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

يمكن توسيع حزم البيانات الاصطناعية لتكوين الجهاز لتشمل أدوات الطرف الثالث. يتطلب توسيع تكوين الجهاز تطوير مكونين اثنين.

  • مورد Desired State Configuration الذي يتعامل مع جميع الأنشطة المتعلقة بإدارة أداة الجهات الخارجية
    • تثبيت
    • استدعاء
    • تحويل الإخراج
  • المحتوى بالتنسيق الصحيح للأداة للاستهلاك المحلي

يتطلب مورد DSC تطويرًا مخصصًا إذا لم يكن حل المجتمع موجودًا بالفعل. يمكن اكتشاف حلول المجتمع من خلال البحث في معرض PowerShell عن العلامة GuestConfiguration.

إشعار

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

بعد تثبيت مورد DSC في بيئة التطوير، استخدم المعلمة FilesToInclude لـ New-GuestConfigurationPackage لتضمين محتوى النظام الأساسي لجهة أخرى في عنصر المحتوى.

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