DevOps世界中的配置 – Windows PowerShell 预期状态配置 1


DSC的一些背景

一种新型的配置管理工具被创建,用来管理平台,应用程序,和云上面的基础架构以保证云在高可用性下运行。这些新工具和基础架构的需求来源于云规模的增长,快速更新和复杂性。但是现有的工具仅限支持Windows。

Windows PowerShell 预期状态配置(DSC)提供了一个内置于Windows,基于公开标准的配置平台。DSC在部署周期(开发,测试,预发布和发布)每个阶段都可以非常灵活地,稳定地,一致地起作用,在向外扩展时也一样,这也正是云计算环境所需要的。

DSC是什么

在内部部署和云上,DSC都会带给你一个强大而简单的方式去管理你的Windows基础架构。它通过向PowerShell语言中引进一个非常简单的语法声明,和一个用来接收和应用这些配置的内置引擎来实现。你使用这个新的声明语法,来声明一个你环境的预期状态,然后将它分发给组成你的环境的每一个目标节点。在配置被交付和应用后,当配置发生偏差时,它能够用来纠正配置偏差,或者只向你汇报配置偏差,让你知道发生了什么。

DSC有什么特别

你可能在想:“我已经能够使用PowerShell来管理我的基础架构了,为什么还需要DSC呢?” 首先,正如上面提到的那样,DSC的语法声明,能够使配置的编辑和维护更加容易一些。举个例子,下面的DSC配置能够确保Web服务器和ASP都能安装在Server1和Server2上。

Configuration IISWebsite 
{ 
       Node Server1, Server2 
       { 
           WindowsFeature IIS 
           { 
                  Ensure    = “Present” 
                  Name      = “Web-Server” 
           } 

            WindowsFeature ASP 
           { 
                  Ensure    = “Present” 
                  Name      = “Web-Asp-Net45” 
           } 
    } 

}

使用你在上面的看到的新语法,你可以非常简单的声明你的目标设备上的状态,以取代你写命令把他们变成那个状态。通过DSC这会让你降低很多学习、采用、实现和维护配置的成本。

另外你可能注意到了,上面的例子中缺少错误处理。没必要让错误处理把你的DSC脚本变复杂,因为一旦引发错误了,DSC基础架构会自动地报告和写日志。与经典的PowerShell脚本相比,这使得你的DSC脚本可读性更强。

在上面的例子中你可能没有看到DSC的一个关键的概念。它生来就是幂等的。幂等配置能够确保你预期的状态通过应用完整配置而忽略当前状态来完成它。这意味着不需要向你的脚本中添加费解的逻辑,就可以让你的配置随着时间的推移,渐进式部署更改,而不用担心把系统带进了一个坏的状态。PowerShell脚本也可以通过幂等的方式被实现,只是很难保证它的正确,尤其在你想保证自己的脚本具有很高的可读性和可维护性。

像PowerShell脚本,DSC 配置可以被推送到目标节点上,但是在许多环境中有一些并发症,像要允许传入连接通过防火墙端口。为了解决这一问题,DSC有一套内置功能,允许配置通过标准的web协议从一个集中位置被牵引过来。这个内置的“牵引”功能意味着就不需要打开一个新的防火墙端口。这种牵引配置另外一个好处就是,一些必需的Windows PowerShell 模块也可以从集中位置使用同样的web协议被牵引过来。这又意味着一个配置所需要的模块不需要在部署配置前就已经存在了,因为它们会在需要时,被牵引过来。

更多的惊喜

DSC 是 PowerShell 一个令人兴奋的补充,而在这篇文章中,我们仅仅接触了一些高层次的概念。但是我希望这能激发你学习更多DSC的兴趣。在今后的几天或者几周内,我们会发表更多的一些文章来探究DSC的详细信息,敬请关注。在这期间,我请您探究一下DSC,和你用它可以做什么。

DSC 作为Windows 8.1 和  Windows Server 2012 R2 的一部分已经可以使用了;如果你已经使用了这两个新的操作,可以在 Windows PowerShell ISE  中开始构建配置文件了。如果你运行的是Windows 7或者Windows Server 2008 R2,或者 Windows server 2012,可以安装 Windows Management Framework 4.0  来获取DSC中好处。从DSC documentation on Microsoft TechNet可以了解更多有关如何入门。

好好享受吧!

原文作者:Mark Gray(Senior Program Manager)
原文链接Configuration in a DevOps world – Windows PowerShell Desired State Configuration

本文链接: https://www.pstips.net/powershell-desired-state-configuration-in-devops.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

一条评论 “DevOps世界中的配置 – Windows PowerShell 预期状态配置