欢迎来到我们以Windows为中心的第四部分入门系列!
大多数IT部门的职责之一是保持系统的更新。在这篇文章中,我们将快速了解如何使用Ansible来管理Windows节点上的更新。从六台Windows机器的一个小例子开始,我们将展示一个针对这些主机的游戏示例。最后我们将分享完整的例子。
管理Windows更新是可以理解和使用Ansible快速定制的东西。下面是一个在主机上运行更新的小规模示例,在进程中可以灵活地进行更新。这里的示例假设存在一个域,并且正在传递主机域凭据。如果您想测试这个示例,请务必阅读Bianca早些时候的入门文章连接到Windows主机.
由于此示例是针对独占Windows机器运行的,因此连接所需的信息可以包含在库存文件中:
[all:vars]
ansible_connection: winrm
ansible_user: administrator
ansible_password: This-Should-Be-a-Password!
示例主机包括三组服务器,每组两台。有终端服务器、应用服务器和目录服务器。为了演示的目的,我们将对每个组的WindowsUpdate需求进行不同的处理。在库存文件中指定组可以方便地按需要处理每个组。
[terminalservers]
rocket.milano.local
groot.milano.local
[appservers]
drax.milano.local
mantis.milano.local
[directoryservers]
peter.milano.local
gamora.milano.local
在之前的一篇文章中,杰克谈到了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
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。