There are two basic ways to provision a virtual machine. You may use the Marketplace at Azure Stack portal. If you go to Marketplace
| Virtual Machines
—you are able to offer your end user pre-defined virtual machines that are based on a (sysprepped) VHD with OS like Microsoft Windows Server 2012 R2 or Linux Ubuntu Server. You define which resources are available and/or required—like NIC for a virtual machine or in case of a multi-service application the required configuration settings. The end user has to use the gallery item as it is.
The alternative is to create Azure Resource templates and deploy them using PowerShell or CLI. This approach allows for automation of deployment and offers greater flexibility in (combining) resources offered.
An overview of the steps required to create and deploy an image of your choice using those different approaches are as follows: