mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
5fbbf0e75a
* win_hotfix: new module to install Windows hotfixes * revert to older module util loader style to satisfy the checks for now * Changes from PR * changed the test hotfix so we can run tests in shippable
253 lines
7.7 KiB
YAML
253 lines
7.7 KiB
YAML
---
|
|
- name: create test staging folder
|
|
win_file:
|
|
path: '{{test_win_hotfix_path}}'
|
|
state: directory
|
|
|
|
- name: download hotfix
|
|
win_get_url:
|
|
url: '{{test_win_hotfix_good_url}}'
|
|
dest: '{{test_win_hotfix_path}}\good.msu'
|
|
|
|
- name: download reboot hotfix
|
|
win_get_url:
|
|
url: '{{test_win_hotfix_reboot_url}}'
|
|
dest: '{{test_win_hotfix_path}}\reboot.msu'
|
|
|
|
- name: download bad hotfix
|
|
win_get_url:
|
|
url: '{{test_win_hotfix_bad_url}}'
|
|
dest: '{{test_win_hotfix_path}}\bad.msu'
|
|
|
|
- name: fail install install hotfix where kb doesn't match
|
|
win_hotfix:
|
|
hotfix_kb: KB0000000
|
|
source: '{{test_win_hotfix_path}}\good.msu'
|
|
state: present
|
|
register: fail_install_invalid_kb
|
|
failed_when: fail_install_invalid_kb.msg != 'the hotfix KB KB0000000 does not match with the source msu KB ' + test_win_hotfix_kb + ', please omit or specify the correct KB to continue'
|
|
|
|
- name: fail install install hotfix where identifier doesn't match
|
|
win_hotfix:
|
|
hotfix_identifier: invalid
|
|
source: '{{test_win_hotfix_path}}\good.msu'
|
|
state: present
|
|
register: fail_install_invalid_identifier
|
|
failed_when: fail_install_invalid_identifier.msg != 'the hotfix identifier invalid does not match with the source msu identifier ' + test_win_hotfix_identifier + ', please omit or specify the correct identifier to continue'
|
|
|
|
- name: fail install not applicable hotfix
|
|
win_hotfix:
|
|
source: '{{test_win_hotfix_path}}\bad.msu'
|
|
state: present
|
|
register: fail_install_not_applicable
|
|
failed_when: fail_install_not_applicable.msg != 'hotfix package is not applicable for this server'
|
|
|
|
- name: install hotfix check
|
|
win_hotfix:
|
|
source: '{{test_win_hotfix_path}}\good.msu'
|
|
state: present
|
|
register: install_hotfix_check
|
|
check_mode: yes
|
|
|
|
- name: get result of install hotfix check
|
|
win_command: powershell.exe Get-Hotfix -Id {{test_win_hotfix_kb}}
|
|
register: install_hotfix_actual_check
|
|
ignore_errors: True
|
|
|
|
- name: assert install hotfix check
|
|
assert:
|
|
that:
|
|
- install_hotfix_check|changed
|
|
- install_hotfix_check.kb == test_win_hotfix_kb
|
|
- install_hotfix_check.identifier == test_win_hotfix_identifier
|
|
- install_hotfix_actual_check.rc != 0
|
|
|
|
- name: install hotfix
|
|
win_hotfix:
|
|
source: '{{test_win_hotfix_path}}\good.msu'
|
|
state: present
|
|
register: install_hotfix
|
|
|
|
- name: get result of install hotfix
|
|
win_command: powershell.exe Get-Hotfix -Id {{test_win_hotfix_kb}}
|
|
register: install_hotfix_actual
|
|
|
|
- name: assert install hotfix
|
|
assert:
|
|
that:
|
|
- install_hotfix|changed
|
|
- install_hotfix.kb == test_win_hotfix_kb
|
|
- install_hotfix.identifier == test_win_hotfix_identifier
|
|
- install_hotfix.reboot_required == False
|
|
- install_hotfix_actual.rc == 0
|
|
|
|
- name: install hotfix again
|
|
win_hotfix:
|
|
source: '{{test_win_hotfix_path}}\good.msu'
|
|
state: present
|
|
register: install_hotfix_again
|
|
|
|
- name: assert install hotfix again
|
|
assert:
|
|
that:
|
|
- not install_hotfix_again|changed
|
|
- install_hotfix_again.kb == test_win_hotfix_kb
|
|
- install_hotfix_again.identifier == test_win_hotfix_identifier
|
|
- install_hotfix_again.reboot_required == False
|
|
|
|
- name: uninstall hotfix check
|
|
win_hotfix:
|
|
hotfix_identifier: '{{test_win_hotfix_identifier}}'
|
|
state: absent
|
|
register: uninstall_hotfix_check
|
|
check_mode: yes
|
|
|
|
- name: get result of uninstall hotfix check
|
|
win_command: powershell.exe Get-Hotfix -Id {{test_win_hotfix_kb}}
|
|
register: uninstall_hotfix_actual_check
|
|
|
|
- name: assert uninstall hotfix check
|
|
assert:
|
|
that:
|
|
- uninstall_hotfix_check|changed
|
|
- uninstall_hotfix_check.kb == test_win_hotfix_kb
|
|
- uninstall_hotfix_check.identifier == test_win_hotfix_identifier
|
|
- uninstall_hotfix_actual_check.rc == 0
|
|
|
|
- name: uninstall hotfix
|
|
win_hotfix:
|
|
hotfix_identifier: '{{test_win_hotfix_identifier}}'
|
|
state: absent
|
|
register: uninstall_hotfix
|
|
|
|
- name: get result of uninstall hotfix
|
|
win_command: powershell.exe Get-Hotfix -Id {{test_win_hotfix_kb}}
|
|
register: uninstall_hotfix_actual
|
|
ignore_errors: True
|
|
|
|
- name: assert uninstall hotfix
|
|
assert:
|
|
that:
|
|
- uninstall_hotfix|changed
|
|
- uninstall_hotfix.kb == test_win_hotfix_kb
|
|
- uninstall_hotfix.identifier == test_win_hotfix_identifier
|
|
- uninstall_hotfix.reboot_required == False
|
|
- uninstall_hotfix_actual.rc != 0
|
|
|
|
- name: uninstall hotfix again
|
|
win_hotfix:
|
|
hotfix_identifier: '{{test_win_hotfix_identifier}}'
|
|
state: absent
|
|
register: uninstall_hotfix_again
|
|
|
|
- name: assert uninstall hotfix again
|
|
assert:
|
|
that:
|
|
- not uninstall_hotfix_again|changed
|
|
- uninstall_hotfix_again.reboot_required == False
|
|
|
|
- name: install reboot hotfix
|
|
win_hotfix:
|
|
hotfix_kb: '{{test_win_hotfix_reboot_kb}}'
|
|
source: '{{test_win_hotfix_path}}\reboot.msu'
|
|
state: present
|
|
register: install_reboot_hotfix
|
|
|
|
- name: get result of install reboot hotfix
|
|
win_command: powershell.exe Get-Hotfix -Id {{test_win_hotfix_reboot_kb}}
|
|
register: install_hotfix_reboot_actual
|
|
|
|
- name: assert install reboot hotfix
|
|
assert:
|
|
that:
|
|
- install_reboot_hotfix|changed
|
|
- install_reboot_hotfix.kb == test_win_hotfix_reboot_kb
|
|
- install_reboot_hotfix.identifier == test_win_hotfix_reboot_identifier
|
|
- install_reboot_hotfix.reboot_required == True
|
|
- install_hotfix_reboot_actual.rc == 0
|
|
|
|
- name: run install reboot again before rebooting
|
|
win_hotfix:
|
|
source: '{{test_win_hotfix_path}}\reboot.msu'
|
|
state: present
|
|
register: install_before_rebooting
|
|
|
|
- name: assert install reboot again before rebooting
|
|
assert:
|
|
that:
|
|
- not install_before_rebooting|changed
|
|
- install_before_rebooting.reboot_required == True
|
|
|
|
- win_reboot:
|
|
|
|
- name: install reboot hotfix again
|
|
win_hotfix:
|
|
hotfix_identifier: '{{test_win_hotfix_reboot_identifier}}'
|
|
source: '{{test_win_hotfix_path}}\reboot.msu'
|
|
state: present
|
|
register: install_reboot_hotfix_again
|
|
|
|
- name: assert install reboot hotfix again
|
|
assert:
|
|
that:
|
|
- not install_reboot_hotfix_again|changed
|
|
- install_reboot_hotfix_again.reboot_required == False
|
|
|
|
- name: uninstall hotfix with kb check
|
|
win_hotfix:
|
|
hotfix_kb: '{{test_win_hotfix_reboot_kb}}'
|
|
state: absent
|
|
register: uninstall_hotfix_kb_check
|
|
check_mode: yes
|
|
|
|
- name: get result of uninstall hotfix with kb check
|
|
win_command: powershell.exe Get-Hotfix -Id {{test_win_hotfix_reboot_kb}}
|
|
register: uninstall_hotfix_kb_actual_check
|
|
|
|
- name: assert uninstall hotfix with kb check
|
|
assert:
|
|
that:
|
|
- uninstall_hotfix_kb_check|changed
|
|
- uninstall_hotfix_kb_check.kb == test_win_hotfix_reboot_kb
|
|
- uninstall_hotfix_kb_check.identifier == test_win_hotfix_reboot_identifier
|
|
- uninstall_hotfix_kb_check.reboot_required == False
|
|
- uninstall_hotfix_kb_actual_check.rc == 0
|
|
|
|
- name: uninstall hotfix with kb
|
|
win_hotfix:
|
|
hotfix_kb: '{{test_win_hotfix_reboot_kb}}'
|
|
state: absent
|
|
register: uninstall_hotfix_kb
|
|
|
|
- name: get result of uninstall hotfix with kb
|
|
win_command: powershell.exe Get-Hotfix -Id {{test_win_hotfix_kb}}
|
|
register: uninstall_hotfix_kb_actual
|
|
ignore_errors: True
|
|
|
|
- name: assert uninstall hotfix with kb
|
|
assert:
|
|
that:
|
|
- uninstall_hotfix_kb|changed
|
|
- uninstall_hotfix_kb.kb == test_win_hotfix_reboot_kb
|
|
- uninstall_hotfix_kb.identifier == test_win_hotfix_reboot_identifier
|
|
- uninstall_hotfix_kb.reboot_required == True
|
|
- uninstall_hotfix_kb_actual.rc != 0
|
|
|
|
- win_reboot:
|
|
|
|
- name: uninstall hotfix with kb again
|
|
win_hotfix:
|
|
hotfix_kb: '{{test_win_hotfix_reboot_kb}}'
|
|
state: absent
|
|
register: uninstall_hotfix_kb_again
|
|
|
|
- name: assert uninstall hotfix with kb again
|
|
assert:
|
|
that:
|
|
- not uninstall_hotfix_kb_again|changed
|
|
- uninstall_hotfix_kb_again.reboot_required == False
|
|
|
|
- name: remove test staging folder
|
|
win_file:
|
|
path: '{{test_win_hotfix_path}}'
|
|
state: absent
|