Powershell DSC 5.0 - Pull 模式 (SMB)

相对于Push模式,Pull 服务器模式一般有三种方式,分别是SMB,Http和Https。

Pull模式的基本流程是配置Node的LCM,配置服务器,然后推送配置文件给节点,节点会定期检查状态,如果状态不对,会从Pull server哪里下载新的配置文件。Pull server会验证guid值,然后对比客户端和服务器配置文件的checksum,如果匹配就算了,如果不匹配,下载新的给客户端节点。

首先看看最简单的SMB方式。

首先创建一个文件 c:\DSCSMB 然后分配共享权限

确认一下

Okay,SMB 服务器就算搭建好了。

接下来,我们需要配置MOF文件。

这里有一个现成的模块可以帮助我们生成对应的MOF,首先从powershell Gallery下载这个模块

下载安装

确认已经安装

Okay,现成可以生成Node上的LCM的meta 文件了,注意下面是PS 5.0的表达方式,和4.0的有所区别

这个配置文件和函数的写法很类似,一样可以传递参数。注意我的类型改成pull了,同时还定义了sourcepath,告诉节点应该从哪里获取配置文件

[DSCLocalconfigurationManager()]
Configuration LCM_SMBPULL 
{
    param
        (
            [Parameter(Mandatory=$true)]
            [string[]]$ComputerName,
            [Parameter(Mandatory=$true)]
            [string]$guid
        )
        
Node $ComputerName
{
        Settings {
            AllowModuleOverwrite = $True
            ConfigurationMode = ‘ApplyAndAutoCorrect‘
            RefreshMode = ‘Pull‘
            ConfigurationID = $guid
        }
           
            
            ConfigurationRepositoryShare DSCSMB {
               
             Sourcepath = "\\sydit01\DSCSMB"
            }   
}
}
# Computer list 
$ComputerName=‘sydittest‘
# Create Guid for the computers
$guid=[guid]::NewGuid()
# Create the Computer.Meta.Mof in folder
LCM_SMBPULL -ComputerName $ComputerName -Guid $guid -OutputPath c:\DSCSMB

执行之后,生成meta.mof 文件

确认一下

然后和Push模式一样,我们需要把这个LCM的配置推送给节点

确认一下节点的LCM模式已经变更

okay,LCM已经配好了,接下来是服务器配置的文件,这里我需要安装一个备份的功能

configuration Backup {
    Node SMBComputers {
        WindowsFeature Backup{
            Name = ‘Windows-Server-Backup‘
            Ensure = ‘Present‘
        }
    }
}
Backup -OutputPath C:\DSCSMB

执行该脚本,生成对应的mof文件

注意!!! 下面的步骤很重要。

在push模式下,我们之间就把这个和节点同名的mof文件推送给节点了。Pull模式下,我们不是通过名字来判断,而是通过guid来绑定节点和服务器,因此这里需要把该文件的名字替换成guid的名字

然后还需要把这个配置文件生成一个checksum,这是因为对比checksum的速度效率比对比整个配置文件要高效的多。如果对配置文件进行了任何修改,我们必须修改checksum。

这里使用guid和checksum的跟本原因在于DSC只是一个平台,并不是一个针对某些需求的产品。微软的合作伙伴会编写对应的产品,使得用户更容易的操作,但是直接使用只能手动生成guid和checksum。

查看一下

然后看看我们的节点计算机,现在还未安装 Backup

更新一下状态

5秒之后再次查看,已经自动安装了

实验成功。

接下来看看HTTP和HTTPS是如何配置的

时间: 2024-07-31 11:58:15

Powershell DSC 5.0 - Pull 模式 (SMB)的相关文章

Powershell DSC 5.0 - 参数,证书加密账号,以及安装顺序

这一节主要是简单的过一下DSC的3个基本功能,如何参数化配置文件,加密账号,以及如何设置多个服务的安装顺序. Configuration file(配置文件)本质就是function(函数),函数可以调用另一个函数,还可以参数化很多数值以便重复使用,配置文件也一样. 配置文件自己默认有3个参数: OutputPath, MOF文件的输出路径 ConfigurationData,这个是参数的配置文件,结构是哈希表 InstanceName,实例名,一般默认即可 我们也可以通过param关键字来定义

PowerShell DSC(一)简单的推模式

最近因为公司业务需要一直在学习开源平台的内容,比如OpenStack和Docker等等,看着看着就对puppet和chef产生了一些兴趣,随之顺其自然的就发现其实在Windows平台也有自己原生的自动化运维解决方案,它就是PowerShell DSC(desired state configuration),按照字面理解就是"期望的配置状态",我本人对puppet和chef没有太多深入的研究,但是对比了一下两者与PowerShell DSC的实现机制发现的确是大同小异,在此也不讨论谁先

Powershell DSC和 WMF 5.0 Preview - Push 模式

豆子最近开始学习Powershell DSC. MVA上有很多相关的课程,最新的入门课程是基于 WMF 5.0 Preview 来实现的. https://www.microsoftvirtualacademy.com/en-US/training-courses/getting-started-with-powershell-desired-state-configuration-dsc--8672?l=YZHpImG1_7204984382 5.0以后,微软在DSC这一块又做了很多改进.比如

升级PowerShell至4.0版本

为了更好的使用Cmder v1.2,不得不升级PowerShell为4.0. 不知道Cmder的,可以点击这里:https://github.com/cmderdev/cmder 和 逆天神器 cmder. Powershell是运行在Windows机器上实现系统和应用程序管理自动化的命令行脚本环境. 需要.NET环境的支持, 同时支持.NET对象.当前PowerShell有5个版本,分别为1.0.2.0.3.0.4.0.5.0 如果系统是Windows 7或者Windows Server 20

Windows Azure Cloud Service (41) 修改云服务IIS托管管道模式为4.0经典模式

<Windows Azure Platform 系列文章目录> 这是笔者在之前的项目中遇到的问题,做一下总结,给网友做参考. 在一般情况下,Visual Studio开发的Cloud Service在部署到Azure PaaS平台后,是IIS托管管道模式.有的时候,客户的Web应用程序需要4.0经典模式.就需要在启动Web Role时自定义IIS配置.我这里简单介绍一下. 1.在项目中添加引用:C:\Windows\System32\inetsrv\Microsoft.Web.Administ

微博feed系统的推(push)模式和拉(pull)模式和时间分区拉模式架构探讨

sns系统,微博系统都应用到了feed(每条微博或者sns里的新鲜事等我们称作feed)系统,不管是twitter.com或者国内的新浪微博,人人网等,在各种技术社区,技术大会上都在分享自己的feed架构,也就是推拉模式(timyang上次也分享了新浪微薄的模式).下面我们就微博的feed推拉(push,pull)模式做一下探讨,并提出新的时间分区拉模式. 众所周知,在微博中,当你发表一篇微博,那么所有关注你的followers(粉丝)都会在一定的时间内收到你的微薄,这有点像群发一封邮件,所有的

IDEA 14.0 (默认模式) 快捷键

IDEA 14.0 (默认模式) 快捷键 1.Alt+Shift+R:重命名变量名.类名.方法名(使用已经使用过的) 2.Ctrl+O :重写方法 3.Alt+Shift+P :实现接口 4.Alt+Shift+空格:智能提示 5.Tab:补全代码,使用高亮的部分 6.Alt+Insert:快速生成get/set方法

PowerShell DSC(二)拆分配置信息

PowerShell DSC的配置文件支持"分离"的格式,这是什么意思呢?好比说企业有一套合规性要求,这套要求无论是对开发测试环境还是生产环境都是一致的,但是显然开发测试与生产环境的规模大小以及硬件配置等等是不一样的,这也就导致了在DSC中定义的内容可以分为"What"和"Where",即管理员要做什么和在哪做. ###################################################################

linux centos 6.0 救援模式

 linux centos 6.0 救援模式   昨天机器我强制把它关机了,今早上班发现系统起不来了.是因为我昨晚没好好对她吗?   废话少说了就好好补她吧!     1.开机引导系统报错: 直接CONtrol-D 继续重启还是很坏!  2.连单用户都进不了,插入第一张光盘赶紧起用linux rescue模式 接在就开始修复fsck 急救! fsck -y /dev/sda1 接在重启reboot. 引导成功进系统! linux centos 6.0 救援模式