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并进行指定的配置 优点 架构简单.成本低 ...
随机推荐
- 【Docker】Docker概述、理解docker的集装箱、标准化、隔离的思想、 docker出现解决了什么问题
整理一下 慕课网 第一个docker化的java应用 Docker环境下的前后端分离项目部署与运维 课程时所做的笔记 Docker概述 docker - https://www.docker.com/ ...
- 【Linux】nginx详细说明
Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目 ...
- ctfshow—web—web6
打开靶机 发现登录窗,首先想到SQL注入 抓包,进行SQL注入测试 测试发现空格符被过滤了 使用/**/代替空格符进行绕过,绕过后登录成功 检测回显位 开始查询数据库名 开始查询数据库内数据表名称 查 ...
- 入门OJ:售货员的难题
题目描述 某乡有n个村庄(1<n<15),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0<s<1000)是已知的,且A村到B村与B村到A村的路大多不同.为了提高效率 ...
- .NET Core 问题记录
前言: 最近在项目中遇到了遇到了写部署步骤过多的问题,为了减少.net core项目部署步骤:需要对一些基础问题进行验证: 如端口设置.单页应用程序(angluar)合并部署方式等相关问题,特将解决过 ...
- 在.NET Core 中实现健康检查
.NET Core中提供了开箱即用的运行状况检查,首先,我将在.NET Core API应用程序中执行运行状况检查,接下来,我们将使用DbContext集成SQL Server或数据库的运行状况检查, ...
- 相对论中的光速c不变,这么讲!你总能理解了吧!
今天谈谈相对论的假设基础--光速不变,很多人都知道爱因斯坦的相对论,也知道相对论的理论基础是光速不变,即无论参考哪个参照系,光的速度都是不变的,这个很难得理解的问题.我之前看过别人的理解,也自己思考怎 ...
- mysql事务测试
mysql事务测试 打开mysql的命令行,将自动提交事务给关闭 --查看是否是自动提交 1表示开启,0表示关闭 select @@autocommit; --设置关闭 set autocommit ...
- MySQL高可用HA——keepalived配置
0. Keepalived介绍 Keepalived是基于VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)协议的一款高可用软件.Keepaili ...
- https://learnku.com/docs/go-blog/qihoo/6532 。 heap size went up to 69G, with maximum garbage collection (GC)
https://learnku.com/docs/go-blog/qihoo/6532 Use a Task Pool, a mechanism with a group of long-lived ...