Window PowerShell 學習系列----DSC的資源(Resource)以及配置和格式(Configuration && Sytax )
來源:程序員人生 發布時間:2017-03-10 10:17:38 閱讀次數:6994次
這個章節主要來說述DSC的資源(Resource)和配置和格式(Configuration && Sytax )。
#1 DSC 資源(The
DSC resources)
簡單的來講,DSC資源就是被用來配置節點成理想狀態的1個最低資源的單位的集合。PowerShell DSC會默許提供1些內置的DSC 資源。比如,我們在PowerShell控制臺履行Get- DSCResource這個命令,其會列出所有的內置的可用的資源。
-
File: 管理文件和文件夾
-
Archive: 緊縮和解緊縮zip格式的文件
-
Environment: 管理系統的環境變量
-
Log: 把消息寫入到PowerShell DSC的事件日志里面
-
Package: 安裝或卸載軟件包
-
Registry: 管理除HKEY User之外的注冊表
-
Script: 在目標節點上面履行PowerShell的命令或腳本
-
Service: 管理Window的服務(比如狀態,啟動類型)
-
User: 管理本地系統上的用戶
-
WindowsFeature:添加或刪除1個角色或功能(role/feature)
-
WindowsOptionalFeature: 添加或刪除1個可選的角色或功能(role/feature)
-
WindowsProcess: 管理Window的進程
-
WaitForAll / WaitForAny / WaitForSome: 在PowerShell WMF 5.0 的版本中可用。支持跨計算機的同步;且支持不同計算機之間的部署依賴。比如,有1個Web服務器和1個數據庫服務器,可以設定當數據庫服務器的數據庫更新后,Web服務器上的利用程序才能安裝。
另外,PowerShell也支持對PowerShell DSC的資源的擴大。最新的擴大的DSC Resouce有下面這些。
-
cFileShare
-
xActiveDirectory
-
xAdcsDeployment
-
xAzure
-
xAzurePack
-
xBitlocker
-
xChrome
-
xComputerManagement
-
xCredSSP
-
xDatabase
-
xDhcpServer
-
xDisk
-
xDismFeature
-
xDnsServer
-
xDscDiagnostics
-
xDSCResourceDesigner
-
xExchange
-
xFailOverCluster
-
xFirefox
-
xHyper-V
-
xInternetExplorerHomePage
-
xJea
-
xMySql
-
xNetworking
-
xOU
-
xPendingReboot
-
xPhp
-
xPowerShellExecutionPolicy
-
xPSDesiredStateConfiguration
-
xReleaseManagement
-
xRemoteDesktopAdmin
-
xRemoteDesktopSessionHost
-
xSafeHarbor
-
xSCDPM
-
xSCOM
-
xSCSMA
-
xSCSPF
-
xSCSR
-
xSCVMM
-
xSmbShare
-
xSqlPs
-
xSQLServer
-
xSystemSecurity
-
xTimeZone
-
xWebAdministration
-
xWindowsRestore
-
xWindowsUpdate
-
xWinEventLog
-
xWordPress
#2 DSC配置格式(DSC
Syntax)
既然PowerShellDSC能夠定義用來定義理想配置狀態,那末這個理想配置狀態肯定是由1個配置文件來描寫的,那末這個配置文件必須遵從1定的格式,下面來介紹1下DSC配置的結構和格式。其主要結構以下:
ConfigurationConfigName#第1部份
{
param(#第2部份
[Parameter(Mandatory=$true)]
[String[]]$Param1,
[Parameter(Mandatory=$true)]
[String]$Param2,
[Parameter(Mandatory=$true)]
[String]$Param3
)
Node$Servers#第3部份
{
FileResName#第4部份
{
... #第5部份
}
}
Node$Servers#第3部份
{
WindowsFeatureResName2#第4部份
{
... #第5部份
}
}
}
第1部份:關鍵字“Configuration”后面緊跟的是配置的名稱(ConfigurationName),主要用來描寫當前配置文件的作用。
第2部份:包括了要在這個配置文件中使用的參數,相當于1個方法的傳入參數。
第3部份 這部份主要用來顯示配置需要部署到個服務器上
第4部份: 就是你想配置的PowerShell 資源.當前的例子, 其使用了"File"和“WindowFeature”,后面跟上1個友好的名字描寫。
第5部份:包括期望的資源的狀態的屬性描寫,其使用鍵值對描寫的“key=value”
下面是1個具體的例子,用來把1個Hosts文件拷貝到目標機器上。
ConfigurationDeployHostFile
{
param(
[Parameter(Mandatory=$true)]
[String[]]$Servers,
[Parameter(Mandatory=$true)]
[String]$SourceFile,
[Parameter(Mandatory=$true)]
[String]$DestinationFile
)
Node$Servers
{
FileCopyHostFile
{
Ensure="Present"
Type="File"
SourcePath=$SourceFile
DestinationPath=$DestinationFile
}
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈