前言

一般生产环境都使用Pull模式

配置Pull Server

配置Pull Server需要安装两个WindowsFeture:IIS、windows DSC,这两都可以通过UI界面化引导安装,也可以通过前面讲过的配置方式安装。

安装好之后,需要在IIS上部署一个用于和各Node交互的服务,指定后续的配置存放位置、资源存放位置等信息,具体配置如下:

configuration CreatePullServer
{
param
(
[string[]]$ComputerName = 'localhost'
) Import-DSCResource -ModuleName xPSDesiredStateConfiguration Node $ComputerName
{
WindowsFeature DSCServiceFeature
{
Ensure = "Present"
Name = "DSC-Service"
} xDscWebService PSDSCPullServer
{
Ensure = "Present"
EndpointName = "PSDSCPullServer"
Port = 8080
PhysicalPath = "$env:SystemDrive\inetpub\wwwroot\PSDSCPullServer"
CertificateThumbPrint = "AllowUnencryptedTraffic"
ModulePath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Modules"
ConfigurationPath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration"
State = "Started"
DependsOn = "[WindowsFeature]DSCServiceFeature"
}
}
} CreatePullServer

配置完之后,在IIS上会出现一个Site,可在浏览器访问,测试是否配置成功

配置各个Node

各Node主要是LCM发挥作用,所以主要是配置LCM:

[DSCLocalConfigurationManager()]
configuration LCMConfig
{
Node localhost
{
Settings
{
RefreshMode = 'Pull' #方式1:通过ConfigurationID
#注意:此方式RegistrationKey不是必须设置
ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
}
} #定义节点请求配置文件
ConfigurationRepositoryWeb CONTOSO-PullSrv
{
ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
RegistrationKey = '140a952b-b9d6-406b-b416-e0f759c9c0e4' #方式2:通过ConfigurationNames
#注意:此方式RegistrationKey必须要设置
ConfigurationNames = @('ClientConfig')
} #定义节点请求资源文件
ConfigurationRepositoryWeb CONTOSO-PullSrv
{
ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
RegistrationKey = '140a952b-b9d6-406b-b416-e0f759c9c0e4'
} #定义节点汇报执行情况给PullServer
#PullServer默认会使用access数据库
#数据库可以修改为SQLServer
ReportServerWeb CONTOSO-PullSrv
{
ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
RegistrationKey = 'fbc6ef09-ad98-4aad-a062-92b0e0327562'
}
}

生成mof文件(xxx.meta.mof)并应用即可

Set-DSCLocalConfigurationManager –ComputerName localhost –Path 'mof floder' –Verbose.

可以使用以下命令进行验证配置是否成功

Get-DSCLocalConfigurationManager

发布配置到Pull Server

以上服务器配置完成后,就需要进行交互工作了。我们根据业务写配置,编译,放到指定位置,等待Node到Pull Server上拉取,然后到Node中执行应用。

指定的位置是哪里?

上面我们配置Pull Server的时候,设置 ModulePath、ConfigurationPath,就分别是资源和配置要放置的地方。

需要强调的是资源和配置,都需要为其生成checksum文件,这样Node每次来拉取如果发现文件的checksum无变化,则不拉取。

所以配置文件夹下大概是这样的:

a.mof
a.mof.checksum
b.mof
b.mof.checksum
...

资源文件夹下面大概是这样的:

a_1.0.zip
a_1.0.zip.checksum
b_2.0.zip
b_2.0.zip.checksum
...

注意:资源文件命名必须要资源名称_版本号.zip

参考

Pull模式:https://www.red-gate.com/simple-talk/sysadmin/powershell/powershell-desired-state-configuration-pull-mode/

Pull Server配置:https://docs.microsoft.com/en-us/powershell/dsc/pull-server/pullserver

LCM配置:https://docs.microsoft.com/en-us/powershell/dsc/managing-nodes/metaconfig

注册Node到PulServer:

https://docs.microsoft.com/en-us/powershell/dsc/pull-server/pullclientconfignames

https://docs.microsoft.com/en-us/powershell/dsc/pull-server/pullclientconfigid

9.PowerShell DSC之Pull的更多相关文章

  1. 10.PowerShell DSC之细节

    mof文件到各Node放在哪里了? 在C:\Windows\System32\Configurtion文件夹下: 你可能会注意到mof的文件名称和Pull Server上的不一致,并且多出了几个.不用 ...

  2. 8.PowerShell DSC之Push

    前言 LCM的默认mode就是push,所以对于push模式,我们直接就三步走 以下是示例: 1.编写配置 Authoring Configuration WebsiteTest { # Import ...

  3. 6.PowerShell DSC核心概念之LCM

    什么是LCM? 本地配置管理器 (LCM) 是DSC的引擎. LCM 在每个目标节点上运行,负责分析和执行发送到节点的配置. 它还负责 DSC 的许多方面,包括以下各方面. 确定刷新模式(推送或请求) ...

  4. 5.PowerShell DSC核心概念之资源

    什么是资源? 资源为 DSC 配置提供构建基块. 资源公开可配置的属性,并包含本地配置管理器 (LCM) 调用以"使其如此"的 PowerShell 脚本函数. 系统内置资源 可在 ...

  5. 4.PowerShell DSC核心概念之配置

    什么是配置 DSC 配置是定义某一特殊类型函数的 PowerShell 脚本. 配置的语法 Configuration MyDscConfiguration { #配置块 Import-DscReso ...

  6. 3.PowerShell DSC核心概念

    PowerShell DSC有三个核心概念 配置 配置是声明性的PowerShell 脚本,用于定义和配置资源实例. DSC 配置是幂等的. 资源 资源是 DSC 的"实现器"部分 ...

  7. 1.PowerShell DSC概述

    什么是PowerShell DSC DSC 是一个声明性平台,用于配置.部署和管理系统. PowerShell PowerShell 是构建于 .NET 上基于任务的命令行 shell 和脚本语言. ...

  8. PowerShell DSC学习资料

    官网 https://docs.microsoft.com/zh-cn/powershell/dsc/overview/overview CSDN中文博客(专题,32篇) https://blog.c ...

  9. 7.PowerShell DSC之模式

    DSC两种模式 DSC有两种模式,Push模式和Pull模式 Push模式 基本流程 写配置--编译生成mof--推送到目标服务器,由目标服务器LCM执行mof并进行指定的配置 优点 架构简单.成本低 ...

随机推荐

  1. kubernets之pod的标签的使用

    一 对于kubernets里面的资源标记完成之后的使用 1 node节点标签的应用(将资源调度到特定的节点上) #kubia-gpu.ymlapiVersion: v1 kind: Pod metad ...

  2. oracle绑定变量测试及性能对比

    1.创建测试数据 2.查看cursor_sharing的值 SQL> show parameter cursor_sharing; NAME TYPE VALUE --------------- ...

  3. 使用modify修改内表

    modify修改内表,有这样一种方式,MODIFY TABLE itab FROM wa [TRANSPORTING ..]. 然后这里的内表itab是有条件的,这个itab必须要有table key ...

  4. IOC技术在前端项目中的应用

    目录 背景 什么是IOC 如何实现一个IOC 第一步:实现一个容器 第二步:用好装饰器 第三步:使用容器 扩展和展望 最后 背景 前端发展至今已经过去30余年,前端应用领域在不断壮大的过程中,也变得越 ...

  5. Oracle数据库启动和关闭

    在介绍oracle数据库的启动和关闭前,先看一下Oracle的参数文件. oracle参数文件 1.初始化参数文件 oracle的初始化参数文件分为spfilesid.ora.spfile.ora.i ...

  6. 深度漫谈数据系统架构——Lambda architecture

    https://mp.weixin.qq.com/s/whmhm2yzug2WVdH3dTq8hg

  7. 3D运动类申明与实现

    #ifndef PKM3D_H #define PKM3D_H #include"kinematics.h" #include"Inventor/Qt/viewers/S ...

  8. maven pom文件的 name 标签 和 url标签到底是什么作用

  9. Prometheus 初探和配置(安装测试)

    本文大纲: • Prometheus 官⽹下载• Prometheus 开始安装• Prometheus 启动运⾏• Prometheus 基本配置⽂件讲解• 安装第⼀个exporter => ...

  10. MySQL常见优化

    MySQL常见优化 1.操作符优化 1.1<> 操作符(不等于) 1.2LIKE优化 1.3in,not in,exists与not exists 1.3.1in和exists 2.whe ...