Every resource can also be deployed and managed with the Azure PowerShell cmdlets, for the different resource types. While resource group templates have many advantages and should be used when possible, they are hard to create from scratch without an editor that can insert new resources in a wizard-like fashion, such as VSCode or Visual Studio.
So, for a script-based workflow, building your workloads from scratch is likely the easier solution. However, it requires you to check for the existence of each of your resources before creating them, whereas an incremental template deployment simply adds the new resources.
In order to deploy a simple virtual machine, you need many components—a resource group, a storage account for your disks, a network adapter, a public IP address, and lastly, the virtual machine. Review the following code sample...