PowerShell
डीएससी क्लास-आधारित संसाधन बनाना
खोज…
परिचय
PowerShell संस्करण 5.0 से शुरू करके, आप वांछित राज्य कॉन्फ़िगरेशन (DSC) संसाधन बनाने के लिए PowerShell वर्ग परिभाषाओं का उपयोग कर सकते हैं।
DSC संसाधन के निर्माण में सहायता के लिए, एक [DscResource()]
विशेषता है जो वर्ग परिभाषा पर लागू होती है, और एक [DscProperty()]
संसाधन DSC संसाधन उपयोगकर्ता द्वारा विन्यास के रूप में गुणों को नामित करने के लिए।
टिप्पणियों
एक क्लास-आधारित DSC संसाधन होना चाहिए:
-
[DscResource()]
विशेषता से सजाया[DscResource()]
- एक
Test()
विधि को परिभाषित करें जो[bool]
लौटाता है - एक
Get()
विधि को परिभाषित करें जो अपना स्वयं का ऑब्जेक्ट प्रकार लौटाता है (जैसे।[Ticket]
) - एक
Set()
विधि को परिभाषितSet()
जो वापस आती है[void]
- कम से कम एक
Key
डीएससी संपत्ति
क्लास-आधारित PowerShell DSC संसाधन बनाने के बाद, मॉड्यूल मॉड्यूल (.psd1) फ़ाइल का उपयोग करके इसे मॉड्यूल से "निर्यात" किया जाना चाहिए। मॉड्यूल मेनिफेस्ट के भीतर, DscResourcesToExport
कुंजी का उपयोग मॉड्यूल से "निर्यात" करने के लिए डीएससी रिसोर्सेस (वर्ग नाम) की एक सरणी घोषित करने के लिए किया जाता है। यह DSC मॉड्यूल के उपभोक्ताओं को मॉड्यूल के अंदर वर्ग-आधारित संसाधनों को "देखने" के लिए सक्षम बनाता है।
एक DSC संसाधन कंकाल कक्षा बनाएँ
[DscResource()]
class File {
}
यह उदाहरण दर्शाता है कि PowerShell वर्ग के बाहरी भाग का निर्माण कैसे किया जाता है, जो DSC संसाधन की घोषणा करता है। आपको अभी भी वर्ग परिभाषा की सामग्री को भरना होगा।
मुख्य संपत्ति के साथ डीएससी संसाधन कंकाल
[DscResource()]
class Ticket {
[DscProperty(Key)]
[string] $TicketId
}
एक डीएससी संसाधन को कम से कम एक प्रमुख संपत्ति की घोषणा करनी चाहिए। मुख्य संपत्ति वह है जो विशिष्ट रूप से अन्य संसाधनों से संसाधन की पहचान करती है। उदाहरण के लिए, मान लें कि आप एक DSC संसाधन का निर्माण कर रहे हैं जो टिकटिंग प्रणाली में टिकट का प्रतिनिधित्व करता है। प्रत्येक टिकट को टिकट आईडी के साथ विशिष्ट रूप से दर्शाया जाएगा।
डीएससी संसाधन के उपयोगकर्ता के सामने आने वाली प्रत्येक संपत्ति को [DscProperty()]
विशेषता से सजाया जाना चाहिए। यह गुण एक key
पैरामीटर को स्वीकार करता है, यह इंगित करने के लिए कि संपत्ति डीएससी संसाधन के लिए एक प्रमुख विशेषता है।
अनिवार्य संपत्ति के साथ डीएससी संसाधन
[DscResource()]
class Ticket {
[DscProperty(Key)]
[string] $TicketId
[DscProperty(Mandatory)]
[string] $Subject
}
डीएससी संसाधन का निर्माण करते समय, आप अक्सर पाएंगे कि हर एक संपत्ति अनिवार्य नहीं होनी चाहिए। हालाँकि, कुछ मुख्य गुण हैं जिन्हें आप सुनिश्चित करना चाहते हैं कि DSC संसाधन के उपयोगकर्ता द्वारा कॉन्फ़िगर किया गया है। आप DSC संसाधन के उपयोगकर्ता द्वारा आवश्यक संपत्ति घोषित करने के लिए [DscResource()]
विशेषता के Mandatory
पैरामीटर का उपयोग करते हैं।
ऊपर के उदाहरण में, हमने एक Ticket
संसाधन में एक Subject
संपत्ति जोड़ी है, जो एक टिकट प्रणाली में एक अद्वितीय टिकट का प्रतिनिधित्व करता है, और इसे Mandatory
संपत्ति के रूप में नामित किया है।
आवश्यक तरीकों के साथ डीएससी संसाधन
[DscResource()]
class Ticket {
[DscProperty(Key)]
[string] $TicketId
# The subject line of the ticket
[DscProperty(Mandatory)]
[string] $Subject
# Get / Set if ticket should be open or closed
[DscProperty(Mandatory)]
[string] $TicketState
[void] Set() {
# Create or update the resource
}
[Ticket] Get() {
# Return the resource's current state as an object
$TicketState = [Ticket]::new()
return $TicketState
}
[bool] Test() {
# Return $true if desired state is met
# Return $false if desired state is not met
return $false
}
}
यह एक पूर्ण DSC संसाधन है जो एक वैध संसाधन बनाने के लिए सभी मुख्य आवश्यकताओं को प्रदर्शित करता है। विधि कार्यान्वयन पूर्ण नहीं हैं, लेकिन मूल संरचना दिखाने के इरादे से प्रदान किए जाते हैं।