Cara membuat artefak paket konfigurasi mesin kustom
Sebelum memulai, sebaiknya baca halaman gambaran umum untuk konfigurasi mesin.
Konfigurasi mesin menggunakan Desired State Configuration (DSC) saat mengaudit dan mengonfigurasi Windows dan Linux. Konfigurasi DSC menentukan kondisi tempat mesin dijalankan.
Penting
Paket kustom yang mengaudit status lingkungan dan menerapkan konfigurasi berada dalam status dukungan Generally Available (GA). Namun, batasan berikut berlaku:
Untuk menggunakan paket konfigurasi komputer yang menerapkan konfigurasi, ekstensi konfigurasi tamu Azure VM versi 1.26.24 atau yang lebih baru, atau agen Arc 1.10.0 atau yang lebih baru, diperlukan.
Modul GuestConfiguration hanya tersedia di Ubuntu 18 dan yang lebih baru. Namun, paket dan kebijakan yang dihasilkan oleh modul dapat digunakan pada distribusi dan versi Linux apa pun yang didukung di Azure atau Arc.
Paket pengujian di macOS tidak tersedia.
Jangan gunakan rahasia atau informasi rahasia dalam paket konten kustom.
Gunakan langkah-langkah berikut untuk membuat konfigurasi Anda sendiri guna mengelola status komputer Azure atau non-Azure.
Instal PowerShell 7 dan modul PowerShell yang diperlukan
Pertama, ikuti langkah-langkah dalam Cara menyiapkan lingkungan penulisan konfigurasi komputer. Langkah-langkah tersebut membantu Anda menginstal versi PowerShell yang diperlukan untuk OS Anda, modul GuestConfiguration , dan modul PSDesiredStateConfiguration .
Menulis konfigurasi
Sebelum Anda membuat paket konfigurasi, buat dan kompilasi konfigurasi DSC. Contoh konfigurasi tersedia untuk Windows dan Linux.
Penting
Saat mengkompilasi konfigurasi untuk Windows, gunakan PSDesiredStateConfiguration versi 2.0.7 (rilis stabil). Saat mengkompilasi konfigurasi untuk Linux, instal prarilis versi 3.0.0.
Contoh konfigurasi ini adalah untuk komputer Windows. Ini mengonfigurasi komputer untuk membuat MC_ENV_EXAMPLE
variabel lingkungan dalam Process
cakupan dan Machine
. Nilai variabel diatur ke '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
Dengan definisi yang disimpan dalam MyConfig.ps1
file skrip, Anda dapat menjalankan skrip untuk mengkompilasi konfigurasi.
. .\MyConfig.ps1
Directory: C:\dsc\MyConfig
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 5/16/2023 10:39 AM 1080 localhost.mof
Konfigurasi dikompilasi ke localhost.mof
dalam file di MyConfig
folder di direktori kerja saat ini. Ganti nama localhost.mof
menjadi nama yang ingin Anda gunakan sebagai nama paket, seperti 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
Catatan
Contoh ini menunjukkan cara menulis dan mengkompilasi konfigurasi untuk komputer Windows. Untuk Linux, Anda perlu membuat modul sumber daya DSC kustom menggunakan kelas PowerShell. Artikel Menulis sumber daya DSC kustom dengan kelas PowerShell menyertakan contoh lengkap sumber daya dan konfigurasi kustom, yang diuji dengan konfigurasi komputer.
Sisa artikel ini berlaku untuk konfigurasi yang ditentukan untuk komputer Linux dan Windows kecuali jika menyebutkan pertimbangan khusus platform.
Membuat artefak paket konfigurasi
Setelah MOF dikompilasi, file pendukung harus dikemas bersama-sama. Paket yang telah selesai digunakan oleh konfigurasi mesin untuk membuat definisi Azure Policy.
Cmdlet New-GuestConfigurationPackage
membuat paket. Modul yang diperlukan oleh konfigurasi harus tersedia di $Env:PSModulePath
untuk lingkungan pengembangan sehingga perintah dalam modul dapat menambahkannya ke paket.
Parameter cmdlet New-GuestConfigurationPackage
saat membuat konten Windows:
- Nama: nama paket konfigurasi mesin.
- Configuration: Kompilasi jalur lengkap dokumen konfigurasi DSC.
- Jalur: Jalur folder output. Parameter ini bersifat opsional. Jika tidak ditentukan, paket akan dibuat dalam direktori saat ini.
- Jenis: (
Audit
,AuditandSet
) Menentukan apakah konfigurasi hanya boleh mengaudit atau apakah konfigurasi harus mengubah status komputer jika berada di luar status yang diinginkan. Default adalahAudit
.
Langkah ini tidak memerlukan elevasi. Parameter Force digunakan untuk menimpa paket yang ada, jika Anda menjalankan perintah lebih dari sekali.
Perintah berikut membuat artefak paket:
# 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
Objek dikembalikan dengan Nama dan Jalur paket yang dibuat.
Name Path
---- ----
MyConfig C:\dsc\MyConfig.zip
Konten yang diharapkan dari artefak konfigurasi mesin
Paket yang telah selesai digunakan oleh konfigurasi mesin untuk membuat definisi Azure Policy. Paket ini terdiri dari:
- Konfigurasi DSC yang dikompilasi sebagai MOF
- Folder modul
- Modul GuestConfiguration
- Modul DscNativeResources
- Modul sumber daya DSC yang diperlukan oleh MOF
- File metaconfig yang menyimpan paket
type
danversion
Cmdlet PowerShell membuat file paket .zip
. Tidak diperlukan folder tingkat akar atau folder versi. Format paket harus berupa .zip
file dan tidak boleh melebihi ukuran total 100 MB saat tidak dikompresi.
Anda dapat memperluas arsip untuk memeriksanya dengan menggunakan Expand-Archive
cmdlet.
Expand-Archive -Path .\MyConfig.zip -DestinationPath MyConfigZip
Anda bisa mendapatkan ukuran total paket yang tidak dikompresi dengan PowerShell.
Get-ChildItem -Recurse -Path .\MyConfigZip |
Measure-Object -Sum Length |
ForEach-Object -Process {
$Size = [math]::Round(($_.Sum / 1MB), 2)
"$Size MB"
}
Memperluas konfigurasi mesin dengan alat pihak ketiga
Paket artefak untuk konfigurasi mesin dapat diperluas untuk menyertakan alat pihak ketiga. Perluasan konfigurasi mesin memerlukan pengembangan dua komponen.
- Sumber daya Konfigurasi Status yang Diinginkan yang menangani semua aktivitas yang terkait dengan pengelolaan alat pihak ketiga
- Instal
- Gunakan
- Konversi output
- Konten dalam format yang benar untuk alat yang akan digunakan secara native
Sumber daya DSC memerlukan pengembangan kustom jika solusi komunitas belum ada. Solusi komunitas bisa ditemukan dengan mencari Galeri PowerShell untuk tag GuestConfiguration.
Catatan
Kemampuan ekstensi konfigurasi mesin adalah skenario "bawa lisensi Anda sendiri". Pastikan Anda telah memenuhi syarat dan ketentuan alat pihak ketiga mana pun sebelum digunakan.
Setelah sumber daya DSC diinstal di lingkungan pengembangan, gunakan parameter FilesToInclude untuk New-GuestConfigurationPackage
guna menyertakan konten untuk platform pihak ketiga dalam artefak konten.