Mengompilasi konfigurasi DSC dalam Azure Automation State Configuration
Catatan
Sebelum Anda mengaktifkan Konfigurasi Status Automation, kami ingin Anda mengetahui bahwa versi DSC yang lebih baru sekarang tersedia secara umum, dikelola oleh fitur Azure Policy bernama konfigurasi tamu. Layanan konfigurasi tamu menggabungkan fitur Ekstensi DSC, Konfigurasi Status Azure Automation, dan fitur yang paling sering diminta dari umpan balik pelanggan. Konfigurasi tamu juga mencakup dukungan komputer hibrid melalui server berkemampuan Arc.
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, klik Konfigurasi Status (DSC).
- Klik pada tab Konfigurasi, lalu klik nama konfigurasi untuk mengompilasi.
- Klik Kompilasi.
- Jika konfigurasi tidak memiliki parameter, Anda akan diminta untuk mengonfirmasi apakah Anda ingin mengompilasinya. Jika konfigurasi memiliki parameter, bilah Kompilasi Konfigurasi 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. Lihat Memulai runbook di Azure Automation untuk mempelajari selengkapnya tentang parameter runbook.
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 mengetahui informasi selengkapnya, lihat tautan berikut:
Aset kredensial
Konfigurasi DSC di Azure Automation dapat mereferensikan aset kredensial Automation menggunakan cmdlet Get-AutomationPSCredential
. Jika konfigurasi memiliki parameter yang menentukan objek PSCredential
, gunakan Get-AutomationPSCredential
dengan meneruskan nama string aset kredensial Azure Automation ke cmdlet untuk mengambil kredensial. Kemudian, manfaatkan objek tersebut untuk parameter yang membutuhkan objek PSCredential
. Di balik layar, aset kredensial Azure Automation dengan nama tersebut diambil dan diteruskan ke konfigurasi. Contoh di bawah ini menunjukkan skenario ini dalam tindakan.
Menjaga kredensial tetap aman dalam konfigurasi node (dokumen konfigurasi MOF) memerlukan enkripsi kredensial dalam konfigurasi node file MOF. Saat ini Anda harus memberi PowerShell izin DSC untuk mengeluarkan kredensial dalam teks biasa selama konfigurasi node MOF generasi. PowerShell DSC tidak mengetahui bahwa Azure Automation mengenkripsi seluruh file MOF setelah pembuatannya melalui pekerjaan kompilasi.
Anda dapat memberi tahu PowerShell DSC bahwa output kredensial dapat berupa 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 sepenuhnya.
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 node (file MOF) yang telah 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
Dari akun Automation Anda, pilih Konfigurasi status (DSC) di Manajemen Konfigurasi.
Pada halaman konfigurasi status (DSC), klik tab Konfigurasi, lalu klik Tambahkan.
Pada halaman Impor, klik ikon folder di samping bidang File Konfigurasi Node untuk menelusuri file MOF konfigurasi node di komputer lokal Anda.
Masukkan nama di bidang Nama Konfigurasi. Nama ini harus cocok dengan nama konfigurasi tempat asal konfigurasi node dikompilasi.
Klik OK.
Mengimpor konfigurasi node dengan Azure PowerShell
Anda dapat menggunakan cmdlet Import-AzAutomationDscNodeConfiguration untuk mengimpor konfigurasi node ke akun Automation Anda.
Import-AzAutomationDscNodeConfiguration -AutomationAccountName 'MyAutomationAccount' -ResourceGroupName 'MyResourceGroup' -ConfigurationName 'MyNodeConfiguration' -Path 'C:\MyConfigurations\TestVM1.mof'
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 State Configuration dalam alur penerapan berkelanjutan, lihat Menyiapkan penyebaran berkelanjutan dengan Chocolatey.