In diesem Artikel erkläre ich, wie man mit Ansible automatische Windows Updates verwalten kann. Dabei zeige ich zwei Playbook-Beispiele: eines, das eine Vorschau der anstehenden Updates generiert, und eines, das die Updates tatsächlich durchführt. Als Ansible-Umgebung nutze ich den TurnKey Ansible LXC Container.
Warum Windows Updates mit Ansible verwalten?
Ansible ist ein leistungsfähiges Automatisierungswerkzeug, das sich nicht nur für Linux-Server, sondern auch für Windows-Systeme eignet. Durch die Automatisierung von Windows Updates mit Ansible können Unternehmen:
- Sichere und konsistente Update-Prozesse etablieren
- Manuelle Eingriffe minimieren
- Zeit und Ressourcen sparen
- Updates vor der Installation testen
Ansible LXC Container von TurnKey
TurnKey bietet einen vorgefertigten LXC-Container mit Ansible, der eine schnelle und einfache Einrichtung ermöglicht.
Der LXC Container kann direkt in einen Hypervisor wie Proxmox betrieben und genutzt werden.
Vorteile beim vorgefertigten Image:
- Stable release of Ansible installed via pip.
- WinRM support for managing Windows hosts.
- Sudo support for the ansible user.
- Semaphore open source web UI for Ansible.
- SSL support out of the box.
- Webmin modules for managing and configuring server.
Weitere Infos dazu: https://www.turnkeylinux.org/ansible
Windows Updates mit Ansible
Ansible nutzt das Modul win_updates
, um Windows Updates zu verwalten. Voraussetzung dafür ist, dass der Ziel-Windows-Host für Ansible vorbereitet ist:
- WinRM muss auf dem Windows-Rechner aktiviert sein.
- Die Ansible-Hosts-Datei muss den Windows-Rechner enthalten.
- Die notwendigen Berechtigungen müssen vorhanden sein.
Playbook zur Update-Vorschau
---
# Preview updates parallel
- name: Preview updates on updategroup1
hosts: updategroup1
strategy: free
tasks:
- name: Search and preview updates
win_updates:
category_names:
- SecurityUpdates
- CriticalUpdates
- UpdateRollups
- Application
- Connectors
- DefinitionUpdates
- DeveloperKits
- FeaturePacks
- Guidance
- ServicePacks
- Tools
- Updates
- Upgrades
state: searched
log_path: c:\windows\logs\ansible_update_preview_log.txt
register: update_preview_result
- name: Display update preview results
debug:
var: update_preview_result.updates
Playbook zur Update-Installation
---
#Install updates on group paralell
- name: Install updates on updategroup1
hosts: updategroup1
strategy: free
tasks:
- name: search and install updates
win_updates:
category_names:
- SecurityUpdates
- CriticalUpdates
- UpdateRollups
- Application
- Connectors
- DefinitionUpdates
- DeveloperKits
- FeaturePacks
- Guidance
- ServicePacks
- Tools
- Updates
- Upgrades
reboot: yes
reboot_timeout: 600
log_path: c:\windows\logs\ansible_update_log.txt
register: update_result
Mit dem Playbook werden sämtliche verfügbare Updates installiert. Dieses wird über die „category_names“ definiert. Hier kann natürlich bei Bedarf angepasst werden.
Ist ein Reboot erforderlich wird dieser nach der Installation ebenfalls durchgeführt.
Im Verzeichnis c:\windows\logs werden euch dabei entsprechende Logdateien zu beiden Tasks bereitgehalten.
