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