Skip to content

Commit

Permalink
Updates for v2.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
eggoynes committed Mar 16, 2022
1 parent 5c688fa commit 1d57fea
Show file tree
Hide file tree
Showing 6 changed files with 78 additions and 10 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.2.0] - 2022-03-16

- Update NICE DCV to latest release (2022.0)
- Reinstate Teradici CAS
- Update install process for Teradici CAS to request user provide download token from Teradici portal (https://docs.teradici.com/find/product/cloud-access-software)

## [2.1.1] - 2022-03-07

### Changed
Expand Down
35 changes: 32 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,37 @@
# AWS Edit in the Cloud

This step-by-step guide details how to deploy an edit host, storage, and connectivity on AWS. This template allows users to build additional features, and add functionality, into an Amazon Elastic Compute Cloud (Amazon EC2) deployment. By incorporating Amazon FSx for Windows File Server, you can utilize a central repository for your media assets while providing an easy connection to your EC2 instance. The template also includes AWS Directory Services in conjunction with Teradici for federated login to allow for seamless editorial experience. Once you are logged into AWS Management Console, use this AWS CloudFormation deployment template.
This step-by-step guide details how to deploy an edit host, storage, and connectivity on AWS. This template allows users to build additional features, and add functionality, into an Amazon Elastic Compute Cloud (Amazon EC2) deployment. By incorporating Amazon FSx for Windows File Server, you can utilize a central repository for your media assets while providing an easy connection to your EC2 instance. The template also includes AWS Directory Services for federated login to allow for seamless editorial experience. Once you are logged into AWS Management Console, use this AWS CloudFormation deployment template.

## Building distributable for customization
When deploying this solution, you are able to select from either Teradici CAS (https://www.teradici.com/products/CAS-cloud-access-software) or NICE DCV (https://aws.amazon.com/hpc/dcv/) as the Remote Display Protocol installed on the EC2 based Edit Workstation.

## Teradici CAS Installation Notes

In order to download the Teradici CAS Graphics Agent for Windows, customers are issued with a unique download token by Teradici. This solution prompts for this token as a parameter of the CloudFormation template used to deploy from.

To obtain the download token from Teradici:

1. Open https://docs.teradici.com/find/product/cloud-access-software
2. Click on the download link for the Teradici Graphics Agent for Windows.
3. You will be prompted to sign in (if not already signed in).
4. After signing in, click on the "Downloads and scripts" link.
5. You will be prompted to agree to an EULA.
6. After reviewing and agreeing to the EULA, click on the "Download using a script" link.
7. Example download commands using cURL will be displayed. Each sample command contains a download URL which contains a 16-character token that immediately follows "https://dl.teradici.com/", for example "https://dl.teradici.com/1234567890abcdef/pcoip-agent/...." where "1234567890abcdef" is the token. Copy this token, it is unique to your Teradici login.
8. Use this token in the TeradiciDownloadToken parameter required by the CloudFormation template in this solution.

Teradici client software can also be obtained from the same site.

Teradici CAS installations require a subscription which can be obtained from Teradici. Please see the AWS Edit in the Cloud Implementation Guide (https://docs.aws.amazon.com/solutions/latest/aws-edit-in-the-cloud/welcome.html) for details on obtaining and applying a license for this sofware after the solution is deployed.

## NICE DCV Installation Notes

You do not need a license server to install and use NICE DCV on an EC2 instance. This solution sets up the necessary access to a specific S3 bucket which is used to obtain a license for NICE DCV when running on EC2.

NICE DCV clients for Windows, MacOS and Linux can be downloaded from https://download.nice-dcv.com/

## Development Notes

### Building distributable for customization

* Configure the bucket name of your target Amazon S3 distribution bucket

Expand Down Expand Up @@ -53,7 +82,7 @@ echo "https://s3.amazonaws.com/$TEMPLATE_OUTPUT_BUCKET/$SOLUTION_NAME/$VERSION/$

***

## File Structure
### File Structure

```text
|-deployment/
Expand Down
14 changes: 14 additions & 0 deletions deployment/templates/aws-edit-in-the-cloud-edit-host.template
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Metadata:
- ExistingHostSecurityGroupID
- KeyPairName
- RemoteDisplayProtocol
- TeradiciDownloadToken
- FSxNetworkFileShare
- SGWNetworkFileShare
- Label:
Expand Down Expand Up @@ -39,6 +40,8 @@ Metadata:
default: Key Pair Name
RemoteDisplayProtocol:
default: Remote Display Protocol
TeradiciDownloadToken:
default: Teradici Download Token
InstanceType:
default: Amazon EC2 instance type for the video editing server
ExistingHostSecurityGroupID:
Expand Down Expand Up @@ -100,6 +103,9 @@ Parameters:
AllowedValues:
- teradici
- nicedcv
TeradiciDownloadToken:
Description: (REQUIRED if using Teradici). Download Token for Teradici Graphics Agent for Windows installer. Copy this 16-character token, located immediately after 'https://dl.teradici.com/' in the download URLs provided within the "Download using a script" section of https://docs.teradici.com/find/product/cloud-access-software, after signing in and agreeing to the EULA.
Type: String
InstanceType:
Type: String
Description: Amazon EC2 instance type for the video editing server
Expand Down Expand Up @@ -284,6 +290,11 @@ Resources:
C:\cfn\scripts\install-nicedcv.ps1:
source: !Sub 'https://${CloudFormationBucketName}.s3.${AWS::Region}.${AWS::URLSuffix}/${CloudFormationKeyPrefix}/install-nicedcv.ps1'
authentication: S3AccessCreds
C:\Program Files\NICE\DCV\Server\conf\console-permissions.txt:
content: |
[permissions]
%owner% allow builtin
%any% allow builtin
commands:
'01-install-nicedcv':
command: 'powershell.exe -ExecutionPolicy Unrestricted C:\cfn\scripts\install-nicedcv.ps1 -Verbose'
Expand All @@ -293,6 +304,9 @@ Resources:
C:\cfn\scripts\install-teradici.ps1:
source: !Sub 'https://${CloudFormationBucketName}.s3.${AWS::Region}.${AWS::URLSuffix}/${CloudFormationKeyPrefix}/install-teradici.ps1'
authentication: S3AccessCreds
C:\cfn\scripts\conf.ps1:
content: !Sub |
$TeradiciDownloadToken = "${TeradiciDownloadToken}"
commands:
'01-install-teradici':
command: 'powershell.exe -ExecutionPolicy Unrestricted C:\cfn\scripts\install-teradici.ps1 -Verbose'
Expand Down
9 changes: 8 additions & 1 deletion deployment/templates/aws-edit-in-the-cloud.template
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ Metadata:
- EditHostAccessCIDR
- KeyPairName
- RemoteDisplayProtocol
- TeradiciDownloadToken
- Label:
default: Microsoft Active Directory Configuration
Parameters:
Expand Down Expand Up @@ -74,6 +75,8 @@ Metadata:
default: Key Pair Name
RemoteDisplayProtocol:
default: Remote Display Protocol
TeradiciDownloadToken:
default: Teradici Download Token
EditHostInstanceType:
default: Amazon EC2 instance type for the video editing server
PrivateSubnet1CIDR:
Expand Down Expand Up @@ -162,8 +165,11 @@ Parameters:
Type: String
Default: nicedcv
AllowedValues:
# - teradici
- teradici
- nicedcv
TeradiciDownloadToken:
Description: (REQUIRED if using Teradici). Download Token for Teradici Graphics Agent for Windows installer. Copy this 16-character token, located immediately after 'https://dl.teradici.com/' in the download URLs provided within the "Download using a script" section of https://docs.teradici.com/find/product/cloud-access-software, after signing in and agreeing to the EULA.
Type: String
PrivateSubnet1CIDR:
AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$
ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-28
Expand Down Expand Up @@ -303,6 +309,7 @@ Resources:
InstanceType: !Ref 'EditHostInstanceType'
KeyPairName: !Ref 'KeyPairName'
RemoteDisplayProtocol: !Ref 'RemoteDisplayProtocol'
TeradiciDownloadToken: !Ref 'TeradiciDownloadToken'
HostSubnetId: !GetAtt 'VPCStack.Outputs.PublicSubnet1ID'
FSxNetworkFileShare: !GetAtt 'FSXDNSNameStack.Outputs.FSxNetworkShare'
SGWNetworkFileShare: 'NONE'
Expand Down
14 changes: 9 additions & 5 deletions source/install-nicedcv.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
[CmdletBinding()]
param(
[Parameter(Mandatory=$false)]
#[string]$Source = 'https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-server-x64-Release.msi',
# Locking to 2021.3 to workaround permissions requirements for session sharing.
[string]$Source = 'https://d1uj6qtbmh3dt5.cloudfront.net/2021.3/Servers/nice-dcv-server-x64-Release-2021.3-11591.msi',
[string]$Source = 'https://d1uj6qtbmh3dt5.cloudfront.net/nice-dcv-server-x64-Release.msi',
[Parameter(Mandatory=$false)]
[string]$Destination = 'C:\cfn\downloads\nice-dcv-server-x64-Release.msi'
)
Expand Down Expand Up @@ -40,8 +38,14 @@ try {
}
}

# Add a registry key to enable the QUIC (UDP) protocol in NiceDCV
# Add a registry key to enable a default Administrator session & the QUIC (UDP) protocol in NiceDCV
New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS
New-Item -Path "HKU:\S-1-5-18\Software\GSettings\com\nicesoftware\dcv\session-management" -Force
New-Item -Path "HKU:\S-1-5-18\Software\GSettings\com\nicesoftware\dcv\session-management\automatic-console-session" -Force
New-ItemProperty -Path "HKU:\S-1-5-18\Software\GSettings\com\nicesoftware\dcv\session-management" -Name create-session -PropertyType DWord -Value 1
New-ItemProperty -Path "HKU:\S-1-5-18\Software\GSettings\com\nicesoftware\dcv\session-management\automatic-console-session" -Name owner -Value Administrator
New-ItemProperty -Path "HKU:\S-1-5-18\Software\GSettings\com\nicesoftware\dcv\session-management\automatic-console-session" -Name permissions-file -Value "C:\Program Files\NICE\DCV\Server\conf\console-permissions.txt"
# Set up QUIC
New-Item -Path HKU:\S-1-5-18\Software\GSettings\com\nicesoftware\dcv\ -Name connectivity -Force
New-ItemProperty -Path HKU:\S-1-5-18\Software\GSettings\com\nicesoftware\dcv\connectivity\ -Name enable-quic-frontend -Value 1

Expand All @@ -50,7 +54,7 @@ try {
# AUTOMATIC_SESSION_OWNER variable changes the default owner from SYSTEM to the local administrator
# '/norestart' - to prevent reboot
#
Start-Process msiexec.exe -ArgumentList "/I $Destination", 'AUTOMATIC_SESSION_OWNER=Administrator', '/quiet','/norestart', '/l*v dcv_install_msi.log' -Wait
Start-Process msiexec.exe -ArgumentList "/I $Destination", '/quiet','/norestart', '/l*v dcv_install_msi.log' -Wait
} else {
throw "Problem installing NiceDCV, not .msi extension"
}
Expand Down
10 changes: 9 additions & 1 deletion source/install-teradici.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,22 @@
[CmdletBinding()]
param(
[Parameter(Mandatory=$false)]
[string]$Source = 'https://downloads.teradici.com/win/stable/PCoIP_agent_release_installer_graphics.exe',
[string]$TeradiciDownloadToken,
[Parameter(Mandatory=$false)]
[string]$Destination = 'C:\cfn\downloads\PCoIP_agent_release_installer_graphics.exe'
)

try {
$ErrorActionPreference = "Stop"

if($TeradiciDownloadToken -eq [string]::Empty) {
Write-Host "No Token passed, reading config file"
# Read in the configuration written in by CloudFormation
. "C:\cfn\scripts\conf.ps1"
}

$Source = "https://dl.teradici.com/$TeradiciDownloadToken/pcoip-agent/raw/names/pcoip-agent-graphics-exe/versions/latest/pcoip-agent-graphics_latest.exe"

$parentDir = Split-Path $Destination -Parent
if (-not (Test-Path $parentDir)) {
New-Item -Path $parentDir -ItemType directory -Force | Out-Null
Expand Down

0 comments on commit 1d57fea

Please sign in to comment.