Menggunakan data konfigurasi di DSC
Berlaku Untuk: Windows PowerShell 4.0, Windows PowerShell 5.0
Dengan menggunakan parameter ConfigurationData DSC bawaan, Anda dapat menentukan data yang dapat digunakan dalam konfigurasi. Ini memungkinkan Anda membuat satu konfigurasi yang dapat digunakan untuk beberapa simpul atau untuk lingkungan yang berbeda. Misalnya, jika Anda mengembangkan aplikasi, Anda dapat menggunakan satu konfigurasi untuk lingkungan pengembangan dan produksi, dan menggunakan data konfigurasi untuk menentukan data untuk setiap lingkungan.
Topik ini menjelaskan struktur hashtable ConfigurationData . Untuk contoh cara menggunakan data konfigurasi, lihat Memisahkan konfigurasi dan data lingkungan.
Parameter umum ConfigurationData
Konfigurasi DSC mengambil parameter umum, ConfigurationData, yang Anda tentukan saat mengkompilasi konfigurasi. Untuk informasi tentang mengkompilasi konfigurasi, lihat Konfigurasi DSC.
Parameter ConfigurationData adalah hashtable yang harus memiliki setidaknya satu kunci bernama AllNodes. Ini juga dapat memiliki satu atau beberapa kunci lainnya.
Catatan
Contoh dalam topik ini menggunakan satu kunci tambahan (selain kunci AllNodes bernama ), NonNodeData
tetapi Anda dapat menyertakan sejumlah kunci tambahan, dan memberi nama apa pun yang Anda inginkan.
$MyData =
@{
AllNodes = @()
NonNodeData = ""
}
Nilai kunci AllNodes adalah array. Setiap elemen array ini juga merupakan tabel hash yang harus memiliki setidaknya satu kunci bernama NodeName:
$MyData =
@{
AllNodes =
@(
@{
NodeName = "VM-1"
},
@{
NodeName = "VM-2"
},
@{
NodeName = "VM-3"
}
);
NonNodeData = ""
}
Anda juga dapat menambahkan kunci lain ke setiap tabel hash:
$MyData =
@{
AllNodes =
@(
@{
NodeName = "VM-1"
Role = "WebServer"
},
@{
NodeName = "VM-2"
Role = "SQLServer"
},
@{
NodeName = "VM-3"
Role = "WebServer"
}
);
NonNodeData = ""
}
Untuk menerapkan properti ke semua simpul, Anda dapat membuat anggota array AllNodes yang memiliki NodeName .*
Misalnya, untuk memberi setiap simpul LogPath
properti, Anda dapat melakukan ini:
$MyData =
@{
AllNodes =
@(
@{
NodeName = "*"
LogPath = "C:\Logs"
},
@{
NodeName = "VM-1"
Role = "WebServer"
SiteContents = "C:\Site1"
SiteName = "Website1"
},
@{
NodeName = "VM-2"
Role = "SQLServer"
},
@{
NodeName = "VM-3"
Role = "WebServer"
SiteContents = "C:\Site2"
SiteName = "Website3"
}
);
}
Ini setara dengan menambahkan properti dengan nama LogPath
dengan nilai "C:\Logs"
ke masing-masing blok lain (VM-1
, VM-2
, dan VM-3
).
Menentukan hashtable ConfigurationData
Anda dapat menentukan ConfigurationData baik sebagai variabel dalam file skrip yang sama dengan konfigurasi (seperti dalam contoh kami sebelumnya) atau dalam file terpisah .psd1
. Untuk menentukan ConfigurationData dalam .psd1
file, buat file yang hanya berisi hashtable yang mewakili data konfigurasi.
Misalnya, Anda dapat membuat file bernama MyData.psd1
dengan konten berikut:
@{
AllNodes =
@(
@{
NodeName = 'VM-1'
FeatureName = 'Web-Server'
},
@{
NodeName = 'VM-2'
FeatureName = 'Hyper-V'
}
)
}
Mengkompilasi konfigurasi dengan data konfigurasi
Untuk mengkompilasi konfigurasi yang telah Anda tentukan data konfigurasinya, Anda meneruskan data konfigurasi sebagai nilai parameter ConfigurationData .
Ini akan membuat file MOF untuk setiap entri dalam array AllNodes . Setiap file MOF akan diberi nama dengan NodeName
properti entri array yang sesuai.
Misalnya, jika Anda menentukan data konfigurasi seperti pada file di MyData.psd1
atas, mengkompilasi konfigurasi akan membuat file dan VM-2.mof
.VM-1.mof
Mengkompilasi konfigurasi dengan data konfigurasi menggunakan variabel
Untuk menggunakan data konfigurasi yang didefinisikan sebagai variabel dalam file yang sama .ps1
dengan konfigurasi, Anda meneruskan nama variabel sebagai nilai parameter ConfigurationData saat mengkompilasi konfigurasi:
MyDscConfiguration -ConfigurationData $MyData
Mengkompilasi konfigurasi dengan data konfigurasi menggunakan file data
Untuk menggunakan data konfigurasi yang ditentukan dalam file .psd1, Anda melewati jalur dan nama file tersebut sebagai nilai parameter ConfigurationData saat mengkompilasi konfigurasi:
MyDscConfiguration -ConfigurationData .\MyData.psd1
Menggunakan variabel ConfigurationData dalam konfigurasi
DSC menyediakan variabel khusus berikut yang dapat digunakan dalam skrip konfigurasi:
- $AllNodes mengacu pada seluruh koleksi simpul yang ditentukan dalam ConfigurationData. Anda dapat memfilter koleksi AllNodes dengan menggunakan . Where() dan . ForEach().
- ConfigurationData mengacu pada seluruh tabel hash yang diteruskan sebagai parameter saat mengkompilasi konfigurasi.
- MyTypeName berisi nama konfigurasi tempat variabel digunakan. Misalnya, dalam konfigurasi
MyDscConfiguration
,$MyTypeName
akan memiliki nilaiMyDscConfiguration
. - Simpul mengacu pada entri tertentu dalam koleksi AllNodes setelah difilter dengan menggunakan . Where() atau . ForEach().
- Anda dapat membaca selengkapnya tentang metode ini di about_arrays
Menggunakan data non-simpul
Seperti yang telah kita lihat dalam contoh sebelumnya, hashtable ConfigurationData dapat memiliki satu atau beberapa kunci selain kunci AllNodes yang diperlukan. Dalam contoh dalam topik ini, kami hanya menggunakan satu simpul tambahan, dan menamainya NonNodeData
. Namun, Anda dapat menentukan sejumlah kunci tambahan, dan memberi nama apa pun yang Anda inginkan.
Untuk contoh penggunaan data non-simpul, lihat Memisahkan konfigurasi dan data lingkungan.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk