mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
55 lines
1.8 KiB
YAML
55 lines
1.8 KiB
YAML
|
---
|
||
|
- name: filter servers that can support DISM
|
||
|
win_command: powershell.exe "Import-Module -Name DISM"
|
||
|
register: eligable_servers
|
||
|
ignore_errors: True
|
||
|
|
||
|
- name: fail to run module on servers that don't support DISM
|
||
|
win_hotfix:
|
||
|
path: fake
|
||
|
state: present
|
||
|
register: fail_no_dism
|
||
|
failed_when: fail_no_dism.msg != 'The DISM PS module needs to be installed, this can be done through the windows-adk chocolately package'
|
||
|
when: eligable_servers.rc != 0
|
||
|
|
||
|
- name: run tests on hosts that support DISM
|
||
|
include_tasks: tests.yml
|
||
|
when: eligable_servers.rc == 0
|
||
|
|
||
|
- name: set output to true if running Server 2012 R2
|
||
|
win_command: powershell.exe "$version = [Environment]::OSVersion.Version; if ($version.Major -eq 6 -and $version.Minor -eq 3) { 'true' } else { 'false' }"
|
||
|
register: test_hotfix
|
||
|
|
||
|
- block:
|
||
|
- name: ensure hotfixes are uninstalled before tests
|
||
|
win_hotfix:
|
||
|
hotfix_identifier: '{{item}}'
|
||
|
state: absent
|
||
|
register: pre_uninstall
|
||
|
with_items:
|
||
|
- '{{test_win_hotfix_identifier}}'
|
||
|
- '{{test_win_hotfix_reboot_identifier}}'
|
||
|
|
||
|
- name: reboot after pre test uninstall if required
|
||
|
win_reboot:
|
||
|
when: pre_uninstall.results[0].reboot_required == True or pre_uninstall.results[1].reboot_required == True
|
||
|
|
||
|
- name: run actual hotfix tests on Server 2012 R2 only
|
||
|
include_tasks: tests_2012R2.yml
|
||
|
|
||
|
always:
|
||
|
- name: ensure hotfixes are uninstalled after tests
|
||
|
win_hotfix:
|
||
|
hotfix_identifier: '{{item}}'
|
||
|
state: absent
|
||
|
register: post_uninstall
|
||
|
with_items:
|
||
|
- '{{test_win_hotfix_identifier}}'
|
||
|
- '{{test_win_hotfix_reboot_identifier}}'
|
||
|
|
||
|
- name: reboot after post test uninstall if required
|
||
|
win_reboot:
|
||
|
when: post_uninstall.results[0].reboot_required == True or post_uninstall.results[1].reboot_required == True
|
||
|
|
||
|
when: test_hotfix.stdout_lines[0] == "true"
|