Azure rendering solution deployment framework

This commit is contained in:
Rick Shahid 2022-12-11 03:04:06 -08:00
Родитель 61e62cc1e7
Коммит 5fb5aeccab
8 изменённых файлов: 62 добавлений и 45 удалений

Просмотреть файл

@ -7,7 +7,7 @@ variable "regionName" {
}
variable "renderManager" {
default = "Deadline" # RoyalRender (https://royalrender.de/) or Deadline
default = "Deadline" # RoyalRender or Deadline
}
variable "resourceGroupName" {

Просмотреть файл

@ -371,7 +371,7 @@ resource "azurerm_network_security_group" "network" {
dynamic security_rule {
for_each = each.value.name == "Workstation" ? [1] : []
content {
name = "AllowOutPCoIP[TCP]"
name = "AllowOutHTTP"
priority = 2000
direction = "Outbound"
access = "Allow"
@ -379,6 +379,20 @@ resource "azurerm_network_security_group" "network" {
source_address_prefix = "*"
source_port_range = "*"
destination_address_prefix = "Internet"
destination_port_range = "80"
}
}
dynamic security_rule {
for_each = each.value.name == "Workstation" ? [1] : []
content {
name = "AllowOutPCoIP[TCP]"
priority = 2100
direction = "Outbound"
access = "Allow"
protocol = "Tcp"
source_address_prefix = "*"
source_port_range = "*"
destination_address_prefix = "Internet"
destination_port_range = "443"
}
}
@ -386,7 +400,7 @@ resource "azurerm_network_security_group" "network" {
for_each = each.value.name == "Workstation" ? [1] : []
content {
name = "AllowOutPCoIP[UDP]"
priority = 2100
priority = 2200
direction = "Outbound"
access = "Allow"
protocol = "Udp"

Просмотреть файл

@ -65,7 +65,7 @@ imageTemplates = [
build = {
machineType = "Scheduler"
machineSize = "Standard_D8s_v5" # https://learn.microsoft.com/azure/virtual-machines/sizes
gpuPlatform = [] # GRID, CUDA and/or CUDA.OptiX
gpuPlatform = [] # GRID, AMD, CUDA and/or CUDA.OptiX
osDiskSizeGB = 0
timeoutMinutes = 120
outputVersion = "0.0.0"
@ -81,7 +81,7 @@ imageTemplates = [
build = {
machineType = "Farm"
machineSize = "Standard_HB120rs_v2" # https://learn.microsoft.com/azure/virtual-machines/sizes
gpuPlatform = [] # GRID, CUDA and/or CUDA.OptiX
gpuPlatform = [] # GRID, AMD, CUDA and/or CUDA.OptiX
osDiskSizeGB = 480
timeoutMinutes = 240
outputVersion = "1.0.0"
@ -100,7 +100,7 @@ imageTemplates = [
build = {
machineType = "Farm"
machineSize = "Standard_HB120rs_v2" # https://learn.microsoft.com/azure/virtual-machines/sizes
gpuPlatform = [] # GRID, CUDA and/or CUDA.OptiX
gpuPlatform = [] # GRID, AMD, CUDA and/or CUDA.OptiX
osDiskSizeGB = 480
timeoutMinutes = 240
outputVersion = "1.1.0"
@ -121,7 +121,7 @@ imageTemplates = [
build = {
machineType = "Workstation"
machineSize = "Standard_NV36ads_A10_v5" # https://learn.microsoft.com/azure/virtual-machines/sizes
gpuPlatform = ["GRID"] # GRID, CUDA and/or CUDA.OptiX
gpuPlatform = ["GRID"] # GRID, AMD, CUDA and/or CUDA.OptiX
osDiskSizeGB = 512
timeoutMinutes = 240
outputVersion = "2.0.0"
@ -140,7 +140,7 @@ imageTemplates = [
build = {
machineType = "Workstation"
machineSize = "Standard_NV36ads_A10_v5" # https://learn.microsoft.com/azure/virtual-machines/sizes
gpuPlatform = ["GRID"] # GRID, CUDA and/or CUDA.OptiX
gpuPlatform = ["GRID"] # GRID, AMD, CUDA and/or CUDA.OptiX
osDiskSizeGB = 512
timeoutMinutes = 240
outputVersion = "2.1.0"
@ -161,7 +161,7 @@ imageTemplates = [
build = {
machineType = "Scheduler"
machineSize = "Standard_D8s_v5" # https://learn.microsoft.com/azure/virtual-machines/sizes
gpuPlatform = [] # GRID, CUDA and/or CUDA.OptiX
gpuPlatform = [] # GRID, AMD, CUDA and/or CUDA.OptiX
osDiskSizeGB = 0
timeoutMinutes = 180
outputVersion = "0.0.0"
@ -177,7 +177,7 @@ imageTemplates = [
build = {
machineType = "Farm"
machineSize = "Standard_HB120rs_v2" # https://learn.microsoft.com/azure/virtual-machines/sizes
gpuPlatform = [] # GRID, CUDA and/or CUDA.OptiX
gpuPlatform = [] # GRID, AMD, CUDA and/or CUDA.OptiX
osDiskSizeGB = 480
timeoutMinutes = 420
outputVersion = "1.0.0"
@ -196,7 +196,7 @@ imageTemplates = [
build = {
machineType = "Farm"
machineSize = "Standard_HB120rs_v2" # https://learn.microsoft.com/azure/virtual-machines/sizes
gpuPlatform = [] # GRID, CUDA and/or CUDA.OptiX
gpuPlatform = [] # GRID, AMD, CUDA and/or CUDA.OptiX
osDiskSizeGB = 480
timeoutMinutes = 420
outputVersion = "1.1.0"
@ -217,7 +217,7 @@ imageTemplates = [
build = {
machineType = "Workstation"
machineSize = "Standard_NV36ads_A10_v5" # https://learn.microsoft.com/azure/virtual-machines/sizes
gpuPlatform = ["GRID"] # GRID, CUDA and/or CUDA.OptiX
gpuPlatform = ["GRID"] # GRID, AMD, CUDA and/or CUDA.OptiX
osDiskSizeGB = 512
timeoutMinutes = 420
outputVersion = "2.0.0"
@ -236,7 +236,7 @@ imageTemplates = [
build = {
machineType = "Workstation"
machineSize = "Standard_NV36ads_A10_v5" # https://learn.microsoft.com/azure/virtual-machines/sizes
gpuPlatform = ["GRID"] # GRID, CUDA and/or CUDA.OptiX
gpuPlatform = ["GRID"] # GRID, AMD, CUDA and/or CUDA.OptiX
osDiskSizeGB = 512
timeoutMinutes = 420
outputVersion = "2.1.0"

Просмотреть файл

@ -59,8 +59,15 @@ if ($gpuPlatform -contains "GRID") {
$installFile = "nvidia-gpu-grid.exe"
$downloadUrl = "https://go.microsoft.com/fwlink/?linkid=874181"
(New-Object System.Net.WebClient).DownloadFile($downloadUrl, (Join-Path -Path $pwd.Path -ChildPath $installFile))
Start-Process -FilePath .\$installFile -ArgumentList "-s -n" -Wait -RedirectStandardOutput "nvidia-grid.output.txt" -RedirectStandardError "nvidia-grid.error.txt"
Start-Process -FilePath .\$installFile -ArgumentList "-s -n" -Wait -RedirectStandardOutput "nvidia-gpu-grid.output.txt" -RedirectStandardError "nvidia-gpu-grid.error.txt"
Write-Host "Customize (End): NVIDIA GPU (GRID)"
} else if ($gpuPlatform -contains "AMD") {
Write-Host "Customize (Start): AMD GPU"
$installFile = "amd-gpu.exe"
$downloadUrl = "https://go.microsoft.com/fwlink/?linkid=2175154"
(New-Object System.Net.WebClient).DownloadFile($downloadUrl, (Join-Path -Path $pwd.Path -ChildPath $installFile))
# Start-Process -FilePath .\$installFile -ArgumentList "/quiet /norestart" -Wait -RedirectStandardOutput "amd-gpu.output.txt" -RedirectStandardError "amd-gpu.error.txt"
Write-Host "Customize (End): AMD GPU"
}
if ($gpuPlatform -contains "CUDA" -or $gpuPlatform -contains "CUDA.OptiX") {
@ -114,6 +121,8 @@ if ($machineType -eq "Scheduler") {
switch ($renderManager) {
"RoyalRender" {
$schedulerVersion = "8.4.03"
$schedulerRootDirectory = "C:\RoyalRender"
$schedulerClientBinPath = "$schedulerRootDirectory\bin\win64"
}
"Deadline" {
$schedulerVersion = "10.2.0.9"
@ -153,27 +162,23 @@ switch ($renderManager) {
Write-Host "Customize (End): Royal Render Download"
Write-Host "Customize (Start): Royal Render Installer"
$rootDirectory = "RoyalRender"
$logFileName = "royal-render"
$installFile = "rrSetup_win.exe"
$installDirectory = "RoyalRender__${schedulerVersion}__installer"
New-Item -ItemType Directory -Path $rootDirectory
Start-Process -FilePath .\$installDirectory\$installDirectory\$installFile -ArgumentList "-console -rrRoot $rootDirectory" -Wait -RedirectStandardOutput "$rootDirectory.output.txt" -RedirectStandardError "$rootDirectory.error.txt"
New-Item -ItemType Directory -Path $schedulerRootDirectory
Start-Process -FilePath .\$installDirectory\$installDirectory\$installFile -ArgumentList "-console -rrRoot $schedulerRootDirectory" -Wait -RedirectStandardOutput "$logFileName.output.txt" -RedirectStandardError "$logFileName.error.txt"
Write-Host "Customize (End): Royal Render Installer"
Set-Location -Path $rootDirectory
[System.Environment]::SetEnvironmentVariable("RR_ROOT", $pwd.Path)
$installFile = "win__rrWorkstation_installer.bat"
if ($machineType -eq "Scheduler") {
Write-Host "Customize (Start): Royal Render Server"
# $installFile = "win__rrServerconsole.bat"
# Start-Process -FilePath .\$installFile -Wait -RedirectStandardOutput "rr-server.output.txt" -RedirectStandardError "rr-server.error.txt"
Start-Process -FilePath $schedulerRootDirectory\$installFile -ArgumentList "-serviceServer" -Wait -RedirectStandardOutput "$logFileName-server.output.txt" -RedirectStandardError "$logFileName-server.error.txt"
Write-Host "Customize (End): Royal Render Server"
}
Write-Host "Customize (Start): Royal Render Client"
Start-Process -FilePath $schedulerRootDirectory\$installFile -ArgumentList "-service" -Wait -RedirectStandardOutput "$logFileName-client.output.txt" -RedirectStandardError "$logFileName-client.error.txt"
Write-Host "Customize (End): Royal Render Client"
Set-Location -Path $binDirectory
}
"Deadline" {
Write-Host "Customize (Start): Deadline Download"

Просмотреть файл

@ -49,7 +49,7 @@ if [[ $gpuPlatform == *GRID* ]]; then
downloadUrl="https://go.microsoft.com/fwlink/?linkid=874272"
curl -o $installFile -L $downloadUrl
chmod +x $installFile
./$installFile --silent --dkms 1> "nvidia-grid.output.txt" 2> "nvidia-grid.error.txt"
./$installFile --silent --dkms 1> "nvidia-gpu-grid.output.txt" 2> "nvidia-gpu-grid.error.txt"
echo "Customize (End): NVIDIA GPU (GRID)"
fi
@ -149,6 +149,8 @@ fi
case $renderManager in
"RoyalRender")
schedulerVersion="8.4.03"
schedulerRootDirectory="/RoyalRender"
schedulerClientBinPath="$schedulerRootDirectory/bin/lx64"
;;
"Deadline")
schedulerVersion="10.2.0.9"
@ -190,28 +192,24 @@ case $renderManager in
yum -y install fontconfig
yum -y install libXrender
yum -y install libXext
rootDirectory="RoyalRender"
logFileName="royal-render"
installFile="rrSetup_linux"
installDirectory="RoyalRender__${schedulerVersion}__installer"
chmod +x ./$installDirectory/$installFile
mkdir $rootDirectory
./$installDirectory/$installFile -console -rrRoot $rootDirectory 1> "$rootDirectory.output.txt" 2> "$rootDirectory.error.txt"
mkdir $schedulerRootDirectory
./$installDirectory/$installFile -console -rrRoot $schedulerRootDirectory 1> "$logFileName.output.txt" 2> "$logFileName.error.txt"
echo "Customize (End): Royal Render Installer"
cd $rootDirectory
export RR_ROOT=$(pwd)
installFile="lx__rrWorkstation_installer.sh"
if [ $machineType == "Scheduler" ]; then
echo "Customize (Start): Royal Render Server"
# installFile="lx__rrServerconsole.sh"
# ./$installFile 1> "rr-server.output.txt" 2> "rr-server.error.txt"
$schedulerRootDirectory/$installFile -serviceServer 1> "$logFileName-server.output.txt" 2> "$logFileName-server.error.txt"
echo "Customize (End): Royal Render Server"
fi
echo "Customize (Start): Royal Render Client"
$schedulerRootDirectory/$installFile -service 1> "$logFileName-client.output.txt" 2> "$logFileName-client.error.txt"
echo "Customize (End): Royal Render Client"
cd $binDirectory
;;
"Deadline")
echo "Customize (Start): Deadline Download"

Просмотреть файл

@ -7,7 +7,7 @@ resourceGroupName = "ArtistAnywhere.Scheduler"
virtualMachines = [
{
name = "LnxScheduler"
imageId = "/subscriptions/5cc0d8f1-3643-410c-8646-1a2961134bd3/resourceGroups/ArtistAnywhere.Image/providers/Microsoft.Compute/galleries/Gallery/images/Linux/versions/0.0.0"
imageId = "/subscriptions/5cc0d8f1-3643-410c-8646-1a2961134bd3/resourceGroups/ArtistAnywhere.Image/providers/Microsoft.Compute/galleries/azrender/images/Linux/versions/0.0.0"
machineSize = "Standard_D8s_v5" # https://learn.microsoft.com/azure/virtual-machines/sizes
operatingSystem = {
type = "Linux"
@ -56,7 +56,7 @@ virtualMachines = [
},
{
name = "" # "WinScheduler"
imageId = "/subscriptions/5cc0d8f1-3643-410c-8646-1a2961134bd3/resourceGroups/ArtistAnywhere.Image/providers/Microsoft.Compute/galleries/Gallery/images/WinScheduler/versions/0.0.0"
imageId = "/subscriptions/5cc0d8f1-3643-410c-8646-1a2961134bd3/resourceGroups/ArtistAnywhere.Image/providers/Microsoft.Compute/galleries/azrender/images/WinScheduler/versions/0.0.0"
machineSize = "Standard_D8s_v5" # https://learn.microsoft.com/azure/virtual-machines/sizes
operatingSystem = {
type = "Windows"

Просмотреть файл

@ -7,10 +7,10 @@ resourceGroupName = "ArtistAnywhere.Farm"
virtualMachineScaleSets = [
{
name = "LnxFarm"
imageId = "/subscriptions/5cc0d8f1-3643-410c-8646-1a2961134bd3/resourceGroups/ArtistAnywhere.Image/providers/Microsoft.Compute/galleries/Gallery/images/Linux/versions/1.0.0"
imageId = "/subscriptions/5cc0d8f1-3643-410c-8646-1a2961134bd3/resourceGroups/ArtistAnywhere.Image/providers/Microsoft.Compute/galleries/azrender/images/Linux/versions/1.0.0"
machine = {
size = "Standard_HB120rs_v2"
count = 10
count = 2
}
operatingSystem = {
type = "Linux"
@ -64,10 +64,10 @@ virtualMachineScaleSets = [
},
{
name = "" # "WinFarm"
imageId = "/subscriptions/5cc0d8f1-3643-410c-8646-1a2961134bd3/resourceGroups/ArtistAnywhere.Image/providers/Microsoft.Compute/galleries/Gallery/images/WinFarm/versions/1.0.0"
imageId = "/subscriptions/5cc0d8f1-3643-410c-8646-1a2961134bd3/resourceGroups/ArtistAnywhere.Image/providers/Microsoft.Compute/galleries/azrender/images/WinFarm/versions/1.0.0"
machine = {
size = "Standard_HB120rs_v2"
count = 10
count = 2
}
operatingSystem = {
type = "Windows"
@ -138,7 +138,7 @@ kubernetes = {
name = "default"
machine = {
size = "Standard_HB120rs_v2"
count = 3
count = 2
}
}
},
@ -149,7 +149,7 @@ kubernetes = {
name = "default"
machine = {
size = "Standard_HB120rs_v2"
count = 3
count = 2
}
}
}

Просмотреть файл

@ -7,7 +7,7 @@ resourceGroupName = "ArtistAnywhere.Workstation"
virtualMachines = [
{
name = "LnxArtist"
imageId = "/subscriptions/5cc0d8f1-3643-410c-8646-1a2961134bd3/resourceGroups/ArtistAnywhere.Image/providers/Microsoft.Compute/galleries/Gallery/images/Linux/versions/2.0.0"
imageId = "/subscriptions/5cc0d8f1-3643-410c-8646-1a2961134bd3/resourceGroups/ArtistAnywhere.Image/providers/Microsoft.Compute/galleries/azrender/images/Linux/versions/2.0.0"
machineSize = "Standard_NV36ads_A10_v5" # https://learn.microsoft.com/azure/virtual-machines/sizes
operatingSystem = {
type = "Linux"
@ -45,7 +45,7 @@ virtualMachines = [
},
{
name = "WinArtist"
imageId = "/subscriptions/5cc0d8f1-3643-410c-8646-1a2961134bd3/resourceGroups/ArtistAnywhere.Image/providers/Microsoft.Compute/galleries/Gallery/images/WinArtist/versions/2.0.0"
imageId = "/subscriptions/5cc0d8f1-3643-410c-8646-1a2961134bd3/resourceGroups/ArtistAnywhere.Image/providers/Microsoft.Compute/galleries/azrender/images/WinArtist/versions/2.0.0"
machineSize = "Standard_NV36ads_A10_v5" # https://learn.microsoft.com/azure/virtual-machines/sizes
operatingSystem = {
type = "Windows"