写点什么

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:011874
用户头像

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

关注

评论

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

为什么 Nodejs 这么快?

devpoint

nodejs V8 视频流 7月月更

Envoy生命周期管理

阿泽🧸

envoy 7月月更

CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes)(A-C)

KEY.L

7月月更

为什么加工数据指标

奔向架构师

数据仓库 7月月更

基于多数据源零代码同时生成多个数据库CRUD增删改查RESTful API接口——MySql,PostgreSql,Oracle,Microsoft SQL Server多数据源

crudapi

Java 数据库 Spring Boot crudapi 多数据源

不要在白嫖Github了!

Jackpop

新星计划Day9【数据结构与算法】 递归

京与旧铺

7月月更

【Docker 那些事儿】容器网络(上篇)

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

一次业务问题对ES的cardinality原理探究

Chares

Java elasticsearch 后端开发 问题排查 问题分析

MySQL 5.7.37数据库下载安装教程(Windows无需安装版)

未见花闻

7月月更

基于crudapi后端Java SDK二次开发之API认证和鉴权(二)

crudapi

API Cookie JWT crud basic auth

带领全网朋友,完成粉笔登录加密分析,再次换种玩法

梦想橡皮擦

Python 爬虫 7月月更

如何优雅地使用 Git?

Jackpop

Python 有哪些好玩的语法糖?

Jackpop

值得收藏的ArkUI框架三方组件【系列1】

坚果

HarmonyOS Open Harmony 7月月更

Bigdata 作业 第14&15周

Pyel

开发者必看 | DevWeekly 第1期:什么是时间复杂度?

Jackpop

MySQL到底是如何执行SQL语句的

技术小生

MySQL 7月月更

ES6之箭头函数

bo

前端 ES6 箭头函数 7月月更

zookeeper-认识watcher

zarmnosaj

7月月更

HMS Core图形图像技术展现最新功能和应用场景,加速构建数智生活

最新动态

数据库的主从分离

ES_her0

7月月更

通过Dao投票STI的销毁,SeekTiger真正做到由社区驱动

股市老人

putchar()

謓泽

7月月更

Markdown 基本语法格式

攻城狮杰森

markdown 7月月更

如何高效系统学习 MySQL?

Jackpop

应用的无状态设计

穿过生命散发芬芳

7月月更 应用无状态

深度学习-多维数据和tensor

AIWeker

7月月更 多维数据

JVM-SANDBOX导致目标服务JVM Metaspace OOM的调查始末

柠檬汁Code(binbin0325)

互联网 字节码增强 故障排查

面试官:工作两年了,这么简单的算法题你都不会?

掘金安东尼

程序员 面试 算法 前端 7月月更

jQuery 操作元素

Jason199

jquery js 7月月更

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