1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/test/integration/targets/win_rds_settings/tasks/main.yml
Kevin Subileau 5d15a539c7 Add modules to manage Remote Desktop Services (#43406)
* Add windows module win_rds_settings

* Add windows module win_rds_rap

* Add windows module win_rds_cap

* Add tests for module win_rds_settings

* Add tests for module win_rds_rap

* Add tests for module win_rds_cap

* Validate user and computer groups in module win_rds_cap

* Validate user groups in module win_rds_rap

* Support additional formats (UPN, Down-Level Login Name, SID and Login Name) for user and computer group names in module win_rds_cap

* Support additional formats (UPN, Down-Level Login Name, SID and Login Name) for user group names in module win_rds_rap

* Validate computer group parameter and support additional formats (UPN, Down-Level Login Name, SID and Login Name) in module win_rds_rap

* Validate allowed ports parameter in module win_rds_rap

* Ensure user group list is not empty in module win_rds_rap

* Remove unwanted value in result object

* Ensure user group list is not empty in module win_rds_cap

* Ensure order parameter value never exceed the number of existing CAPs in module win_rds_cap

* Add diff mode support to win_rds_cap

* Add diff mode support to win_rds_rap

* Add diff mode support to win_rds_settings

* Add SSL bridging and messaging policy settings to module win_rds_settings

* Fix copyright

[skip ci]

* Add missing trailing dots in documentation

[skip ci]

* Fix incorrect variable passed to Fail-Json

* Minor changes and doc update

* Avoid using Powershell aliases

* Use WMI instead of PSProvider to handle group names to avoid conversion in UPN form

* Use CIM instead of WMI cmdlets
2019-01-30 07:21:56 +10:00

88 lines
2.8 KiB
YAML

---
# 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: 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}}'
state: directory
- name: deploy test artifacts
win_template:
src: '{{item}}.j2'
dest: '{{test_win_rds_settings_path}}\{{item | basename}}'
with_items:
- rds_base_cfg.xml
- name: import RDS test 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: write certreq file
win_copy:
content: |-
[NewRequest]
Subject = "CN={{ rds_cert_suject }}"
KeyLength = 2048
KeyAlgorithm = RSA
MachineKeySet = true
RequestType = Cert
KeyUsage = 0xA0 ; Digital Signature, Key Encipherment
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication
dest: '{{test_win_rds_settings_path}}\certreq.txt'
- name: create self signed cert from certreq
win_command: certreq -new -machine {{test_win_rds_settings_path}}\certreq.txt {{test_win_rds_settings_path}}\certreqresp.txt
- name: register certificate thumbprint
raw: '(gci Cert:\LocalMachine\my | ? {$_.subject -eq "CN={{ rds_cert_suject }}"})[0].Thumbprint'
register: rds_cert_thumbprint
- 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: cleanup test artifacts
win_file:
path: '{{test_win_rds_settings_path}}'
state: absent
when: module_available.rc == 0