mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
ansible-test: fix incompatibilty with the RDS tests and httptester (#51716)
* test out win_uri on Shippable * run all tests for group 3 - ci_complete * use shared setup and cleanup role for RDS * Set shippable matrix back to normal * cleanup changes to support Server 2008 R2
This commit is contained in:
parent
d5797aa02f
commit
c572d17c2e
11 changed files with 102 additions and 94 deletions
29
test/integration/targets/setup_win_rds/handlers/main.yml
Normal file
29
test/integration/targets/setup_win_rds/handlers/main.yml
Normal file
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
# Server 2008 R2 requires us to remove this first before the other features
|
||||
- name: remove the RDS-Gateway feature
|
||||
win_feature:
|
||||
name: RDS-Gateway
|
||||
state: absent
|
||||
listen: remove RDS feature
|
||||
register: rds_uninstall
|
||||
|
||||
- name: reboot after removing RDS-Gateway feature
|
||||
win_reboot:
|
||||
when: rds_uninstall.reboot_required
|
||||
listen: remove RDS feature
|
||||
|
||||
# Now remove the remaining features
|
||||
- name: remove installed RDS feature
|
||||
win_feature:
|
||||
name:
|
||||
- RDS-Licensing
|
||||
- RDS-RD-Server
|
||||
- Web-Server # not part of the initial feature install but RDS-Gateway requires this and it breaks httptester
|
||||
state: absent
|
||||
listen: remove RDS feature
|
||||
register: rds_uninstall2
|
||||
|
||||
- name: reboot after feature removal
|
||||
win_reboot:
|
||||
when: rds_uninstall2.reboot_required
|
||||
listen: remove RDS feature
|
29
test/integration/targets/setup_win_rds/tasks/main.yml
Normal file
29
test/integration/targets/setup_win_rds/tasks/main.yml
Normal file
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
# Cannot use win_feature to install RDS on Server 2008
|
||||
- name: check if feature is availble
|
||||
win_shell: if (Get-Command -Name Add-WindowsFeature -ErrorAction SilentlyContinue) { $true } else { $false }
|
||||
changed_when: False
|
||||
register: module_available
|
||||
|
||||
- name: set fact when RDS is available
|
||||
set_fact:
|
||||
rds_available: '{{ module_available.stdout | trim | bool }}'
|
||||
|
||||
- name: install Remote Desktop Gateway features
|
||||
when: rds_available
|
||||
block:
|
||||
- name: ensure Remote Desktop Gateway services are installed
|
||||
win_feature:
|
||||
name:
|
||||
- RDS-Gateway
|
||||
- RDS-Licensing
|
||||
- RDS-RD-Server
|
||||
state: present
|
||||
register: rds_install
|
||||
notify:
|
||||
- remove RDS feature
|
||||
|
||||
- name: reboot server if needed
|
||||
win_reboot:
|
||||
post_reboot_delay: 10
|
||||
when: rds_install.reboot_required
|
|
@ -1,2 +1,3 @@
|
|||
shippable/windows/group3
|
||||
destructive
|
||||
skip/windows/2008 # win_feature is requires to install the RDS feature and that doesn't support 2008
|
||||
|
|
3
test/integration/targets/win_rds_cap/meta/main.yml
Normal file
3
test/integration/targets/win_rds_cap/meta/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
dependencies:
|
||||
- setup_win_rds
|
|
@ -1,30 +1,10 @@
|
|||
---
|
||||
# Cannot use win_feature to install RDS on Server 2008.
|
||||
# Run a brief check and skip hosts that don't support
|
||||
# that operation
|
||||
- name: check if win_feature will work on test host
|
||||
win_command: powershell.exe "exit (-not (Get-Command -Name Add-WindowsFeature -ErrorAction SilentlyContinue))"
|
||||
register: module_available
|
||||
failed_when: False
|
||||
|
||||
# Run actual tests
|
||||
- block:
|
||||
- name: ensure Remote Desktop Gateway services are installed
|
||||
win_feature:
|
||||
name: RDS-Gateway,RDS-Licensing,RDS-RD-Server
|
||||
state: present
|
||||
include_management_tools: True
|
||||
register: rds_install
|
||||
|
||||
- name: reboot server if needed
|
||||
win_reboot:
|
||||
post_reboot_delay: 10
|
||||
when: rds_install.reboot_required
|
||||
|
||||
- include_tasks: tests.yml
|
||||
- name: run tests with cleanup
|
||||
when: rds_available # defined in setup_win_rds
|
||||
block:
|
||||
- name: run tests
|
||||
include_tasks: tests.yml
|
||||
|
||||
always:
|
||||
- name: delete all CAPs
|
||||
win_shell: Import-Module RemoteDesktopServices; Remove-Item -Path RDS:\GatewayServer\CAP\* -Recurse
|
||||
|
||||
when: module_available.rc == 0
|
||||
- name: delete all CAPs
|
||||
win_shell: Import-Module RemoteDesktopServices; Remove-Item -Path RDS:\GatewayServer\CAP\* -Recurse
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
shippable/windows/group3
|
||||
destructive
|
||||
skip/windows/2008 # win_feature is requires to install the RDS feature and that doesn't support 2008
|
||||
|
|
2
test/integration/targets/win_rds_rap/meta/main.yml
Normal file
2
test/integration/targets/win_rds_rap/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
|||
dependencies:
|
||||
- setup_win_rds
|
|
@ -1,30 +1,10 @@
|
|||
---
|
||||
# Cannot use win_feature to install RDS on Server 2008.
|
||||
# Run a brief check and skip hosts that don't support
|
||||
# that operation
|
||||
- name: check if win_feature will work on test host
|
||||
win_command: powershell.exe "exit (-not (Get-Command -Name Add-WindowsFeature -ErrorAction SilentlyContinue))"
|
||||
register: module_available
|
||||
failed_when: False
|
||||
|
||||
# Run actual tests
|
||||
- block:
|
||||
- name: ensure Remote Desktop Gateway services are installed
|
||||
win_feature:
|
||||
name: RDS-Gateway,RDS-Licensing,RDS-RD-Server
|
||||
state: present
|
||||
include_management_tools: True
|
||||
register: rds_install
|
||||
|
||||
- name: reboot server if needed
|
||||
win_reboot:
|
||||
post_reboot_delay: 10
|
||||
when: rds_install.reboot_required
|
||||
|
||||
- include_tasks: tests.yml
|
||||
- name: run tests with cleanup
|
||||
when: rds_available # defined in setup_win_rds
|
||||
block:
|
||||
- name: run tests
|
||||
include_tasks: tests.yml
|
||||
|
||||
always:
|
||||
- name: delete all RAPs
|
||||
win_shell: Import-Module RemoteDesktopServices; Remove-Item -Path RDS:\GatewayServer\RAP\* -Recurse
|
||||
|
||||
when: module_available.rc == 0
|
||||
- name: delete all RAPs
|
||||
win_shell: Import-Module RemoteDesktopServices; Remove-Item -Path RDS:\GatewayServer\RAP\* -Recurse
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
shippable/windows/group3
|
||||
shippable/windows/group1
|
||||
destructive
|
||||
skip/windows/2008 # win_feature is requires to install the RDS feature and that doesn't support 2008
|
||||
|
|
2
test/integration/targets/win_rds_settings/meta/main.yml
Normal file
2
test/integration/targets/win_rds_settings/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
|||
dependencies:
|
||||
- setup_win_rds
|
|
@ -1,30 +1,11 @@
|
|||
---
|
||||
# Cannot use win_feature to install RDS on Server 2008.
|
||||
# Run a brief check and skip hosts that don't support
|
||||
# that operation
|
||||
- name: check if win_feature will work on test host
|
||||
win_command: powershell.exe "exit (-not (Get-Command -Name Add-WindowsFeature -ErrorAction SilentlyContinue))"
|
||||
register: module_available
|
||||
failed_when: False
|
||||
|
||||
# Run actual tests
|
||||
- block:
|
||||
- name: run tests with cleanup
|
||||
when: rds_available # defined in setup_win_rds
|
||||
block:
|
||||
- name: gather facts
|
||||
setup:
|
||||
filter: ansible_hostname
|
||||
|
||||
- name: ensure Remote Desktop Gateway services are installed
|
||||
win_feature:
|
||||
name: RDS-Gateway,RDS-Licensing,RDS-RD-Server
|
||||
state: present
|
||||
include_management_tools: True
|
||||
register: rds_install
|
||||
|
||||
- name: reboot server if needed
|
||||
win_reboot:
|
||||
post_reboot_delay: 10
|
||||
when: rds_install.reboot_required
|
||||
|
||||
- name: ensure testing folders exists
|
||||
win_file:
|
||||
path: '{{test_win_rds_settings_path}}'
|
||||
|
@ -65,24 +46,23 @@
|
|||
raw: '(gci Cert:\LocalMachine\my | ? {$_.subject -eq "CN={{ rds_cert_suject }}"})[0].Thumbprint'
|
||||
register: rds_cert_thumbprint
|
||||
|
||||
- include_tasks: tests.yml
|
||||
# - name: run tests
|
||||
# include_tasks: tests.yml
|
||||
|
||||
always:
|
||||
- name: restore RDS base configuration
|
||||
win_shell: |
|
||||
$ts = Get-WmiObject Win32_TSGatewayServer -namespace root\cimv2\TerminalServices
|
||||
$import_xml = Get-Content {{test_win_rds_settings_path}}\rds_base_cfg.xml
|
||||
$import_result = $ts.Import(45, $import_xml)
|
||||
exit $import_result.ReturnValue
|
||||
- name: restore RDS base configuration
|
||||
win_shell: |
|
||||
$ts = Get-WmiObject Win32_TSGatewayServer -namespace root\cimv2\TerminalServices
|
||||
$import_xml = Get-Content {{test_win_rds_settings_path}}\rds_base_cfg.xml
|
||||
$import_result = $ts.Import(45, $import_xml)
|
||||
exit $import_result.ReturnValue
|
||||
|
||||
- name: remove certificate
|
||||
raw: 'remove-item cert:\localmachine\my\{{ item }} -force -ea silentlycontinue'
|
||||
with_items:
|
||||
- "{{ rds_cert_thumbprint.stdout_lines[0] }}"
|
||||
- name: remove certificate
|
||||
raw: 'remove-item cert:\localmachine\my\{{ item }} -force -ea silentlycontinue'
|
||||
with_items:
|
||||
- "{{ rds_cert_thumbprint.stdout_lines[0] }}"
|
||||
|
||||
- name: cleanup test artifacts
|
||||
win_file:
|
||||
path: '{{test_win_rds_settings_path}}'
|
||||
state: absent
|
||||
|
||||
when: module_available.rc == 0
|
||||
- name: cleanup test artifacts
|
||||
win_file:
|
||||
path: '{{test_win_rds_settings_path}}'
|
||||
state: absent
|
||||
|
|
Loading…
Reference in a new issue