6e3b03dfaa
These scripts will configure build and test Ubuntu 18/20 nodes with: Nvidia gaming drivers for GPU instances (g4dn) lightdm for Ubuntu 18 and gdm3 for Ubuntu 20 (wayland is disabled here, but should have xcb capabilities) NiceDCV for remote console access Note: Does not include user setup and firewall configurations Signed-off-by: Mike Chang <changml@amazon.com>
79 lines
2.3 KiB
Bash
Executable File
79 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright (c) Contributors to the Open 3D Engine Project.
|
|
# For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
#
|
|
|
|
# This script must be run as root
|
|
if [[ $EUID -ne 0 ]]
|
|
then
|
|
echo "This script must be run as root (sudo)"
|
|
exit 1
|
|
fi
|
|
|
|
# Download Nice DCV
|
|
#
|
|
echo Downloading Nice-DCV
|
|
mkdir /tmp/nice-dcv
|
|
cd /tmp/nice-dcv
|
|
curl -sSL https://d1uj6qtbmh3dt5.cloudfront.net/NICE-GPG-KEY | gpg --import -
|
|
|
|
if [ "`cat /etc/issue | grep 18.04`" != "" ] ; then
|
|
dcv_server=`curl --silent --output - https://download.nice-dcv.com/ | \
|
|
grep href | egrep "$dcv_version" | egrep "ubuntu1804" | grep Server | \
|
|
sed -e 's/.*http/http/' -e 's/tgz.*/tgz/' | head -1`
|
|
else
|
|
dcv_server=`curl --silent --output - https://download.nice-dcv.com/ | \
|
|
grep href | egrep "$dcv_version" | egrep "ubuntu2004" | grep Server | \
|
|
sed -e 's/.*http/http/' -e 's/tgz.*/tgz/' | head -1`
|
|
fi
|
|
|
|
# Install Nice DCV
|
|
#
|
|
echo Installing DCV from $dcv_server
|
|
wget $dcv_server \
|
|
&& tar zxvf nice-dcv-*ubun*.tgz
|
|
cd nice-dcv-*64
|
|
apt install -y ./nice-*amd64.ubuntu*.deb \
|
|
&& usermod -aG video dcv \
|
|
&& rm -rf /tmp/nice-dcv
|
|
|
|
# Setup multiuser environment for DCV
|
|
#
|
|
systemctl isolate multi-user.target
|
|
sleep 1
|
|
dcvgladmin enable
|
|
systemctl isolate graphical.target
|
|
|
|
# Check if DCV localuser for X has been setup correctly
|
|
#
|
|
if [ $(DISPLAY=:0 XAUTHORITY=$(ps aux | grep "X.*\-auth" | grep -v grep | sed -n 's/.*-auth \([^ ]\+\).*/\1/p') xhost | grep "SI:localuser:dcv$") ]; then
|
|
echo DCV localuser validated
|
|
else
|
|
echo [ERROR] DCV localuser not found. Output should be: SI:localuser:dcv. Exiting with 1
|
|
exit 1
|
|
fi
|
|
|
|
# Configure DCV for auto start sessions and performance
|
|
#
|
|
sed -i "s/#create-session = true/create-session = true/g" /etc/dcv/dcv.conf
|
|
sed -i "s/#owner=\"session-owner\"/owner=\"$LOGNAME\"/g" /etc/dcv/dcv.conf
|
|
sed -i "s/#target-fps=30/target-fps=0/g" /etc/dcv/dcv.conf
|
|
|
|
# Enable and start the DCV server
|
|
#
|
|
systemctl enable dcvserver
|
|
systemctl start dcvserver
|
|
|
|
# Output the DCV installation diagnostics
|
|
#
|
|
dcvgldiag
|
|
|
|
# Start a DCV session to login
|
|
#
|
|
IP_ADDR=$(curl http://checkip.amazonaws.com)
|
|
echo Starting DCV desktop session for $LOGNAME. Session can be accessed at https://$IP_ADDR:8443
|
|
dcv create-session --type=console --owner $LOGNAME desktop
|