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
pull/51753/head
Jordan Borean 6 years ago committed by GitHub
parent d5797aa02f
commit c572d17c2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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

@ -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

@ -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

@ -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

@ -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: remove certificate
raw: 'remove-item cert:\localmachine\my\{{ item }} -force -ea silentlycontinue'
with_items:
- "{{ rds_cert_thumbprint.stdout_lines[0] }}"
- 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: cleanup test artifacts
win_file:
path: '{{test_win_rds_settings_path}}'
state: absent
- name: remove certificate
raw: 'remove-item cert:\localmachine\my\{{ item }} -force -ea silentlycontinue'
with_items:
- "{{ rds_cert_thumbprint.stdout_lines[0] }}"
when: module_available.rc == 0
- name: cleanup test artifacts
win_file:
path: '{{test_win_rds_settings_path}}'
state: absent

Loading…
Cancel
Save