كيفية إنشاء بيانات اصطناعية مخصصة لحزمة تكوين الجهاز
قبل أن تبدأ، يُفضل قراءة صفحة النظرة العامة لتكوين الجهاز.
يستخدم تكوين الجهاز تكوين الحالة المطلوبة (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
لتضمين محتوى النظام الأساسي لجهة أخرى في عنصر المحتوى.