Automatische Windows Updates mit Ansible

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:

  1. WinRM muss auf dem Windows-Rechner aktiviert sein.
  2. Die Ansible-Hosts-Datei muss den Windows-Rechner enthalten.
  3. 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.

Schreibe einen Kommentar