Giter Site home page Giter Site logo

parsec-cloud-host's Introduction

Configure Parsec Host using PowerShell DSC

This module configures a cloud-based parsec host using PowerShell Desired State Configuration. Much of the configuration is based off the Parsec Cloud Preparation Tool. While there is no requirement for the machine to be cloud hosted, this configuration applies a number of Windows settings that you probably shouldn't have on a local primary machine (ie. autologon).

What this does

This module will automatically tweak Windows system settings, create a local account for autologon and set its password (or update the password of an existing local account), tweak user settings, install some software and drivers and configure parsec within a single reboot (you will still need to log in to parsec manually first before rebooting). At the next reboot your chosen account will autologon and parsec hosting session will be automatically started and ready to accept connections. The GPU driver installation steps are still a work in progress.

How to use this

Build a machine

This module is intended to prepare a parsec cloud-hosted Window 10 or Windows Server 2016/2019 VMs with NVIDIA GPU. While the OS version is not strictly required, your choice of Windows must have PowerShell 5.1 or higher installed/available, and of course for Parsec's minimum requirements to be met.

Cloud provider and GPU list:

  • Azure
    • Tesla M60
  • AWS
    • GRID K520
    • Tesla M60
    • Tesla P4
    • Tesla T4
  • Google Cloud
    • Tesla P4
    • Tesla T4
  • Paperspace
    • Quadro P4000
    • Quadro P5000
  • Other
    • You will have to manually install GPU drivers

Parsec configuration file is set to host from port UDP 8000, so make sure you have opened up an appropriately sized UDP port range on the virtual network to your parsec host VM.

Apply the Configuration

Connect to your machine using RDP (remote desktop). Start PowerShell with administrator privileges, then copy-and-paste the following commands:

# Force TLS 1.2, allow arbitrary script execution just for this session
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Set-ExecutionPolicy -ExecutionPolicy 'Bypass' -Scope 'Process' -Force

# Set some paths
$workingDir = $env:Temp
$zipFile = Join-Path $workingDir 'parsec-cloud-host.zip'
$extractedPath = Join-Path $workingDir 'parsec-cloud-host-master'

# Clean up any previous runs
Remove-Item -Path $zipFile -EA SilentlyContinue
Remove-Item -Recurse -Path $extractedPath -EA SilentlyContinue

# Download zip of the repo and extract
[System.Net.WebClient]::new().DownloadFile('https://github.com/jhychan/parsec-cloud-host/archive/master.zip', $zipFile)
Get-Item $zipFile | Expand-Archive -DestinationPath $workingDir

# Apply the configuration
Set-Location -Path $workingDir
.\parsec-cloud-host-master\Apply-ParsecHostDsc.ps1 -Verbose

The script will proceed to configure the machine. You should be prompted for the following:

  • Early on: Username/password for the user account you want autologon configured for
  • Towards the end: message to login to Parsec before rebooting
  • Very end: reboot the machine

Progress Tracker

The checklist below outlines the configuration applied by this module, and tracks configuration capabilities that are under development.

Windows Features:

  • .Net 3.5 Framework
  • .Net 4.x Framework
  • DirectPlay

Windows General:

  • Disable IE ESC
  • Disable Automatic Updates (Windows)
  • Enable automatic NTP sync
  • Disable New Network window
  • Prioritise foreground processes
  • Disable Server Manager at logon
  • Disable crash dump
  • Disable lockscreen
  • Disable unncessary services
  • Disable unncessary scheduled tasks
  • Disable telemetry
  • Switch to high performance power plan

Windows User:

  • Configure local user account with autologon
  • Disable IE proxy settings
  • Automatically close apps on shutdown
  • Disable mouse acceleration
  • Disable accessibility keyboard shortcuts
  • Set visual settings to best performance
  • Windows explorer settings
    • Show hidden files
    • Show file extensions
    • Disable recent files
  • Desktop settings
    • Set wallpaper
  • Disable system tray hiding

Install Software:

  • PowerShell modules
    • Chocolatey
    • PSDscResources
  • General Software
    • 7zip
    • Google Chrome
    • Parsec
      • Parsec autostartup (as a scheduled task)
      • User message to login and configure parsec
      • Symlink parsec config folder to the autologon account
      • Set default hosting port to start from 8000
    • Steam

Install Drivers:

  • devcon
  • VB-Cable
    • Windows audio services
  • Nvidia GPU (needs testing)
    • Enable NVidia GPU
    • Disable all other GPUs
    • Allow only one monitor
    • Check GRID mode
  • Unsupported GPUs
    • Warn user about parsec compat and manual driver install

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.