This is a repo that contains all the currently available Azure Resource Manager templates contributed by the community. We'll soon allow a way for these templates to be indexed on Azure.com and be discoverable from there.
To make sure your template is added to Azure.com index, please follow these guidelines. Any templates that are out of compliance will be added to the blacklist.json file and not be indexed on Azure.com
- Every template must be contained in its own folder. Name this folder something that describes what your template does
- The template file must be named azuredeploy.json
- The template folder must host the scripts that are needed for successful template execution
- The template folder must contain a metadata.json file to allow the template to be indexed on Azure.com
- Guidelines on the metadata file below
- Every parameter in the template must have the description specified using the metadata property. See the starter template is provided here on how to do this
- OPTIONAL: The folder may contain a Readme.md file for any additional information about the template
Here are the required parameters for a valid metadata.json file
####Update 4/9#### To be more consistent with the Visual Studio and Gallery experience we're updating the metadata.json file structure. The new structure looks like below
{
"itemDisplayName": "",
"description": "",
"summary": "",
"githubUsername": "",
"dateUpdated": "<e.g. 2015-12-20>"
}
The metadata.json file will be validated using these rules
itemDisplayName
- Cannot be more than 60 characters
description
- Cannot be more than 1000 characters
- Cannot contain HTML
summary
- Cannot be more than 200 characters
githubUsername
- Username must be the same as the username of the author submitting the Pull Request
dateUpdated
- Must be in yyyy-mm-dd format.
- The date must not be in the future to the date of the pull request
A starter template is provided here for you to follow
These are simple example templates with single actions for common requirements.
Type | # | Deploy to Azure | Author | Template Name | Description |
---|---|---|---|---|---|
101 | 1 | mahthi | Deploy an Availability Set | This template allows you to create an Availability Set in your subscription. | |
101 | 2 | mahthi | Deploy a Load Balancer with an Inbound NAT Rule | This template allows you to create a load balancer with NAT rule in your subscription. | |
101 | 3 | mahthi | Deploy a Virtual Network | This template allows you to deploy a Virtual Network. | |
101 | 4 | mahthi | Deploy a Simple Virtual Machine from an Image | This template allows you to deploy a Simple Virtual Machines from an Image. | |
101 | 5 | mahthi | Create a Network Interface in a Virtual Network and associate it with a Public IP | This template creates a simple Network Interface in a Virtual Network and attaches a Public IP Address to it. | |
101 | 6 | mahthi | Deploy a Virtual Machine with Custom Data | This template allows you to deploy a Virtual Machines by passing Custom Data to the VM. | |
101 | 7 | singhkay | [101] Create a key Vault | This template creates a Key Vault | |
101 | 8 | kenazk | Windows VM with Empty Data Disk | This template creates a Windows VM with a new empty data disk. | |
101 | 9 | mahthi | Deploy a Virtual Machine from a User Image | This template allows you to create a Virtual Machines from a User image. Prerequisite - The Storage Account with the User Image VHD should already exist in the same resource group. | |
101 | 10 | manavis | Assign RBAC BuiltInRoles to an Existing Resource Group | This template assigns Owner, Reader or Contributor access to an existing resource group. | |
101 | 11 | mahthi | Create Linux Virtual Machine and configure SSH Key | This template creates a Linux Virtual Machine and configures SSH Keys. Note: This template will be slightly modified in the coming weeks to allow SSH Keys to be passed in the standard PEM format | |
101 | 12 | kenazk | Create an Availability Set with 3 FDs configured | This template snippet creates an Availability Set with 3 FDs | |
101 | 13 | singhkay | Create a network Security Group | This template creates a Network Security Group | |
101 | 14 | kenazk | Create a VM from a Windows Image with 4 Empty Data Disks | Create a VM from a Windows Image with 4 Empty Data Disks | |
101 | 15 | kenazk | Linux VM with Empty Data Disk | This template creates a Linux VM with a new empty data disk. | |
101 | 16 | ggalow | Create a public IP with DNS Name | Create a public IP with DNS Name | |
101 | 17 | ManaviS | RBAC - Grant Built In Role Access for an existing VM in a Resource Group | RBAC - Grant Built In Role Access for an existing VM in a Resource Group |
These are more complex example templates with single actions for more advanced requirements.
Type | # | Deploy to Azure | Author | Template Name | Description |
---|---|---|---|---|---|
201 | 1 | singhkay | Discover a VMs Private IP Dynamically | This templates discovers a private ip of another VM dynamically | |
201 | 2 | mahthi | Deploy 2 Windows VMs under Availability Set with NAT Rules through Load balancer | This template allows you to create 2 Windows Virtual Machines in an Availability Set and configure NAT rules through a load balancer. We also use the resource loops capability to create the network interfaces and virtual machines | |
201 | 3 | ypitsch | Deploy 2 Windows VMs under a load balancer and configure a LB rule | This template allows you to create 2 Windows Virtual Machines in an under a Load Balancer, configure LB rules for load balancing and NAT rules for RDP Access to each VM. We also use the resource loops capability to create the network interfaces and virtual machines. | |
201 | 4 | singhkay | Create a VM referencing a VNET in a different Resource Group | This template creates a VM in a VNET which is in a different Resource Group. You'll need to have the VNET created before running this template and pass the VNET name and its resource group name as input to this parameter. | |
201 | 5 | singhkay | Create a VM and install a certificate referenced from an Azure Key Vault | This template creates a VM and installs a certificate from the Azure Keyvault on the Virtual Machine. The template expects the Keyvault Name and the certificate URL of the certificate in KeyVault. | |
201 | 6 | mahthi | Execute Dependent script extensions to Configure and Install Mongo DB on a Ubuntu Virtual Machine | This template deploys Configures and Installs Mongo DB on a Ubuntu Virtual Machine in two separate scripts. This template is a sample that showcases how to express dependencies between two scripts running on the same virtual machine. | |
201 | 7 | singhkay | Create 2 VMs in a Availability Set with 2 FDs without resource loops | This template allows you to create 2 VMs in an Availabiltiy Set with 2 Fault Domains without resource loops | |
201 | 8 | singhkay | Create a VM from a specialized VHD disk | This template creates a VM from a specialized VHD | |
201 | 9 | narayan | Create a virtual Network with DMZ Subnet | Virtual Network with DMZ Subnet | |
201 | 10 | ypitsch | 2 VMs in a VNET with an Internal Load Balancer and Load Balancer rules | 2 VMs in a VNET with an Internal Load Balancer and Load Balancer rules | |
201 | 11 | MJZawacki | Generate VM Instances and pass all input parameters via custom data | Generate VM Instances and pass all input parameters via custom data | |
201 | 12 | ManaviS | RBAC - Grant Built In Role Access for multiple existing VMs in a Resource Group | RBAC - Grant Built In Role Access for multiple existing VMs in a Resource Group |
You can deploy the template to Azure by clicking the "Deploy to Azure" button below next to each template.
Type | # | Deploy to Azure | Author | Template Name | Description |
---|---|---|---|---|---|
APP | 1 | singhkay | VM DSC Extension IIS Server | This template allows you to deploy a VM with with a DSC extension that sets up an IIS server | |
DEV | 2 | coreysa | Deploy from DockerHub | This template allows you to deploy a Docker container from DockerHub using Compose. | |
DEV | 3 | coreysa | Deploy Ubuntu Azure Dev VM | This template deploys an Ubuntu VM with the Azure Dev tools installed, which includes node. This executes a bash script pulled from GitHub. | |
DEV | 4 | coreysa | Deploy from DockerHub (Simple Template) | This template allows you to deploy a Docker container from DockerHub using Compose with a very small amount of parameters (simple). | |
DEV | 5 | drewm3 | Chocolatey VM | This template allows you to create a VM with an application from Chocolatey.org installed. | |
DEV | 6 | singhkay | VM with Chef extension | This template allows you to deploy a windows VM with Chef extension and run any recipe | |
201 | 7 | coreysa | Deploy an Ubuntu VM with an additional sudo user | The purpose of this script is to show how to execute a custom script with parameters passed throguh the template that will create an additional user with sudo access. The value of the sample is to show how to pass template parameter based input into a bash Linux script. | |
APP | 8 | paigeliu | Deploy a Percona XtraDB Cluster on CentOS or Ubuntu | This template deploys a 3-node high availability MySQL Percona XtraDB Cluster 5.6 on CentOS 6.5 or Ubuntu 12.04 LTS. | |
DEV | 9 | gbowerman | Deploy LAMP app on Ubuntu | This template uses the Azure Linux CustomScript extension to deploy a LAMP application by creating an Ubuntu VM, doing a silent install of MySQL, Apache and PHP, then creating a simple PHP script. | |
DEV | 10 | snallami | VM-Ubuntu - Tomcat and Open JDK installation | This template allows you to create a Ubuntu VM with OpenJDK and Tomcat. | |
201 | 11 | mahthi | Deploy 'N' Virtual Machines in a Single Click | This template allows you to deploy 'n' virtual machines in a Single Click. | |
DEV | 12 | mahthi | Install Mongo DB on CentOS Virtual Machine | This template deploys Mongo DB on CentOS Virtual Machine. | |
DEV | 13 | mahthi | Install Mongo DB on Ubuntu Virtual Machine | This template deploys Mongo DB on Ubuntu Virtual Machine. | |
DEV | 14 | singhkay | Create a Zookeeper cluster | This template deploys a 3-node Zookeeper cluster on Ubuntu Virtual Machines. | |
DEV | 15 | gbowerman | Deploy an Apache webserver on Ubuntu | This template uses the Azure Linux CustomScript extension to deploy an Apache web server. The deployment template creates an Ubuntu VM, installs Apache2 and creates a demo HTML file. | |
DEV | 16 | kundanap | Bootstrap a Ubuntu VM with Chef Agent | This templates provisions a Ubuntu VM and bootstraps Chef Client on it. | |
201 | 17 | mahthi | Deploy Virtual Machines across 5 regions using Template Linking | This template showcases the 'Template Linking' capability in Azure Resource Manager. This template deploys 'n' Virtual Machines across 5 regions in parallel. | |
101 | 18 | singhkay | Windows VM with custom script extension | This template creates a VM and runs a PowerShell script using the custom script extension. | |
101 | 19 | kenazk | Windows VM with Azure Diagnostics Extension | This template creates a VM and deploys the Azure Diagnostics Agent to emit performance metrics from within the VM to a Table in the Storage Account specified. | |
DEV | 20 | kundanap | Bootstrap a Ubuntu VM with Chef Agent with Json paramters | This templates provisions a Ubuntu VM and bootstraps Chef Client on it by taking only json parameters. | |
DEV | 21 | tomconte | Deploy a single-VM WordPress to Azure | This template deploys a complete LAMP stack, then installs and initializes WordPress.Once the deployment is finished, you need to go to http://fqdn.of.your.vm/wordpress/ to finish the configuration, create an account, and get started with WordPress. | |
APP | 22 | simongdavies | This template creates an Azure VM with AD | This template creates a new Azure VM, with a public IP address, load balancer and VNet, it configures the VM to be an AD DC for a new Forest. | |
DEV | 23 | coreysa | Deploy Docker Containers on Virtual Machines across 5 regions using Loops & Template Linking | This template allows you to create 'N' number of Virtual Machines based on the 'numberOfInstances' parameter specified during the template deployment and deploys 2 docker containers [nginx & redis] on each VM. | |
201 | 24 | mahthi | Deploy 'n' Virtual Machines from a user image using Resource Loops | This template allows you to create 'N' number of Virtual Machines from a User image based on the 'numberOfInstances' parameter specified during the template deployment. | |
201 | 25 | mahthi | Deploy 'n' Virtual Machines from a user image across 3 storage accounts in the same region | This template allows you to create VMs from User image across 3 Storage accounts in the same region. You can also chose to specify the number of Virtual Machines that you want to spin up per storage accounts where the user image is placed [Recommended number is 40]. There are some critical pre-requisties for this template, please refer to the readme in the template folder for additional details. | |
DEV | 26 | arsenvlad | Deploy 'n' Ubuntu VMs with memcached service and one Apache test VM | This template allows you to create multiple (based on the 'numberOfMemcachedInstances' parameter) Ubuntu 14.04 VMs in a private-only subnet and installs and configures memcached service on each VM. It also creates one publicly accessible Apache VM with a PHP test page to confirm that memcached is installed and accessible. | |
DEV | 27 | thecaterminator | Deploy a Redis cluster with configurable number of nodes | This template deploys a Redis cluster on the Ubuntu virtual machines. The deployment topology is comprised of a customizable number of nodes joined into a cluster. The cluster is pre-configured with persistence and other optimizations as per best practices. | |
DEV | 28 | trentmswanson | Install Elasticsearch cluster on Ubuntu Virtual Machines using Custom Script Linux Extension | This template deploys an Elasticsearch cluster on Ubuntu Virtual Machines. The template provisions 3 dedicated master nodes in one availability set, and a configurable number of data nodes in another availability set. A load balancer is configured with a rule to route traffic on port 9200 to the client/data nodes, and also includes SSH nat rules for management. Elasticsearch data nodes are configured to store indexes using multiple data disks attached to each virtual machine. | |
DEV | 29 | anweiss | Deploy an Ubuntu VM with Drone CI. | This template provisions an Ubuntu Linux VM on Azure and bootstraps it with the latest release of the Drone continuous integration toolset. | |
APP | 30 | justintian | Create HPC Cluster on Azure | This template provisions an HPC Pack Cluster on Azure | |
201 | 31 | kenazk | Create 5 VMs in an Availability Set with 3 FDs | This template provisions 5 VMs in an Availability Set with 3 FDs | |
101 | 32 | singhkay | Windows VM with Anti-Malware extension | This template creates a Windows VM with Anti-Malware extension | |
APP | 33 | arsenvlad | Create PostgreSQL on Ubuntu with one master and 'N' replicas | This template allows you to create one master PostgreSQL 9.3 server with streaming-replication to multiple (based on the 'numberOfSlaveInstances' parameter) slave servers in a private-only subnet. Each database server is configured with 2 data disks that are striped into RAID-0 configuration using mdadm. The template also creates one publicly accessible VM to serve as a jumpbox for ssh into the backend database servers. | |
101 | 34 | singhkay | Create Storage Account | This template creates a Storage Account | |
APP | 35 | hausdorff | Spin up a Mesosphere cluster with 3 master nodes | Template spins up and configures a fully-functional mesosphere cluster. | |
APP | 36 | hausdorff | Spin up a Mesosphere cluster with a single master node | Spin up a Mesosphere cluster with a single master node | |
201 | 37 | trentmswanson | Create Ubuntu vm data disk raid0 | Create Ubuntu vm data disk raid0 | |
101 | 38 | sung-msft | Create a Windows VM with Symantec Endpoint Protection extension enabled | Create a Windows VM with Symantec Endpoint Protection extension enabled | |
APP | 39 | johndehavilland | Create an ElasticSearch cluster on Windows | Create an ElasticSearch cluster on Windows | |
APP | 40 | ojdude | Create SQL Server AlwaysOn Cluster | Create SQL Server AlwaysOn Cluster | |
201 | 41 | jvallery | Create a VM from 32 Data Disks configured for high IOPS | Create a VM from 32 Data Disks configured for high IOPS | |
DEV | 42 | madhana | Deploy a Django app | Deploy a Django app | |
APP | 43 | nmackenzie | Deploy a CoreOS cluster hosting Fleet | Deploy a CoreOS cluster hosting Fleet | |
DEV | 44 | paigeliu | Deploy a Gluster file system on CentOS | Deploy a N node gluster file system with a replication factor of 2. Each node has 2 disks stripped | |
DEV | 45 | kundanap | Deploy a Windows VM with Puppet Agent | Deploy a windows VM with Puppet Agent |