
Nun ist es an der Zeit, Windows-Updates mit der Open Source-Welt anzufreunden. In diesem Artikel diversifizieren wir das Leben, indem wir Ansible in alle möglichen Quellen für Updates für Windows-Computer integrieren. Obwohl die Funktionen des Systems viel umfassender sind als nur die Einführung von Updates für Server und Workstations, müssen Sie irgendwo beginnen.
Gleichzeitig werden wir die lästigen Unannehmlichkeiten von WSUS beseitigen, wenn Sie die "alte Schule" bevorzugen.
Warum wir WSUS nicht mögen
Ich werde nicht über das Einrichten von Windows Server Update Services sprechen, da dies trivial ist. Konzentrieren Sie sich auf die Nachteile.

Die WSUS-Schnittstelle hat sich im Laufe der Geschichte nicht wesentlich geändert.
Unfähigkeit, bei Bedarf zu installieren . In der Tat funktioniert WSUS gut für den regulären Betrieb - Updates können einfach konfiguriert und im lokalen Netzwerk installiert werden, wenn die Computer ausgeschaltet werden. Wenn Sie jedoch dringend Sicherheitspatches installieren müssen, müssen Sie Skripte und Lösungen bereitstellen, um genau diese Skripte auszuführen. Unser Material „ 1000 ++ Methode zum Ausführen von Befehlen auf einem Remotecomputer “ kann dabei helfen.
Das Fehlen einer regulären Möglichkeit, Software-Updates von Drittanbietern zu installieren . Wenn es einen Update-Server gibt, erscheint es sinnvoll, ihn nicht nur für MS-Software-Updates, sondern auch für andere Lösungen zu verwenden. Beispielsweise werden Schwachstellen im oben genannten Adobe Flash Player nicht regelmäßig in regelmäßigen Abständen entdeckt, und ich möchte Benutzer auch mit neuen FireFox-Funktionen begeistern. Um Updates über WSUS zu installieren, müssen Sie Lösungen von Drittanbietern wie den WSUS Package Publisher verwenden . Konfigurationsbeispiele finden Sie im Artikel „ Installieren einer Software mit WSUS-2 “.
Verwenden der integrierten Windows-Datenbank . In einer Standardinstallation verwendet WSUS die interne Datenbank WID - Windows. Dies ist im Wesentlichen ein kleiner eingebetteter SQL Server mit einer Datenbank. Im Falle von Fehlfunktionen oder Konflikten - beispielsweise wenn Sie Remotedesktopverbindungsbroker und WSUS auf demselben Server haben - müssen Sie diese Datenbank reparieren, Zugriffsrechte konfigurieren und in jeder Hinsicht Spaß haben. Ja, und Backup würde nicht schaden. Glücklicherweise kann WSUS auch klassisches SQL verwenden. Um die WSUS-Datenbank zu migrieren, können Sie die Anweisung Migrieren der WSUS-Datenbank von WID nach SQL von Microsoft verwenden.
Die Notwendigkeit eines Service und einer nicht offensichtlichen Einrichtung fehlgeschlagener Clients. Wie bei Microsoft-Produkten verlangsamt sich WSUS früher oder später: Kunden können nicht lange darauf zugreifen und Updates herunterladen. Eine Sammlung von Tipps und Optimierungen finden Sie im Artikel „ Beschleunigen von WSUS “ und in den Kommentaren dazu.
Natürlich können Sie mit diesen Minuspunkten leben, aber Sie können Ihr Leben auch mit anderen Tools erleichtern, indem Sie sie sowohl in Verbindung mit WSUS als auch ohne WSUS verwenden.
Installieren Sie Updates mit Ansible
Fast jedes Konfigurationsmanagementsystem kann die Arbeit mit Updates erleichtern. Lassen Sie uns ein auf Ansible basierendes Beispiel für die Installation von Updates bei Bedarf analysieren.
Wenn man einen Holivar arrangiert, der besser aus freien Systemen besteht - Ansible, Chef, Puppet oder sogar Salt -, gibt es nicht den geringsten Wunsch. Ansible wurde aufgrund des Mangels an Agenten und der einfachen Konfiguration ausgewählt. Und natürlich wegen Python: Schließlich ist diese Sprache für Anfängerautomatisierung im Gegensatz zu Ruby viel einfacher zu erlernen.
Es ist erwähnenswert, dass es neben der Lösung des Problems eine gute Hilfe ist, sich mit den Funktionsprinzipien solcher Systeme vertraut zu machen. Es sei denn, Sie hatten natürlich noch Spaß an der Installation von Streisand , insbesondere wenn dabei etwas schief geht. Wenn Sie bereits Ansible oder andere modische Lösungen verwenden, können Sie problemlos Updates installieren. Ich empfehle, die Grundlagen von Ansible im Artikel „ Ansible-Handbuch “ zu lesen. Im Folgenden finden Sie eine schrittweise Anleitung zum Arbeiten mit Updates.
Bereiten Sie zunächst den Ansible-Server vor. Fast jede GNU \ Linux-Distribution reicht aus, aber ich werde Beispiele für Befehle für Ubuntu Server geben (wie es in der Vergangenheit war).
Installieren Sie zunächst den Paketmanager für Python-Anwendungen:
apt-get install python-pip pip install --upgrade pip pip install --upgrade virtualenv
Dann müssen wir das pywinrm- Paket installieren, um eine direkte Verbindung zu Windows-Systemen und dem Ansible- System herzustellen :
sudo pip install pywinrm sudo pip install ansible
Sie können die Installation mit dem Befehl ansible --version überprüfen.

Überprüfung der Installation.
Anstelle des Pakets in der Pywinrm-Theorie können Sie jedes andere Tool verwenden, um Windows von einem Linux-Computer aus zu verwalten. Einige davon werden im Artikel „ Fremdbestäubung: Linux unter Windows verwalten und umgekehrt “ behandelt.
Jetzt müssen Sie die Verbindung zu Windows über WinRM aktivieren. Zu diesem Zweck steht auf GitHub ein vorgefertigtes ConfigureRemotingForAnsible.ps1- Skript zur Verfügung . Nun, Sie wissen bereits, wie Skripte auf Remotecomputern ausgeführt werden.
Sie können die Verbindung zu Windows mit dem folgenden Befehl überprüfen:
ansible windows -m win_ping

Verbindungsprüfung erfolgreich.
Jetzt können Sie ein Spielbuch erstellen. Die Tatsache, dass Ansible-Entwickler bereits für uns gedacht und das win_updates- Modul nur zur Lösung solcher Probleme erstellt haben, wird unser Leben einfacher machen.
Das Playbook ist eine „Anweisung“, die dem Konfigurationsmanagementsystem mitteilt, was zu tun ist. Natürlich Schritt für Schritt.
Jedes Playbook ist eine XML-Datei und eine Reihe von Anweisungen - jedes Modul hat seine eigenen. Mit dem winupdate-Modul können Sie die folgenden Anweisungen verwenden (Standardwerte sind fett gedruckt):
Titel | Wert | Beschreibung |
Kategorienamen | Anwendung Anschlüsse Kritische Aktualisierungen DefinitionUpdates Developerkits Featurepacks Anleitung Sicherheitsupdates Servicepacks Werkzeuge UpdateRollups Updates
| Kategorie der Updates. |
Whitelist | Nummer oder Namensvorlage aktualisieren. | Die Anzahl der direkt installierten Updates ist KB01234 oder das Namensmuster für reguläre PowerShell-Ausdrücke. |
schwarze Liste | Nummer oder Namensvorlage aktualisieren. | Direkt die Anzahl der Updates, die nicht installiert werden müssen, z. B. KB01234 oder die Namensvorlage in Form eines regulären PowerShell-Ausdrucks. |
Neustart | ja nein | Ist nach dem Upgrade ein Neustart erforderlich? |
reboot_timeout | Sekunden, 1200 | Was ist die Zeit, um nach dem Neustart auf das Auto zu warten? |
Zustand | installiert gesucht | Ob Updates installiert oder nur gesucht werden sollen. |
log_path | Dateipfad | Das Installationsprotokoll und der Ordner müssen vorhanden sein. |
Daher eignet sich das folgende Playbook zum Installieren bestimmter Updates:
- name: Install specific updates based on the KBs for those updates win_updates: category_name: - SecurityUpdates whitelist: - KB4073819 - KB4074228
Und wenn Sie nur berechnen müssen, wie viele Updates fehlen, sieht das Playbook folgendermaßen aus:
– name: Check for missing updates win_updates: state=searched register: update_count
Um alle verfügbaren Updates zu installieren, gefolgt von einem Neustart, gibt es ein ähnliches Playbook:
- name: Install all critical and security updates win_updates: category_names: - CriticalUpdates - SecurityUpdates - UpdateRollups state: installed register: update_result - name: reboot host if required win_reboot: when: update_result.reboot_required
Ich möchte Sie daran erinnern, dass Sie eine Inventardatei benötigen, um mit der Liste der Server arbeiten zu können. Zum Beispiel:
[DCs] dc1.mydomain.local dc2.mydomain.local [AppServers] app1.mydomain.local app2.mydomain.local [DBServers] db1.mydomain.local db2.mydomain.local
Um Updates nur auf Domänencontrollern zu installieren, können Sie das Playbook verwenden:
- hosts: DCs tasks: - name: Choose which Windows updates to install win_updates: category_names: - SecurityUpdates - CriticalUpdates - UpdateRollups
Das Team, das all diese Operationen ausführt, wird wie folgt aussehen:
ansible-playbook -i inventory.yml -s windowsupdates.yml
Ein aufmerksamer Leser kann nach der Quelle der heruntergeladenen Updates fragen. Die Quelle ist diejenige, die auf dem Computer konfiguriert ist: ob es sich um Windows Update im Internet oder um lokales WSUS handelt. Selbst wenn Ihre Hände die WSUS-Einstellungen nicht erreicht haben, können Sie den Befehl zum Installieren der erforderlichen dringenden Updates geben, insbesondere wenn die Lego-Teile bereits unter Ihren Füßen verschüttet wurden.
Es bleibt hinzuzufügen, dass es nicht notwendig ist, genau Ansible zu verwenden. Für das Chef-Konfigurationsverwaltungssystem können Sie beispielsweise den Cookbook Wsus Client oder den anspruchsvolleren Boxstarter verwenden . Ähnliche Module gibt es für Puppet. Im Allgemeinen kann fast jedes Konfigurationsmanagementsystem etwas Ähnliches tun, einschließlich MS SCCM.
Zum Schluss werde ich noch ein paar Tools geben, die mich interessieren.
Andere Systeme und Lösungen
WSUS offline . Ein Programm, mit dem Sie bei Bedarf die erforderlichen Updates in einem Paket herunterladen können, kann in ISO gepackt werden. Sie können das Paket auch in einem Netzwerkordner ablegen und Updates mit Skripten installieren, ohne die vollständige WSUS bereitzustellen.
Patch Management von Comodo. Das System zur Installation von Updates für Windows und andere Software. Im Gegensatz zu anderen Lösungen ist es kostenlos.

Schnittstelle Comodo Patch Management.
Opsi . Ein kostenloses, interessantes System, das die Installation nicht nur von Updates, sondern auch von Betriebssystemen und Inventar unterstützt.
BatchPatch . Das einzige bezahlte System auf der Liste. Ermöglicht das Installieren, Aktualisieren von Software wie Windows und vieles mehr. Es unterscheidet sich im Design der alten Schule sowie in den Kosten nicht für die Anzahl der gehosteten Hosts, sondern für Programmbenutzer, d. H. Administratoren. Vielleicht ist dies eine der wenigen Lösungen, die sich als Analogon zu WSUS positionieren. Der Preis beginnt bei 400 $.

BatchPatch-Schnittstelle.
Fügen Sie in den Kommentaren Ihre bevorzugten Tools für die Arbeit mit Updates und mehr hinzu.