频道栏目
首页 > 资讯 > 其他 > 正文

WindowPowerShell学习系列----DSC的资源(Resource)以及配置和格式(Configuration&&Sytax)

17-01-11        来源:[db:作者]  
收藏   我要投稿

这个章节主要来讲述DSC的资源(Resource)以及配置和格式(Configuration && Sytax )。

#1 DSC 资源(The DSC resources)

简单的来说,DSC资源就是被用来配置节点成理想状态的一个最低资源的单位的集合。PowerShell DSC会默认提供一些内置的DSC 资源。比如,我们在PowerShell控制台执行Get-DSCResource这个命令,其会列出所有的内置的可用的资源。

File: 管理文件和文件夹

Archive: 压缩和解压缩zip格式的文件

Environment: 管理系统的环境变量

Log: 把消息写入到PowerShell DSC的事件日志里面

Package: 安装或者卸载软件包

Registry: 管理除了HKEY User以外的注册表

Script: 在目标节点上面执行PowerShell的命令或者脚本

Service: 管理Window的服务(比如状态,启动类型)

User: 管理本地系统上的用户

WindowsFeature:添加或者删除一个角色或者功能(role/feature)

WindowsOptionalFeature: 添加或者删除一个可选的角色或者功能(role/feature)

WindowsProcess: 管理Window的进程

WaitForAll/WaitForAny/WaitForSome: 在PowerShell WMF 5.0 的版本中可用。支持跨计算机的同步;且支持不同计算机之间的部署依赖。比如,有一个Web服务器和一个数据库服务器,可以设定当数据库服务器的数据库更新后,Web服务器上的应用程序才能安装。 此外,PowerShell也支持对PowerShell DSC的资源的扩展。最新的扩展的DSC Resouce有下面这些。

cFileSharexActiveDirectoryxAdcsDeploymentxAzurexAzurePackxBitlockerxChromexComputerManagementxCredSSPxDatabasexDhcpServerxDiskxDismFeaturexDnsServerxDscDiagnosticsxDSCResourceDesignerxExchangexFailOverClusterxFirefoxxHyper-VxInternetExplorerHomePagexJeaxMySqlxNetworkingxOUxPendingRebootxPhpxPowerShellExecutionPolicyxPSDesiredStateConfigurationxReleaseManagementxRemoteDesktopAdminxRemoteDesktopSessionHostxSafeHarborxSCDPMxSCOMxSCSMAxSCSPFxSCSRxSCVMMxSmbSharexSqlPsxSQLServerxSystemSecurityxTimeZonexWebAdministrationxWindowsRestorexWindowsUpdatexWinEventLogxWordPress

#2 DSC配置格式(DSC Syntax)

既然PowerShellDSC能够定义用来定义理想配置状态,那么这个理想配置状态肯定是由一个配置文件来描述的,那么这个配置文件必须遵从一定的格式,下面来介绍一下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部分:包含了要在这个配置文件中使用的参数,相当于一个方法的传入参数。

第3部分 这部分主要用来显示配置需要部署到个服务器上

第4部分: 就是你想配置的PowerShell 资源.当前的例子, 其使用了"File"和“WindowFeature”,后面跟上一个友好的名字描述。

第5部分:包含期望的资源的状态的属性描述,其使用键值对描述的“key=value”

下面是一个具体的例子,用来把一个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 } } }

上面是一个具体的例子,用来把一个Hosts文件拷贝到目标机器上。简单解释一下上面的PowerShell DSC的程序,当前的配置文件名字叫做

DeployHostFile,其包含了3个强制的传入参数($Servers, $SourceFile, $DestinationFile). Node部分显示器有一个File类型的资源,将会在目标节点上生成。

使用下面的命令,可以得到具体的格式的信息。具体信息,请参考https://msdn.microsoft.com/en-us/powershell/dsc/builtinresource

PS>Get-DSCResourceFile-syntax

相关TAG标签
上一篇:Hadoop伪分布式配置
下一篇:ECharts浮动柱状图
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站