当前位置: 首页 > 科技观察

IT管理员使用自动化部署策略来锁定配置更改

时间:2023-03-18 18:56:54 科技观察

服务器管理,无论是在本地还是在云端,都是困难的。管理员需要部署应用程序并对其进行监控,以查看是否有人添加或删除了软件或进行了错误配置。脚本可以在部署时提供帮助,但监视更改和避免配置错误则完全是另一回事。如果您有Linux/Unix背景,您应该熟悉自动化和配置管理产品Puppet和Chef。这些配置工具使配置管理和自动化部署更加容易。但是,如果您是Windows服务器IT管理员怎么办?Puppet和Chef虽然也可以在Windows平台上使用,但毕竟是国外产品。Microsoft在Windows中提供了相同的技术,并将其称为DesiredStateConfiguration(DSC),可以与安装的PowerShellv4一起使用。了解配置管理概念并使用DSC等技术逐步构建用户体验是一项艰巨的工作,不仅要阅读本文,还要亲自动手。体验DSC需要什么要使用DSC,您需要在WindowsServer2012R2中部署两个虚拟机。虚拟机的IP地址需要配置在同一网络中。无需配置域,只需确保它们可以相互ping通即可。并且无需安装任何角色,只需在DSC中完成上述配置即可。也可以使用旧版本的Windows服务器,但需要在服务器上安装PowerShellv4并启用PowerShellRemoting。WindowsServer2012R2默认启用PowerShellRemoting。如果您想节省时间,可以从Microsoft网站下载WindowsServer2012R2的评估版。解决业务问题示例问题很简单,但却是一个真实的问题。我需要为服务器配置IIS。在这种情况下,我们希望提供对ASP.NET4.5以及IIS管理控制台的支持。让我们从制作我们的第一个DSC脚本开始。示例中使用的虚拟机的计算机名称是DC和SI。DC是编写和执行脚本的服务器,S1是我要搭建的新的web服务器。在DC服务器上,打开PowerShellISE以创建一个名为Install_IIS.ps1的新脚本并将其保存到一个目录,例如C:\scripts。使用关键字“configuration”在此脚本中创建与函数非常相似的代码。类似功能,需要给配置起个名字“Install_IIS”。ConfigurationInstall_IIS{}您需要运行此脚本来执行配置。如果你运行过包含函数的PowerShell脚本,你应该知道当脚本存在时该函数会从内存中移除,所以我想更改脚本并在大括号后添加一行:ConfigurationInstall_IIS{}Install_IIS配置文件必须至少有一个节点。节点可以看作是一台计算机或计算机的集合。DSC符合标准,这意味着节点可以是任何东西,包括网络交换机。在示例中,我添加了一个计算机节点S1。ConfigurationInstall_IIS{Nodes1{}Install_IIS节点中,指定你想要的配置。示例配置非常简单。我想安装三个Windows角色:Web服务器、Web管理控制台和WebASP.Net4.5。对应名称为Web-Server、Web-Mgmt-Console、Web-Asp-Net45。打开PowerShell命令提示符并输入以下命令:PS>Get-WindowsFeature*web*在节点内,我将添加一个称为资源的元素。正在使用的资源是一个名为WindowsFeature的内置资源,它在内部添加了角色。它看起来类似于一个函数,它也需要一个名称。在WindowsFeature中,我指定了角色名称,但这不是必需的。ConfigurationInstall_IIS{Nodes1{WindowsFeatureIIS{Ensure='Present'Name='web-server'}WindowsFeatureIIS-Console{Ensure='Present'Name='web-Mgmt-Console'}WindowsFeatureASPNET45{Ensure='Present'Name='Web-Asp-Net45'}}}Install_IIS将脚本保存到目录中,然后运行脚本。您会注意到将创建一个名为Install_IIS的新目录。如果您进入该目录,您将看到该脚本创建了一个名为S1.MOF的文件。这是DSC魔法的一部分,但我们会将此管理对象格式(MOF)文件发送到S1服务器。S1服务器有一个称为本地配置管理器(LCM)的专用组件(包含在PowerShellv4中),它使用MOF文件来配置服务器。打开DC电脑下的PowerShell控制台,输入以下命令发送MOF:PS>Start-DscConfiguration-PathC:\scripts\Install_IIS-Path参数要指向脚本中的目录。执行上述命令时,将启动PowerShell后台任务。您可以使用Get-Job命令查看正在运行的作业并等待其执行完成。转到目标计算机(S1),打开PowerShell命令提示符,运行Get-Windowsfeature*web*命令,注意已根据您的要求配置了Web服务器。在受到诱惑并尝试在生产中试用该产品之前,请注意使用所谓的“推送”配置模式对您来说非常容易。推送不一定是最好的方法,但它非常适合测试。在以后的文章中,我将描述如何配置和使用“拉”模式。在这种模式下,DSC每15分钟会检查并确认一次配置,也就是说如果有人对配置进行了调整,上面的配置将会被移除