Overview
This chapter describes how to connect your Schoolyear Exams to internal services like License Servers that students may require during the exam. If you wanted to do an exam that required an application with a License Server and you didn’t know how, this guide is for you.
The general solution is that you will provide a working Azure Private Link Service and then
the deployment template will create an Azure Private Endpoint inside the services
subnet that will allow sessionhosts to connect to it and pass traffic to said service. The deployment template will also create a Private DNS Zone with a specific subdomain to simplify using the Private Endpoint inside the exam. All of this can be configured in the Image Building step.
If you already have a working Azure Private Link Service you can skip ahead to setting up the Private Endpoint connection.
The rest of this guide will assume you already have a Virtual Network and at least one VM running with your internal service installed in a subscription of your Tenant. Setting this up is dependant on your infrastructure and not a part of this guide. We will only go through the steps necessary to expose that service for the Private Endpoint to connect to it.
Your internal service Virtual Network can be in an entirely different region and subscription from the one that Schoolyear Exams will be taking place in. Using Private Endpoints allows us to not have to worry about this.
Overview of the process
Exposing your Service (License Server) from Azure:
- Create a Virtual Network in your tenant if you haven’t already where your License Server will live. (Out of scope for this guide)
- Create a Virtual Machine in that VNet. (Out of scope for this guide)
- Install the License Server on that VM. (Out of scope for this guide)
- Create a Load Balancer and connect that VM to it.
- Create a Private Link Service that connects to your Load Balancer and exposes your service.
Configuring Schoolyear Exams to use that Service:
- Update
avdcli
to latest version. - Update
deployment template
to latest version. - Create new layer for new image.
- Specify the
internalServices
in ourproperties.json5
file. - Configure application build steps to use the License Server.
- Deploy package and resolve variables specified in
internalServices
. - Deploy a new exam with your application.