你好,欢迎来到另一个开始用Ansible+Windows POST!在本文中,我们将探讨所需的状态配置是什么,为什么它是有用的,以及如何使用它与Ansible一起管理您的Windows节点。
什么是DSC?
那么理想的状态配置究竟是什么呢?它基本上是一个使用声明式模型的系统配置管理平台;换句话说,您告诉DSC“什么”,它就会找到“如何”。就像Ansible一样,DSC使用推送模式执行来向目标主机发送配置。在向多个目标交付资源时,这一点非常重要。
此节省时间的工具内置到PowerShell中,通过代码定义Windows节点设置。它使用LocalConfigurationManager(它是运行在每个节点上的DSC执行引擎)。
Microsoft鼓励社区努力为各种技术构建和维护DSC资源。这些工作的结果每个月都会作为DSC资源工具包。如果您需要管理的技术没有本地的Ansible模块可用,则可能有DSC资源。
你如何使用DSC与Ansible?
DSC资源作为PowerShell模块分发,这意味着它的工作方式类似于Ansible,只是以不同的方式实现。这,这个,那,那个win_dsc
模块自Ansible 2.4发布以来就已经可用,每当它与Windows主机交互时,它就会影响现有的DSC资源。
要使用此模块,您将需要PowerShell 5.1或更高版本。一旦确保在Windows节点上安装了正确版本的PowerShell,使用DSC就像使用win_dsc
模块。
让我们看看它的行动。对于本例,我们将确保安装了DNS服务器,xDnsServer
DSC资源模块存在,并使用其下的几个DSC资源来定义区域和A记录:
- hosts: Erasmus
tasks:
- win_feature:
name:
- DNS
- RSAT-DNS-Server
state: present
- win_psmodule:
name: xDnsServer
repository: PSGallery
- win_dsc:
resource_name: xDnsServerPrimaryZone
Name: my-arbre.com
- win_dsc:
resource_name: xDnsRecord
Name: test
Zone: my-arbre.com
Target: 192.168.17.75
Type: ARecord
让我们介绍一下上面的剧本中发生的事情:它从在目标上安装DNS服务器开始,然后在xDnsServer
安装了DSC资源模块。使用现在安装的DSC资源,xDnsServerPrimaryZone
资源来创建区域,然后调用xDnsRecord
使用参数调用资源,以填充我们的区域详细信息。my-arbre.com
现场。这,这个,那,那个xDnsServer
资源可从PowerShellGallery.com下载,该网站为DSC资源提供了一个可靠的社区。
记住win_dsc
模块是为驱动单个DSC资源提供者而设计的,以使其工作起来像一个不可接受的模块。它不打算用于定义主机上的游戏手册的DSC等价物并运行它。
还有几点要记住:
resource_name
在定义任务时,必须设置为已安装在目标上的DSC资源的名称。将案例与文档相匹配是最佳实践;这也使得区分DSC资源选项和Ansible资源选项的区别变得更加容易。
win_dsc
各种选择。
结语
现在,您了解了如何通过调用Ansible Playbook中的Win_DSC模块为Windows节点使用DSC的基础知识。要阅读更多关于Ansible+DSC的信息,请访问我们的官方网站文件页关于这个话题。
特别感谢我的队友约翰·利斯克为这个职位提供大量的技术援助。和往常一样,快乐的自动驾驶!