9.PowerShell DSC之Pull
前言
一般生产环境都使用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 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的更多相关文章
- 10.PowerShell DSC之细节
mof文件到各Node放在哪里了? 在C:\Windows\System32\Configurtion文件夹下: 你可能会注意到mof的文件名称和Pull Server上的不一致,并且多出了几个.不用 ...
- 8.PowerShell DSC之Push
前言 LCM的默认mode就是push,所以对于push模式,我们直接就三步走 以下是示例: 1.编写配置 Authoring Configuration WebsiteTest { # Import ...
- 6.PowerShell DSC核心概念之LCM
什么是LCM? 本地配置管理器 (LCM) 是DSC的引擎. LCM 在每个目标节点上运行,负责分析和执行发送到节点的配置. 它还负责 DSC 的许多方面,包括以下各方面. 确定刷新模式(推送或请求) ...
- 5.PowerShell DSC核心概念之资源
什么是资源? 资源为 DSC 配置提供构建基块. 资源公开可配置的属性,并包含本地配置管理器 (LCM) 调用以"使其如此"的 PowerShell 脚本函数. 系统内置资源 可在 ...
- 4.PowerShell DSC核心概念之配置
什么是配置 DSC 配置是定义某一特殊类型函数的 PowerShell 脚本. 配置的语法 Configuration MyDscConfiguration { #配置块 Import-DscReso ...
- 3.PowerShell DSC核心概念
PowerShell DSC有三个核心概念 配置 配置是声明性的PowerShell 脚本,用于定义和配置资源实例. DSC 配置是幂等的. 资源 资源是 DSC 的"实现器"部分 ...
- 1.PowerShell DSC概述
什么是PowerShell DSC DSC 是一个声明性平台,用于配置.部署和管理系统. PowerShell PowerShell 是构建于 .NET 上基于任务的命令行 shell 和脚本语言. ...
- PowerShell DSC学习资料
官网 https://docs.microsoft.com/zh-cn/powershell/dsc/overview/overview CSDN中文博客(专题,32篇) https://blog.c ...
- 7.PowerShell DSC之模式
DSC两种模式 DSC有两种模式,Push模式和Pull模式 Push模式 基本流程 写配置--编译生成mof--推送到目标服务器,由目标服务器LCM执行mof并进行指定的配置 优点 架构简单.成本低 ...
随机推荐
- stat filename
查看文件的mtime,atime,ctime 3个时间
- Java编译期注解处理器详细使用方法
目录 Java编译期注解处理器 启用注解处理器 遍历语法树 语法树中的源节点 语法树节点的操作 给类增加注解 给类增加import语句 构建一个内部类 使用方法 chainDots方法 总结 Java ...
- C#使用struct直接转换下位机数据
编写上位机与下位机通信的时候,涉及到协议的转换,比较多会使用到二进制.传统的方法,是将数据整体获取到byte数组中,然后逐字节对数据进行解析.这样操作工作量比较大,对于较长数据段更容易计算位置出错. ...
- 开发中的你的Git提交规范吗?
1. 前言 目前大部分公司都在使用Git作为版本控制,每个程序员每天都要进行代码的提交.很多开发者也包括我自己,有时候赶时间或者图省事,就这么提交: git commit -m "修改bug ...
- [Usaco2012 Dec]Running Away From the Barn
题目描述 给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于等于l的点有多少个. 输入格式 Line 1: 2 integers, N and L (1 <= N <= 200,0 ...
- Docker 如何动态给SpringBoot项目传参
关于SpringBoot配置数据源 在项目开发中,我们往往需要配置多套不同的配置环境例如:本地开发.测试环境.部署环境.每一个环境的数据源配置可能都不同,因此需要写不同的数据源配置.如果用Docker ...
- 丢包 ICMP
小结: 1.ICMP 常见网络丢包故障分析及处理 云极安 云极安 2019-12-25 我们在管理维护网络的过程中经常会遇到数据包丢失的现象.使用Ping命令进行连通性测试,则会发现Ping包延时远远 ...
- Git恢复之前版本的两种方法reset、revert
实战 回退 1.删除之前的提交 git reset --hard id 推送到远程 git push -f [git log中确实删除了,但是拿到可以恢复] 2.不删除之前的提交 git revert ...
- SpringMVC听课笔记(一:SpringMVC概述)
地址 :https://www.bilibili.com/video/av14907450 版本:4.x 概述: 概要: 一:SpringMVC概述 二:SpringMVC的 HelloWorld 三 ...
- Language Guide (proto3) | proto3 语言指南(五)使用其他消息类型
Using Other Message Types - 使用其他消息类型 可以将其他消息类型用作字段类型.例如,假设您希望在每个SearchResponse消息中包含Result消息--为此,您可以在 ...