Skip to content

Image building with internal services

Let’s assume we want to build an SPSS image.

In order for SPSS to work, we need to specify a License server for it to connect to. Assuming you successfully followed the previous steps and have a working Private Link Service up and running we will now begin to build the new image and configure the deployment template to make this work.

We also assume you’ve already gone through the image building process at least once so you’re familiar with the general concept of AVD Image Building.

Let’s start by creating a new layer:

Terminal window
avdcli image new -n spss -o ./images/spss

Then in our properties.json5 file we will add the following:

{
internalServices: {
"spss": "[[[param:spssInternalServiceId]]]",
}
}

internalServices is a special key used in the properties.json5 file that you can use to pass a map of key: value parameters that you will later be asked to resolve during the package deployment process with the Private Link Service ID of your internal service.

The deployment template will make sure that each specified key defined in internalServices will get a Private Endpoint deployed in the exam’s resource group and also a custom DNS entry pointing to the Private Endpoint (you can customize this from the deployment template) with the subdomain beeing the key specified in internalServices

We will go into more details in the next step of this process, but assuming we’ve configured the internalServicesPrivateDNSZoneName parameter in the deployment template with customerinternalservices.syavd.local and you have the above properties file, after the deployment you will end up with a FQDN spss.customerinternalservices.syavd.local which you can use to connect to your license server from the sessionhosts.

You can then use that FQDN during the installation of SPSS to specify where to find the license server:

Terminal window
try {
Write-Host "Installing IBM Spss... (LicenseServerHost: $LicenseServerHost)"
Start-Process -FilePath msiexec.exe -ArgumentList "/i $downloadedInstallerPath /qn LSHOST=spss.customerinternalservices.syavd.local" -Wait -NoNewWindow
Write-Host "Successfully installed spss"
} catch {
Write-Error "Failed to install spss: $_"
}

This will configure SPSS to look for a license server on spss.customerinternalservices.syavd.local when starting up.

Different programs will of course have different ways to specify this, however this gives you an idea on how you can setup a connection like this in your own image.

Finally you can go ahead and configure the deployment template in the last step.