# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: MIT-0 resource "aws_ssm_document" "prepare_linux_instance" { name = "${var.project}-${var.environment}-prepare-linux-instance" document_type = "Automation" document_format = "YAML" target_type = "/AWS::EC2::Instance" content = < | list of instances where to apply this ddocument | - dcvExternalAuthEndpoint | String | The Authentication endpoint for Nice DCV login | ${var.dcv_auth_endpoint} dcvWebPort | String | The Web port (TCP) for DCV | ${var.tcp_port} dcvQuicEnabled | Boolean | If QUIC UDP should be enabled | true dcvQuicPort | Number | The QUIC port (UDP) for DCV | ${var.udp_port} dcvNoTLSStrict | Boolean | Disable TLS strict | true schemaVersion: '0.3' parameters: InstanceIds: type: 'List' description: (Required) Provide the Instance Id. (e.g. i-07330aca1eb7fecc6 ) allowedPattern: '^[i]{0,1}-[a-z0-9]{8,17}$' dcvExternalAuthEndpoint: type: String description: (Required) [DCV] The Authentication endpoint for Nice DCV login default: '${var.dcv_auth_endpoint}' dcvWebPort: type: String description: (Required) [DCV] The Web port (TCP) for DCV default: '${var.tcp_port}' dcvQuicEnabled: type: String description: (Required) [DCV] If QUIC UDP should be enabled default: 'true' dcvQuicPort: type: String description: (Required) [DCV] The Quic port (UDP) for DCV default: '${var.udp_port}' dcvNoTLSStrict: type: String description: (Required) [DCV] Disable TLS strict default: 'true' mainSteps: - name: DCV_SetDCVExternalAuthEndpoint action: 'aws:runCommand' inputs: DocumentName: AWS-RunShellScript Targets: - Key: InstanceIds Values: '{{InstanceIds}}' Parameters: commands: - 'crudini --set /etc/dcv/dcv.conf "security" "auth-token-verifier" "{{ dcvExternalAuthEndpoint }}"' - name: DCV_SetWebPort action: 'aws:runCommand' inputs: DocumentName: AWS-RunShellScript Targets: - Key: InstanceIds Values: '{{InstanceIds}}' Parameters: commands: - 'crudini --set /etc/dcv/dcv.conf "connectivity" "web-port" "{{ dcvWebPort }}"' - name: DCV_SetQuic action: 'aws:runCommand' inputs: DocumentName: AWS-RunShellScript Targets: - Key: InstanceIds Values: '{{InstanceIds}}' Parameters: commands: - 'crudini --set /etc/dcv/dcv.conf "connectivity" "enable-quic-frontend" "{{ dcvQuicEnabled }}"' - name: DCV_SetQuicPort action: 'aws:runCommand' inputs: DocumentName: AWS-RunShellScript Targets: - Key: InstanceIds Values: '{{InstanceIds}}' Parameters: commands: - 'crudini --set /etc/dcv/dcv.conf "connectivity" "quic-port" "{{ dcvQuicPort }}"' - name: DCV_SetNoTLSStrict action: 'aws:runCommand' inputs: DocumentName: AWS-RunShellScript Targets: - Key: InstanceIds Values: '{{InstanceIds}}' Parameters: commands: - 'crudini --set /etc/dcv/dcv.conf "security" "no-tls-strict" "{{ dcvNoTLSStrict }}"' - name: DCV_RestartDCVServer action: 'aws:runCommand' inputs: DocumentName: AWS-RunShellScript Targets: - Key: InstanceIds Values: '{{InstanceIds}}' Parameters: commands: - 'systemctl restart dcvserver' DOC } resource "aws_ssm_document" "assign_linux_instance" { name = "${var.project}-${var.environment}-assign-linux-instance" document_type = "Automation" document_format = "YAML" target_type = "/AWS::EC2::Instance" content = <