Mengompilasi konfigurasi DSC dalam Azure Automation State Configuration
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.
Perhatian
Azure Automation DSC untuk Linux telah dihentikan pada 30 September 2023. Untuk informasi selengkapnya, lihat pengumuman.
Anda dapat mengompilasi konfigurasi Desired State Configuration (DSC) di Azure Automation State Configuration dengan cara berikut:
Layanan kompilasi Azure State Configuration
- Metode pemula dengan antarmuka pengguna interaktif
- Melacak status tugas dengan mudah
Windows PowerShell
- Memanggil dari Windows PowerShell di stasiun kerja lokal atau membangun layanan
- Terintegrasi dengan alur uji pengembangan
- Menyediakan nilai parameter yang kompleks
- Bekerja dengan data node dan non-node dalam skala besar
- Peningkatan performa yang signifikan
Anda juga dapat menggunakan templat Azure Resource Manager dengan ekstensi Azure Desired State Configuration (DSC) untuk mendorong konfigurasi ke Azure VM Anda. Ekstensi Azure DSC menggunakan kerangka kerja Azure VM Agent untuk memberikan, memberlakukan, dan melaporkan konfigurasi DSC yang berjalan di Azure VM. Untuk detail kompilasi menggunakan templat Azure Resource Manager, lihat Ekstensi Desired State Configuration dengan templat Azure Resource Manager.
Mengompilasi konfigurasi DSC di Azure State Configuration
Portal
- Di akun Automation Anda, pilih Konfigurasi status (DSC).
- Pilih pada tab Konfigurasi , lalu pilih nama konfigurasi untuk dikompilasi.
- Pilih Kompilasi.
- Jika konfigurasi tidak memiliki parameter, Anda akan diminta untuk mengonfirmasi apakah Anda ingin mengompilasinya. Jika konfigurasi memiliki parameter, panel Konfigurasi Kompilasi terbuka sehingga Anda dapat memberikan nilai parameter.
- Halaman Pekerjaan Kompilasi terbuka sehingga Anda dapat melacak status pekerjaan kompilasi. Anda juga dapat menggunakan halaman ini untuk melacak konfigurasi node (dokumen konfigurasi MOF) yang ditempatkan di server tarik Azure Automation State Configuration.
Azure PowerShell
Anda dapat menggunakan Start-AzAutomationDscCompilationJob untuk mulai mengompilasi dengan Windows PowerShell. Contoh kode berikut memulai kompilasi konfigurasi DSC yang disebut SampleConfig.
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'SampleConfig'
Start-AzAutomationDscCompilationJob
mengembalikan objek pekerjaan kompilasi yang dapat Anda gunakan untuk melacak status pekerjaan. Anda kemudian dapat menggunakan objek pekerjaan kompilasi ini dengan Get-AzAutomationDscCompilationJob untuk menentukan status pekerjaan kompilasi, dan Get-AzAutomationDscCompilationJobOutput untuk melihat alirannya (output). Sampel berikut memulai kompilasi konfigurasi SampleConfig, menunggu hingga selesai, lalu menampilkan alirannya.
$CompilationJob = Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'SampleConfig'
while($null -eq $CompilationJob.EndTime -and $null -eq $CompilationJob.Exception)
{
$CompilationJob = $CompilationJob | Get-AzAutomationDscCompilationJob
Start-Sleep -Seconds 3
}
$CompilationJob | Get-AzAutomationDscCompilationJobOutput –Stream Any
Mendeklarasikan parameter dasar
Deklarasi parameter dalam konfigurasi DSC, termasuk jenis parameter dan properti, berfungsi sama seperti dalam runbook Azure Automation. Untuk mempelajari selengkapnya tentang parameter runbook, lihat Memulai runbook di Azure Automation.
Contoh berikut menggunakan FeatureName
dan parameter IsPresent
untuk menentukan nilai properti dalam konfigurasi node ParametersExample.sample yang dihasilkan selama kompilasi.
Configuration ParametersExample
{
param(
[Parameter(Mandatory=$true)]
[string] $FeatureName,
[Parameter(Mandatory=$true)]
[boolean] $IsPresent
)
$EnsureString = 'Present'
if($IsPresent -eq $false)
{
$EnsureString = 'Absent'
}
Node 'sample'
{
WindowsFeature ($FeatureName + 'Feature')
{
Ensure = $EnsureString
Name = $FeatureName
}
}
}
Anda dapat mengompilasi konfigurasi DSC yang menggunakan parameter dasar di portal Microsoft Azure Automation State Configuration atau dengan Azure PowerShell.
Portal
Di portal, Anda dapat memasukkan nilai parameter setelah mengeklik Kompilasi.
Azure PowerShell
PowerShell memerlukan parameter dalam hashtable tempat key cocok dengan nama parameter dan nilainya sama dengan nilai parameter.
$Parameters = @{
'FeatureName' = 'Web-Server'
'IsPresent' = $False
}
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'ParametersExample' -Parameters $Parameters
Untuk informasi tentang memberikan objek PSCredential
sebagai parameter, lihat Aset kredensial.
Mengompilasi konfigurasi yang berisi sumber daya komposit di Azure Automation
Fitur Sumber Daya Komposit memungkinkan Anda menggunakan konfigurasi DSC sebagai sumber daya berlapis di dalam konfigurasi. Fitur ini memungkinkan penerapan beberapa konfigurasi ke satu sumber daya. Lihat Sumber daya komposit: Menggunakan konfigurasi DSC sebagai sumber daya untuk mempelajari selengkapnya tentang sumber daya komposit.
Catatan
Agar konfigurasi yang berisi sumber daya komposit dikompilasi dengan benar, Anda harus terlebih dahulu mengimpor ke Azure Automation sumber daya DSC apa pun yang diandalkan komposit. Menambahkan sumber daya komposit DSC tidak berbeda dengan menambahkan modul PowerShell apa pun ke Azure Automation. Proses ini didokumentasikan dalam Mengelola Modul di Azure Automation.
Mengelola ConfigurationData saat mengompilasi konfigurasi di Azure Automation
ConfigurationData
adalah parameter DSC bawaan yang memungkinkan Anda memisahkan konfigurasi struktural dari konfigurasi khusus lingkungan saat menggunakan PowerShell DSC. Untuk informasi selengkapnya, lihat Memisahkan "Apa" dari "Di mana" di PowerShell DSC.
Catatan
Saat mengompilasi di Azure Automation State Configuration, Anda dapat menggunakan ConfigurationData
di Azure PowerShell tetapi tidak di portal Microsoft Azure.
Contoh konfigurasi DSC berikut menggunakan ConfigurationData
melalui $ConfigurationData
dan kata kunci $AllNodes
. Anda juga memerlukan modul xWebAdministration untuk contoh ini.
Configuration ConfigurationDataSample
{
Import-DscResource -ModuleName xWebAdministration -Name MSFT_xWebsite
Write-Verbose $ConfigurationData.NonNodeData.SomeMessage
Node $AllNodes.Where{$_.Role -eq 'WebServer'}.NodeName
{
xWebsite Site
{
Name = $Node.SiteName
PhysicalPath = $Node.SiteContents
Ensure = 'Present'
}
}
}
Anda dapat mengompilasi konfigurasi DSC sebelumnya dengan Windows PowerShell. Skrip berikut menambahkan dua konfigurasi node ke layanan tarik Azure Automation State Configuration: ConfigurationDataSample.MyVM1 dan ConfigurationDataSample.MyVM3.
$ConfigData = @{
AllNodes = @(
@{
NodeName = 'MyVM1'
Role = 'WebServer'
},
@{
NodeName = 'MyVM2'
Role = 'SQLServer'
},
@{
NodeName = 'MyVM3'
Role = 'WebServer'
}
)
NonNodeData = @{
SomeMessage = 'I love Azure Automation State Configuration and DSC!'
}
}
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'ConfigurationDataSample' -ConfigurationData $ConfigData
Bekerja dengan aset di Azure Automation selama kompilasi
Referensi aset di Azure Automation State Configuration dan runbook sama. Untuk informasi lebih lanjut, baca artikel berikut:
Aset kredensial
Jika konfigurasi memiliki parameter yang menentukan PSCredential
objek, gunakan Get-AutomationPSCredential
dengan meneruskan nama aset kredensial Azure Automation ke cmdlet untuk mengambil kredensial. Azure Automation meneruskan kredensial ke konfigurasi.
Untuk menjaga kredensial tetap aman dalam konfigurasi simpul, enkripsi kredensial dalam file MOF konfigurasi simpul. Anda harus memberikan izin PowerShell DSC ke info masuk output dalam teks biasa selama pembuatan MOF konfigurasi node. PowerShell DSC tidak menyadari bahwa Azure Automation mengenkripsi seluruh file MOF setelah dihasilkan oleh pekerjaan kompilasi.
Anda dapat memberi tahu PowerShell DSC bahwa kredensial tidak apa-apa untuk dihasilkan dalam teks biasa dalam MOF konfigurasi node yang dihasilkan menggunakan Data konfigurasi. Anda harus meneruskan PSDscAllowPlainTextPassword = $true
via ConfigurationData
untuk setiap nama blok node yang muncul di konfigurasi DSC dan menggunakan kredensial.
Contoh berikut menunjukkan konfigurasi DSC yang menggunakan aset kredensial Automation.
Configuration CredentialSample
{
Import-DscResource -ModuleName PSDesiredStateConfiguration
$Cred = Get-AutomationPSCredential 'SomeCredentialAsset'
Node $AllNodes.NodeName
{
File ExampleFile
{
SourcePath = '\\Server\share\path\file.ext'
DestinationPath = 'C:\destinationPath'
Credential = $Cred
}
}
}
Anda dapat mengompilasi konfigurasi DSC sebelumnya dengan PowerShell. Kode PowerShell berikut menambahkan dua konfigurasi node ke server tarik Azure Automation State Configuration: CredentialSample.MyVM1 dan CredentialSample.MyVM2.
$ConfigData = @{
AllNodes = @(
@{
NodeName = '*'
PSDscAllowPlainTextPassword = $True
},
@{
NodeName = 'MyVM1'
},
@{
NodeName = 'MyVM2'
}
)
}
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'CredentialSample' -ConfigurationData $ConfigData
Catatan
Ketika kompilasi selesai, Anda mungkin menerima pesan kesalahan The 'Microsoft.PowerShell.Management' module was not imported because the 'Microsoft.PowerShell.Management' snap-in was already imported.
Anda dapat mengabaikan pesan ini dengan aman.
Mengompilasi konfigurasi DSC Anda di Windows PowerShell
Proses untuk mengompilasi konfigurasi DSC di Windows PowerShell disertakan dalam dokumentasi PowerShell DSC Menulis, Mengompilasi, dan Menerapkan Konfigurasi. Anda dapat menjalankan proses ini dari stasiun kerja developer atau dalam layanan build, seperti Azure DevOps. Anda kemudian dapat mengimpor file MOF yang dihasilkan dengan mengompilasi konfigurasi ke dalam layanan Konfigurasi Status Azure.
Mengompilasi di Windows PowerShell juga menyediakan opsi untuk menandatangani konten konfigurasi. Agen DSC memverifikasi konfigurasi node yang ditandatangani secara lokal pada node terkelola. Verifikasi memastikan bahwa konfigurasi yang diterapkan pada node berasal dari sumber resmi.
Anda juga dapat mengimpor konfigurasi simpul yang dikompilasi di luar Azure. Impor mencakup kompilasi dari stasiun kerja developer atau dalam layanan seperti Azure DevOps. Pendekatan ini memiliki beberapa keuntungan, termasuk performa dan keandalan.
Catatan
File konfigurasi node harus tidak lebih besar dari 1 MB untuk memungkinkan Azure Automation mengimpornya.
Untuk informasi selengkapnya tentang penandatanganan konfigurasi node, lihat Peningkatan di WMF 5.1 - Cara menandatangani konfigurasi dan modul.
Mengimpor konfigurasi node di portal Microsoft Azure
Di akun Automation Anda, pilih Konfigurasi status (DSC) di bawah Manajemen Konfigurasi.
Pada halaman Konfigurasi status (DSC), pilih pada tab Konfigurasi , lalu pilih Tambahkan.
Pada halaman Impor, pilih ikon folder di samping bidang File Konfigurasi Simpul untuk menelusuri file MOF konfigurasi simpul di komputer lokal Anda.
Masukkan nama di bidang Nama Konfigurasi. Nama ini harus cocok dengan nama konfigurasi tempat asal konfigurasi node dikompilasi.
Pilih OK.
Mengimpor konfigurasi node dengan Azure PowerShell
Anda dapat menggunakan cmdlet Import-AzAutomationDscNodeConfiguration untuk mengimpor konfigurasi node ke akun Automation Anda.
$importAzAutomationDscNodeConfigurationSplat = @{
AutomationAccountName = 'MyAutomationAccount'
ResourceGroupName = 'MyResourceGroup'
ConfigurationName = 'MyNodeConfiguration'
Path = 'C:\MyConfigurations\TestVM1.mof'
}
Import-AzAutomationDscNodeConfiguration @importAzAutomationDscNodeConfigurationSplat
Langkah berikutnya
- Untuk memulai, lihat Mulai menggunakan Azure Automation State Configuration.
- Untuk mempelajari tentang mengompilasi konfigurasi DSC sehingga Anda dapat menetapkannya ke simpul target, lihat Mengompilasi konfigurasi DSC di Azure Automation State Configuration.
- Untuk referensi cmdlet PowerShell, lihat Az.Automation.
- Untuk informasi harga, lihat Harga Azure Automation State Configuration.
- Untuk contoh penggunaan Konfigurasi Status dalam alur penyebaran berkelanjutan, lihat Menyiapkan penyebaran berkelanjutan dengan Chocolatey.