欢迎来到我们以Windows为中心的第四部分入门系列!
大多数它部门的职责之一是保持系统的更新。在这篇文章中,我们将快速了解如何使用Ansible来管理Windows节点上的更新。从六台Windows机器的一个小例子开始,我们将展示一个针对这些主机的游戏示例。最后我们将分享完整的例子。
<编辑>更新,更新,更新…编辑>管理Windows更新是可以理解和使用Ansible快速定制的东西。下面是一个在主机上运行更新的小规模示例,在进程中可以灵活地进行更新。这里的示例假设存在一个域,并且正在传递主机域凭据。如果您想测试这个示例,请务必阅读比安卡早些时候的入门文章连接到Windows主机。
由于此示例是针对独占窗口机器运行的,因此连接所需的信息可以包含在库存文件中:
<代码> [:var] ansible_connection: winrm ansible_user:管理员 ansible_password: This-Should-Be-a-Password ! 代码><编辑>例如编辑>
示例主机包括三组服务器,每组两台。有终端服务器,应用服务器和目录服务器。为了演示的目的,我们将对每个组的WindowsUpdate需求进行不同的处理。在库存文件中指定组可以方便地按需要处理每个组。
<代码> [terminalservers] rocket.milano.local groot.milano.local (应用服务器) drax.milano.local mantis.milano.local (directoryservers) peter.milano.local gamora.milano.local 代码><编辑> Win_UPDATE模块编辑>
在之前的一篇文章中,杰克谈到赢了包装和赢得巧克力包装管理。对于Windows更新,还有另一个模块名为赢得更新以某种粒度管理来自微软的更新。
在我们的示例中,终端服务器用于接收通用应用程序更新,一般更新以及安全/关键更新,以及恶意软件保护的定义更新。此组还将获得一个特定的修补程序,该修补程序将以其KB编号为白色。对于Ansible 2.5,重启参数允许系统在需要时执行重新引导,而reboot_timeout参数则设置等待重新启动完成的时间长度(以秒为单位)。
<代码> -名称:在终端服务器上运行更新然后等待7分钟 主持人:terminalservers 连接:winrm 任务: win_updates: category_names: -应用程序 ——CriticalUpdates ——DefinitionUpdates ——SecurityUpdates - - -更新 白名单: ——KB4093120 重启:是的 reboot_timeout: 420 代码>
应用程序服务器组的更新类别选择略有不同,并且有不同的KB白名单。在我们想象的应用服务器上,可能需要更多的时间来优雅地关闭和重新启动,因此为了安全起见,重新启动超时设置了几分钟。
<代码> -名称:运行在应用程序服务器上更新和等待10分钟 主持人:应用服务器 连接:winrm 任务: win_updates: category_names: ——CriticalUpdates ——DefinitionUpdates ——SecurityUpdates - - -更新 白名单: ——KB4022723 重启:是的 reboot_timeout: 600 代码>
最后,最后一组设置为只接收关键和安全更新。黑名单参数也被传递来阻止不想要的更新。在任何更新都需要重新启动的情况下,超时计数器将增加到15分钟,以确保ActiveDirectory服务器在完成任何更新之前有足够的时间备份。
<代码> -名称:目录服务器上运行更新然后等待15分钟 主持人:directoryservers 连接:winrm 任务: win_updates: category_names: ——CriticalUpdates ——SecurityUpdates 黑名单: ——微软Silverlight 重启:是的 reboot_timeout: 900 代码><编辑>就这样编辑>
您的实际环境可能会与我们使用的示例略有不同,但用法将是相似的。需要注意的是,win_update模块没有指定用于更新的源。这意味着目标主机上配置的任何内容微软更新Windows更新,华盛顿州立大学——都将是目标主机用于更新的源。此外,根据补丁大小和运行更新的频率,这是一个比我们在示例中使用的7 - 15分钟时间更长的进程,并且比默认的时间(1200毫秒或20分钟)要长。如往常一样,在野外使用前进行测试。
<编辑>更多信息编辑>下载并安装窗户更新:win_update模块文档
GitHub示例:github.com/Ansible-Getting-Started/win_updates_usage