Window PowerShell 学习系列----DSC的资源(Resource)以及配置和格式(Configuration && Sytax )
来源:程序员人生 发布时间:2017-03-10 10:17:38 阅读次数:6106次
这个章节主要来说述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
}
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠