写点什么

Powershell 的期望状态配置支持推、拉模式

  • 2013-12-24
  • 本文字数:1265 字

    阅读完需:约 4 分钟

Windows PowerShell 博客一直在写有关于 PowerShell 的期望状态配置(Desired State Configuration,DSC)的内容。DSC 是 Microsoft 针对 Windows 世界计算机配置管理的提议。最新的一篇文章解释了DSC 是怎样支持推和拉两种配置模式的。

DSC 是 PowerShell 工具中新增的内容,它让我们能够声明对于给定的节点或者机器什么是期望的配置。这种方式和 PowerShell 已经支持的命令式风格是不同的。利用 DSC 的脚本用户仅需要声明想要的配置,不需要关注为了配置一台机器需要执行哪些步骤。PowerShell 的 DSC 系统会决定应该如何做。

PowerShell DSC 包含资源的概念。资源是允许配置项的构建块,例如:用户、组、服务器角色或者注册表项。PowerShell DSC 已经有一些内置的资源,但是也能够创建自定义的资源。下面的示例使用文件资源声明了在本地主机上 C:\inetpub\wwwroot 文件夹中的内容应该完全复制于 C:\SiteFiles 文件夹:

复制代码
Configuration SiteConfig
{
# A Configuration block can have zero or more Node blocks
Node "localhost"
{
# File is a built-in resource you can use to manage files and directories
# This example ensures files from the source directory are present in the
destination directory
File MyFileExample
{
Ensure = "Present" # You can also set Ensure to "Absent"
Type = "Directory“ # Default is “File”
Recurse = $true
SourcePath = "C:\SiteFiles" # This is a path that has web files
DestinationPath = "C:\inetpub\wwwroot" # The path where we want to ensure
the web files are present
}
}
}
{1}

为了应用一个配置,PowerShell 提供了两种模式:推模式和拉模式。推模式是通过执行 Start-DscConfiguration 命令立即触发的。例如,下面的命令会将当前路径上的配置应用到脚本内部的所有指定节点上:

Start-DscConfiguration -Wait -Verbose -Path .

拉模式将主动权交给了节点本身。节点需要轮询一个拉服务器以便于查看是否有新的配置。如果检查到了新配置,那么本地配置管理器(Local Configuration Manager,LCM)——PowerShell DSC 的引擎——就会下载并应用它们。拉模式的设置稍微有一点复杂:需要配置拉服务器和一个 web 网站,同时还需要通过 Set-DscLocalConfigurationManager 命令在每一个目标节点上配置一个LCM。 Windows PowerShell 团队发布了一篇文章和一个帮助工具,以便于让用户能够更容易地设置拉服务器。

尽管大部分工具同时支持这两种模式,但是也有一些工具喜好推模式,例如 Ansible ;还有一些工具喜好拉模式,例如 Puppet Chef 。有关于这两种模式的争论有很多。推模式更加简单、更容易控制:它不需要在目标节点上安装任何特定的软件,同时配置在用户请求时才会触发。拉模式的可伸缩性更好,支持丰富的元数据:目标节点自己完成配置工作,使用异步方式,同时拉服务器能够集中存储每一个目标节点状态的元数据。

查看英文原文 Powershell’s Desired State Configuration Supports Push And Pull Modes

2013-12-24 09:011484
用户头像

发布了 321 篇内容, 共 118.8 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

看完了进程同步与互斥机制,我终于彻底理解了 PV 操作

飞天小牛肉

Java 程序员 面试 操作系统

「SaaS第一股」微盟集团财报业绩大涨,超预期财报揭示多元投资布局

ToB行业头条

SaaS 微盟

Python if __name__ == ‘main’ 的作用介绍

HoneyMoose

设计有意义的选择——再谈心流

Justin

心理学 28天写作 游戏设计

共筑“新基建” 京东云全面开启渠道合作伙伴招募计划

京东科技开发者

云服务

马特机器人系统开发(成品案例,快速上线)

系统开发咨询1357O98O718

Python 打印回车换行

HoneyMoose

Nirvana NA公链 NAC公链的两面观

区块链第一资讯

uniapp实现音视频通讯

anyRTC开发者

uni-app 音视频 WebRTC 跨平台 sdk

百度大脑开放日重庆站-智能物流专场报名啦

百度大脑

百度大脑 智能物流 智能物流开放日 重庆站

MySQL的锁

一个大红包

3月日更

企业大数据实战:Kyuubi 与 Spark ThriftServer 的全面对比分析

网易数帆

大数据 spark Kyuubi Thrift HiveServer2

小树系统开发案例(源码)丨小树机器人系统开发流程

系统开发咨询1357O98O718

fil挖矿系统开发|fil挖矿系统软件APP开发

系统开发

【实战问题】-- 并发的时候分布式锁setnx细节

秦怀杂货店

Java 分布式 高并发

JVM - 类加载机制

insight

3月日更

全球币系统开发案例(源码)

系统开发咨询1357O98O718

Continue 玩转像素点,Python 图像处理学习的第 3 天

梦想橡皮擦

28天写作 3月日更

超简单的网站暗黑模式,它真的超简单!

HelloGitHub

大前端

@Component,@Service等注解是如何被解析的?

Java小咖秀

spring 面试 工作 注解 经验

「 视频云大赛 — 大咖驾到 」下一代技术新浪潮,正由视频云驱动

阿里云视频云

阿里云 音视频 intel

万物摩尔定律

soolaugust

AI

《2020年IT行业项目管理调查报告》重磅发布

禅道项目管理

开源 项目管理 项目 调查报告 互联网行业薪资

高频量化交易系统开发功能丨量化交易机器人系统开发详情

系统开发咨询1357O98O718

IPFS云矿机系统开发|IPFS云矿机APP软件开发

系统开发

(28DW-S8-Day27) 销售流程重整

mtfelix

28天写作

Python基础之:Python的数据结构

程序那些事

Python 程序那些事 python数据结构

2021 OS 大赛来了,为中国操作系统发展按下加速键

InfoQ写作社区官方

热门活动

华为云数据库GaussDB(for openGauss):初次见面,认识一下

华为云开发者联盟

数据库 分布式 华为云 GaussDB(for openGauss) 开源数据库

华为云应用服务网格最佳实践之从Spring Cloud 到 Istio

华为云开发者联盟

微服务 Spring Cloud istio 华为云 服务网格

uni-app跨端开发H5、小程序、IOS、Android(三):理解uni-app框架MVVM思想

黑马腾云

微信小程序 uni-app android iOS Developer 3月日更

Powershell的期望状态配置支持推、拉模式_DevOps & 平台工程_João Miranda_InfoQ精选文章