準備先決條件
1. Visual Studio 推薦2012
或者更高
2. PowerShell
4.0
3. MOF文件
概述
1. 在使用C#構建DSC
資源時同樣需要MOF(即DSC資源架構文件)爲生成該文件我們可以使用TechNet上發佈的xDSCResource工具進行生成
2. 在使用C#構建DSC
資源時同樣需要需要以下三條Cmdlet 即Get-TargetResource,Set- TargetResource,Test-
TargetResource
3. Get-TargetResource
用來獲取當前資源狀態,此命令必須返回哈希字典即 System.Collections.Hashtable
4. Test-TargetResource
用來檢測當前資源狀態與用戶輸入是否一致,此命令必須返回布爾類型 即 System.Boolean
5. Set- TargetResource
用來完成用戶輸入狀態,此命令無需返回
創建MOF
架構文件
本例中我們將實現系統自帶的File 資源
資源名稱爲xFiles
下面是架構文件(文件名
xFiles.schema.mof)
[ClassVersion("1.0.0.0"),
FriendlyName("xFiles")]
class xFiles :
OMI_BaseResource
{
[Key] String
Ensure;
[Required] String
Name;
[Required] String
Path;
};
本架構中僅僅定義了三個參數
Ensure,Name,Path 且均爲必須
實現架構
打開VS 創建C#類庫項目
同時更名程序集名稱爲DSC 資源名稱 即xFiles
添加對System.Management.Automation.dll
引用
路徑爲
(.net 版本不同文件路徑位置可能稍有變化)
C:WindowsMicrosoft.NETassemblyGAC_MSILSystem.Management.Automationv
4.0_3.0.0.0__31bf3856ad364e35System.Management.Automation.dll
實現Get-TargetResource
實現Test-TargetResource
請注意Test-TargetResource 要求返回布爾類型
但是由於重寫 Proce***ecord() 方法必須要求Void
所以在我們判斷資源狀態時候
使用WriteObject() 方法
返回布爾類型
使用WriteObject() 方法
返回布爾類型
實現Set-TargetResource
此後生成解決方案
將生成的xFiles.DLL 與
xFiles.schema.mof 一同放在
C:WindowsSystem32WindowsPowerShellv1.0ModulesPSDesiredStateConfigurationDSCResourcesxFiles下如下圖:
此後編寫DSC 配置文件
Configuration aaa
{
node LocalHost
{
xFiles bbb
{
Name = "1.txt"
Path = "c:2"
Ensure = "absent"
}
}
}
測試
分別測試資源狀態
應用配置(全部配置要求當前都不滿足)
應用配置(部分配置狀態滿足本示例中 c:2
目錄存在)
撤銷配置(全部配置要求滿足 即全部需要撤銷配置當前均存在)
撤銷配置(部分配置狀態滿足 即 c:21.txt
不存在)
本文已於2014-08-06同步在www.ilync.cn發佈