Perencanaan migrasi konfigurasi Azure Automation ke konfigurasi mesin
Catatan
Konfigurasi Status Azure Automation akan dihentikan pada 30 September 2027, silakan transisi ke Konfigurasi Komputer Azure pada tanggal tersebut. Untuk informasi selengkapnya, lihat pengumuman posting blog. Layanan Azure Machine Configuration menggabungkan fitur Ekstensi DSC, Konfigurasi Status Azure Automation, dan fitur yang paling umum diminta dari umpan balik pelanggan. Azure Machine Configuration juga menyertakan dukungan komputer hibrid melalui server yang didukung Arc.
Konfigurasi mesin adalah implementasi terbaru fungsionalitas yang disediakan oleh Konfigurasi Status Azure Automation (juga dikenal sebagai Konfigurasi Status yang Diinginkan Azure Automation, atau AADSC). Jika memungkinkan, Anda harus merencanakan untuk memindahkan konten dan mesin Anda ke layanan baru. Artikel ini memberikan panduan tentang pengembangan strategi migrasi dari Azure Automation ke konfigurasi mesin.
Fitur baru dalam permintaan pelanggan alamat konfigurasi komputer:
- Peningkatan batas ukuran untuk konfigurasi menjadi 100 MB
- Pelaporan lanjutan melalui Azure Resource Graph termasuk ID dan status sumber daya
- Kemampuan untuk mengelola beberapa konfigurasi untuk komputer yang sama
- Kemampuan untuk mengontrol kapan remediasi terjadi ketika mesin hanyut dari keadaan yang diinginkan
- Sumber daya DSC berbasis PowerShell untuk Linux dan Windows
Sebelum membuat definisi kebijakan kustom, Anda sebaiknya membaca informasi gambaran umum konseptual di halaman Konfigurasi mesin Azure Policy.
Memahami tentang migrasi
Pendekatan terbaik untuk migrasi adalah menyebarkan ulang konten terlebih dahulu, dan kemudian memigrasikan mesin. Bagian ini menguraikan langkah-langkah yang diharapkan untuk migrasi.
- Mengekspor konfigurasi dari Azure Automation
- Menemukan persyaratan modul dan muat persyaratan tersebut di lingkungan Anda
- Mengompilasi konfigurasi
- Membuat dan menerbitkan paket konfigurasi mesin
- Paket konfigurasi mesin uji
- Memasang mesin hybrid ke Azure Arc
- Membatalkan pendaftaran dari Azure Automation State Configuration
- Menetapkan konfigurasi ke server menggunakan konfigurasi mesin
Konfigurasi komputer menggunakan DSC versi 2 dengan PowerShell versi 7. DSC versi 3 dapat berdampingan dengan DSC versi lama di Windows dan Linux. Implementasinya terpisah. Namun, tidak ada deteksi konflik.
Konfigurasi mesin tidak memerlukan modul penerbitan atau konfigurasi ke layanan, atau dikompilasi dalam layanan. Sebagai gantinya, Anda mengembangkan dan menguji konten menggunakan alat yang dibuat khusus dan menerbitkan konten di mana saja komputer dapat menjangkau HTTPS (biasanya Azure Blob Storage).
Jika Anda memutuskan untuk memiliki mesin di kedua layanan untuk beberapa periode waktu, tidak ada hambatan teknis. Kedua layanan tersebut bersifat independen.
Mengekspor konten dari Azure Automation
Mulailah dengan menemukan dan mengekspor konten dari Konfigurasi Status Azure Automation ke lingkungan pengembangan tempat Anda membuat, menguji, dan menerbitkan paket konten untuk konfigurasi komputer.
Konfigurasi
Anda hanya dapat mengekspor skrip konfigurasi dari Azure Automation. Tidak dimungkinkan untuk mengekspor konfigurasi node, atau mengkompilasi file MOF. Jika Anda menerbitkan file MOF langsung ke Akun Automation dan tidak lagi memiliki akses ke file asli, Anda perlu melakukan kompilasi ulang dari skrip konfigurasi privat Anda. Jika Anda tidak dapat menemukan konfigurasi asli, Anda harus mengotorisi ulang konfigurasi tersebut.
Untuk mengekspor skrip konfigurasi dari Azure Automation, pertama-tama identifikasi akun Azure Automation yang memiliki konfigurasi dan nama Grup Sumber Daya tempat Akun Automation disebarkan.
Instal modul PowerShell Az.Automation.
Install-Module -Name Az.Automation
Selanjutnya, gunakan Get-AzAutomationAccount
perintah untuk mengidentifikasi Akun Automation Anda dan Grup Sumber Daya tempat mereka disebarkan. Properti ResourceGroupName dan AutomationAccountName penting untuk langkah berikutnya.
Get-AzAutomationAccount
SubscriptionId : <your-subscription-id>
ResourceGroupName : <your-resource-group-name>
AutomationAccountName : <your-automation-account-name>
Location : centralus
State :
Plan :
CreationTime : 6/30/2021 11:56:17 AM -05:00
LastModifiedTime : 6/30/2021 11:56:17 AM -05:00
LastModifiedBy :
Tags : {}
Temukan konfigurasi di Akun Automation Anda. Output memiliki satu entri per konfigurasi. Jika Anda memiliki banyak entri, simpan informasi sebagai variabel sehingga lebih mudah untuk bekerja dengan.
$getParams = @{
ResourceGroupName = '<your-resource-group-name>'
AutomationAccountName = '<your-automation-account-name>'
}
Get-AzAutomationDscConfiguration @getParams
ResourceGroupName : <your-resource-group-name>
AutomationAccountName : <your-automation-account-name>
Location : centralus
State : Published
Name : <your-configuration-name>
Tags : {}
CreationTime : 6/30/2021 12:18:26 PM -05:00
LastModifiedTime : 6/30/2021 12:18:26 PM -05:00
Description :
Parameters : {}
LogVerbose : False
Terakhir, ekspor setiap konfigurasi ke file skrip lokal menggunakan perintah Export-AzAutomationDscConfiguration
. Nama file yang dihasilkan menggunakan pola \ConfigurationName.ps1
.
$exportParams = @{
OutputFolder = '<location-on-your-machine>'
ResourceGroupName = '<your-resource-group-name>'
AutomationAccountName = '<your-automation-account-name>'
Name = '<your-configuration-name>'
}
Export-AzAutomationDscConfiguration @exportParams
UnixMode User Group LastWriteTime Size Name
-------- ---- ----- ------------- ---- ----
12/31/1600 18:09
Mengonfigurasi ekspor menggunakan alur PowerShell
Anda dapat mengekspor semua konfigurasi ke folder lokal di komputer Anda. Untuk mengotomatiskan proses ini, pipa output setiap perintah dalam contoh sebelumnya ke perintah berikutnya.
Contoh berikut mengekspor lima konfigurasi. Pola output adalah satu-satunya indikator keberhasilan.
Get-AzAutomationAccount |
Get-AzAutomationDscConfiguration |
Export-AzAutomationDSCConfiguration -OutputFolder <location on your machine>
UnixMode User Group LastWriteTime Size Name
-------- ---- ----- ------------- ---- ----
12/31/1600 18:09
12/31/1600 18:09
12/31/1600 18:09
12/31/1600 18:09
12/31/1600 18:09
Pertimbangkan untuk menguraikan file konfigurasi yang kompleks
Konfigurasi komputer dapat mengelola lebih dari satu konfigurasi per komputer. Banyak konfigurasi yang ditulis untuk Azure Automation State Configuration mengasumsikan keterbatasan mengelola konfigurasi tunggal per mesin. Untuk memanfaatkan kemampuan yang diperluas yang ditawarkan oleh konfigurasi komputer, Anda dapat membagi file konfigurasi besar menjadi banyak konfigurasi yang lebih kecil di mana masing-masing menangani skenario tertentu.
Tidak ada orkestrasi dalam konfigurasi mesin untuk mengontrol urutan bagaimana konfigurasi diurutkan. Simpan langkah-langkah dalam konfigurasi bersama-sama dalam satu paket jika perlu dilakukan secara berurutan.
Modul
Tidak dimungkinkan untuk mengekspor modul dari Azure Automation atau secara otomatis menghubungkan konfigurasi mana yang memerlukan modul dan versi mana. Anda harus memiliki modul di lingkungan lokal Anda untuk membuat paket konfigurasi mesin baru. Untuk membuat daftar modul yang Anda butuhkan untuk migrasi, gunakan PowerShell untuk meminta Azure Automation untuk nama dan versi modul.
Jika Anda menggunakan modul yang dibuat khusus dan hanya ada di lingkungan pengembangan privat Anda, tidak dimungkinkan untuk mengekspornya dari Azure Automation.
Jika Anda kehilangan modul yang diperlukan untuk konfigurasi dan di akun, Anda tidak dapat mengkompilasi konfigurasi. Oleh karena itu, Anda tidak dapat memigrasikan konfigurasi.
Daftar modul yang diimpor di Azure Automation
Untuk mengambil daftar semua modul yang diinstal di akun otomatisasi Anda, gunakan Get-AzAutomationModule
perintah . Properti IsGlobal memberi tahu Anda apakah modul selalu disertakan dalam Azure Automation, atau jika dipublikasikan ke akun.
Misalnya, untuk membuat daftar semua modul yang diterbitkan ke salah satu akun Anda.
Get-AzAutomationAccount |
Get-AzAutomationModule |
Where-Object IsGlobal -eq $false
Anda juga dapat menggunakan Galeri PowerShell sebagai bantuan dalam menemukan rincian tentang modul yang tersedia untuk umum. Contoh berikut mencantumkan modul yang dibangun ke dalam Akun Automation baru dan berisi sumber daya DSC.
Get-AzAutomationAccount |
Get-AzAutomationModule |
Where-Object IsGlobal -eq $true |
Find-Module -ErrorAction SilentlyContinue |
Where-Object {'' -ne $_.Includes.DscResource} |
Select-Object -Property Name, Version -Unique |
Format-Table -AutoSize
Name Version
---- -------
AuditPolicyDsc 1.4.0
ComputerManagementDsc 8.4.0
PSDscResources 2.12.0
SecurityPolicyDsc 2.10.0
xDSCDomainjoin 1.2.23
xPowerShellExecutionPolicy 3.1.0.0
xRemoteDesktopAdmin 1.1.0.0
Mengunduh modul dari Galeri PowerShell atau repositori PowerShellGet
Jika modul diimpor dari Galeri PowerShell, Anda dapat menyalurkan output dari Find-Module
langsung ke Install-Module
. Piping output di seluruh perintah menyediakan solusi untuk memuat lingkungan pengembang dengan semua modul yang saat ini berada di Akun Automation jika tersedia di Galeri PowerShell.
Anda dapat menggunakan pendekatan yang sama untuk menarik modul dari umpan NuGet kustom. Anda harus mendaftarkan umpan di lingkungan lokal Anda sebagai repositori PowerShellGet.
Perintah Find-Module
dalam contoh ini tidak menekan kesalahan, yang berarti modul apa pun yang tidak ditemukan di galeri mengembalikan pesan kesalahan.
Get-AzAutomationAccount |
Get-AzAutomationModule |
Where-Object IsGlobal -eq $false |
Find-Module |
Where-Object { '' -ne $_.Includes.DscResource } |
Install-Module
Memeriksa skrip konfigurasi untuk persyaratan modul
Setelah mengekspor skrip konfigurasi dari Azure Automation, Anda dapat meninjau konten untuk detail tentang modul mana yang diperlukan untuk mengompilasi setiap konfigurasi ke file MOF. Pendekatan ini hanya diperlukan jika Anda menemukan konfigurasi di Akun Automation yang kehilangan modul. Konfigurasi tidak lagi berguna untuk mesin, tetapi mungkin masih ada di akun.
Di bagian atas setiap file, cari baris yang menyertakan Import-DscResource
. Perintah ini hanya berlaku di dalam konfigurasi, dan digunakan untuk memuat modul pada saat kompilasi.
Misalnya, WindowsIISServerConfig
konfigurasi di Galeri PowerShell memiliki baris dalam contoh ini.
configuration WindowsIISServerConfig
{
Import-DscResource -ModuleName @{ModuleName = 'xWebAdministration';ModuleVersion = '1.19.0.0'}
Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
Konfigurasi mengharuskan Anda memiliki modul xWebAdministration versi 1.19.0.0 dan modul PSDesiredStateConfiguration.
Uji konten di konfigurasi mesin Azure
Untuk mengevaluasi apakah Anda dapat menggunakan konten Anda dari Konfigurasi Status Azure Automation untuk konfigurasi komputer, ikuti tutorial langkah demi langkah dalam Cara membuat artefak paket konfigurasi komputer kustom.
Ketika Anda mencapai langkah Konfigurasi pembuat, skrip konfigurasi yang menghasilkan file MOF harus menjadi salah satu skrip yang Anda ekspor dari Azure Automation State Configuration. Anda harus menginstal modul PowerShell yang diperlukan di lingkungan Anda sebelum Anda dapat menyusun konfigurasi ke file MOF dan membuat paket konfigurasi mesin.
Bagaimana jika modul tidak berfungsi dengan konfigurasi komputer?
Beberapa modul mungkin memiliki masalah kompatibilitas dengan konfigurasi komputer. Masalah yang paling umum terkait dengan kerangka kerja .NET vs inti .NET. Informasi teknis terperinci tersedia di halaman, Perbedaan antara Windows PowerShell 5.1 dan PowerShell 7.x.
Untuk mengatasi masalah kompatibilitas, Anda dapat menjalankan perintah di Windows PowerShell dari dalam modul yang diimpor di PowerShell 7, dengan menjalankan powershell.exe
. Anda dapat meninjau modul sampel yang menggunakan teknik ini di repositori Azure-Policy tempat modul tersebut digunakan untuk mengaudit status Konfigurasi DSC Windows.
Contoh ini juga menggambarkan bukti kecil konsep.
# example function that could be loaded from module
function New-TaskResolvedInPWSH7 {
# runs the fictitious command 'Get-myNotCompatibleCommand' in Windows PowerShell
$compatObject = & powershell.exe -NoProfile -NonInteractive -Command {
Get-myNotCompatibleCommand
}
# resulting object can be used in PowerShell 7
return $compatObject
}
Apakah saya perlu menambahkan properti Alasan ke Get-TargetResource di semua modul yang saya migrasikan?
Menerapkan properti Alasan memberikan pengalaman yang lebih baik saat melihat hasil penetapan konfigurasi dari portal Azure. Get
Jika metode dalam modul tidak menyertakan Alasan, output generik dikembalikan dengan detail dari properti yang dikembalikan oleh Get
metode . Oleh karena itu, migrasi adalah opsional.
Mesin
Azure Automation State Configuration tersedia untuk mesin virtual di Azure dan mesin hybrid yang terletak di luar Azure. Anda harus merencanakan setiap skenario ini menggunakan langkah-langkah yang berbeda.
Azure VM
Mesin virtual Azure sudah memiliki sumber daya di Azure, yang berarti mereka siap untuk penugasan konfigurasi mesin yang mengaitkannya dengan konfigurasi. Tugas tingkat tinggi untuk memigrasikan mesin virtual Azure adalah menghapusnya dari Azure Automation State Configuration dan kemudian menetapkan konfigurasi menggunakan konfigurasi mesin.
Untuk menghapus mesin dari Azure Automation State Configuration, ikuti langkah-langkah di halaman Cara menghapus konfigurasi dan simpul dari Automation State Configuration.
Untuk menetapkan konfigurasi menggunakan konfigurasi komputer, ikuti langkah-langkah dalam Mulai Cepat Azure Policy, seperti Mulai Cepat: Membuat penetapan kebijakan untuk mengidentifikasi sumber daya yang tidak patuh. Pada langkah 6 saat memilih definisi kebijakan, pilih definisi yang menerapkan konfigurasi yang Anda migrasikan dari Azure Automation State Configuration.
Mesin {i>hybrid
Mesin di luar Azure dapat didaftarkan ke Azure Automation State Configuration, tetapi mereka tidak memiliki sumber daya mesin di Azure. Layanan Local Configuration Manager (LCM) di dalam komputer menangani koneksi ke Azure Automation. Catatan simpul dikelola sebagai sumber daya di jenis penyedia Azure Automation.
Sebelum menghapus mesin dari Azure Automation State Configuration, jalankan setiap simpul sebagai server berkemampuan Azure Arc. Onboarding ke Azure Arc membuat sumber daya mesin di Azure sehingga Azure Policy dapat mengelola komputer. Komputer dapat di-onboarding ke Azure Arc kapan saja, tetapi Anda dapat menggunakan Konfigurasi Status Azure Automation untuk mengotomatiskan proses.
Masalah pemecahan masalah saat mengekspor konten
Detail tentang masalah yang diketahui disediakan di bagian ini.
Mengekspor konfigurasi menghasilkan karakter "\" dalam nama file
Saat menggunakan PowerShell di macOS dan Linux, Anda mungkin mengalami masalah saat menangani output nama file oleh Export-AzAutomationDSCConfiguration
.
Sebagai solusinya, instal modul AADSCConfigContent dari Galeri PowerShell. Modul ini memiliki satu perintah yang mengekspor konten konfigurasi yang disimpan di Azure Automation dengan membuat permintaan REST ke layanan.
Langkah berikutnya
- Mengembangkan paket konfigurasi komputer kustom.
- Gunakan modul GuestConfiguration untuk membuat definisi Azure Policy untuk manajemen skala lingkungan Anda.
- Tetapkan definisi kebijakan kustom Anda menggunakan portal Microsoft Azure.
- Pelajari cara menampilkan penetapan kebijakan detail kepatuhan untuk konfigurasi mesin.