5.PowerShell DSC核心概念之资源
2024-09-07 00:46:07
什么是资源?
资源为 DSC 配置提供构建基块。
资源公开可配置的属性,并包含本地配置管理器 (LCM) 调用以“使其如此”的 PowerShell 脚本函数。
系统内置资源
可在PowerShell命令窗中输入Get-DSCResource查看系统内置的资源
(在命令窗中输入命令的时候,可使用tab键进行补全提示)
我们可以看到内置了一些常用的资源,比如File、User等
第三资源
系统内置的资源很可能不能满足我们的需求,我们可以在公共的hub中下载,地址:https://www.powershellgallery.com/
其实这东西和nuget(https://www.nuget.org/)非常的相似,你也可以自己写资源上传,供大家下载使用。
自定义资源
有些时候,系统内置的资源和第三方资源仍然不满足我们的需求,就需要根据具体的业务进行定制资源。
首先需要明白一点:PowerShell DSC配置是围绕 Get 、Test 和 Set 构建的。
以下我们使用基于 MOF 编写自定义 DSC 资源
文件夹结构
$env:ProgramFiles\WindowsPowerShell\Modules (folder)
|- MyDscResources (folder)
|- DSCResources (folder)
|- Demo_IISWebsite (folder)
|- Demo_IISWebsite.psd1 (file, optional)
|- Demo_IISWebsite.psm1 (file, required)
|- Demo_IISWebsite.schema.mof (file, required)
.schema.mof 编写
简单来讲,就是定义当前资源的参数
[ClassVersion("1.0.0"), FriendlyName("Website")]
class Demo_IISWebsite : OMI_BaseResource
{
[Key] string Name;
[Required] string PhysicalPath;
[write,ValueMap{"Present", "Absent"},Values{"Present", "Absent"}] string Ensure;
[write,ValueMap{"Started","Stopped"},Values{"Started", "Stopped"}] string State;
[write] string Protocol[];
[write] string BindingInfo[];
[write] string ApplicationPool;
[read] string ID;
};
.psm1文件编写
资源脚本实现资源的逻辑。 此模块中必须包含三个函数,名称如下:
function Get-TargetResource{
//todo
}
function Set-TargetResource{
//todo
}
function Test-TargetResource{
//todo
}
.psd1文件编写
@{
ModuleVersion = '1.0'
GUID = '6AB5ED33-E923-41d8-A3A4-5ADDA2B301DE'
Author = 'Contoso'
CompanyName = 'Contoso'
Copyright = 'Contoso. All rights reserved.'
FunctionsToExport = @("Get-TargetResource", "Set-TargetResource", "Test-TargetResource")
}
参考
https://docs.microsoft.com/zh-cn/powershell/dsc/resources/resources
最新文章
- 原来scanf读入字符串还能这样..
- SPSS数据分析—两阶段最小二乘法
- orace 取昨天凌晨的日期
- Oracle 创建表空间一边串过程
- select..in(参数化) 解决注入式问题
- Linux命令详解之—pwd命令
- pre 随变化的样式
- ACE_linux:任务 &; 命令(Task and Command)
- 音频播放AVFoundation框架
- 监听UITabBarItem来拦截是否要跳转
- 1218.1——OC中的常见关键字及一些基本方法
- .c和.h文件的区别(头文件与之实现文件的的关系~ )
- mysql数据库开启慢查询日志
- 使用zabbix_agent监控第一台linux服务器
- Elasticsearch 学习(二):安装和使用
- Python 列表(List)
- redis-LinkedList
- zabbix 监控基础
- EXCEL这样根据某单元格的内容来改变整行颜色
- 转载:使用Nginx的必备软件(1.3.2)《深入理解Nginx》(陶辉)