概要
Ansibleのwin_updatesまたはwin_hotfixモジュールを使用してWindows Serverに更新プログラムを適用する検証を行いました。Windows Server 2016には問題なく適用できましたが、Windows Server 2022は一部エラーが出力され適用することができませんでした。実施内容について以下に記載します。
前提
- 調査時期は2021年11月頃となるため、この先Ansibleの条件が変わる可能性があります。
- Ansibleのインベントリ等の基礎知識があることを前提に記事を記載しています。
- Windows Serverは試用版を使用しています。
検証結果
win_updates
以下のAnsible-playbookを作成しWindows Serverにリリースされている全ての更新プログラムを適用しました。
- hosts: windows gather_facts: false tasks: - name: Install all updates and reboot as many times as needed ansible.windows.win_updates: category_names: '*' reboot: yes
Windows Server 2016で1回実行すると、KB890830とKB5005698とKB4103730が適用され再起動も行われたが、timeoutのようなエラーで停止してしまいました。2回目実行すると、再起動後の「更新プログラムを構成しています」の処理に時間がかかりすぎて(検証機のスペックが低いため)エラーで停止しました。3回目でokが表示されました。なので、okが表示されるまで何度も実行する形になると思います。
Windows Server 2022では問題なく、change=1となりました。
win_hotfix
以下のAnsible-playbookを作成しWindows Serverにmsu形式の更新プログラムを適用しました。 またこちらの定義はWindows Server 2016が前提となります。
- hosts: windows gather_facts: false tasks: - name: Create work directory win_file: path: C:\work state: directory - name: Copy patch ansible.windows.win_copy: src: /patch/windows10.0-kb5008601-x64_c0fddabd5b9698548d741effbdfd03a4f2440ba2.msu dest: C:\work\windows10.0-kb5008601-x64_c0fddabd5b9698548d741effbdfd03a4f2440ba2.msu - name: Install hotfix win_hotfix: source: C:\work\windows10.0-kb5008601-x64_c0fddabd5b9698548d741effbdfd03a4f2440ba2.msu state: present register: hotfix_result - name: Reboot host if required win_reboot: when: hotfix_result.reboot_required
Windows Server 2016は問題なく更新プログラムを適用することができました。しかし、Windows Server 2022はエラーを出力して適用することができませんでした。今後、適用されるように修正されるのではないかと思います。