30 lines
2.2 KiB
Markdown
30 lines
2.2 KiB
Markdown
# Azure Traffic Manager with virtual machines
|
|
|
|
This Terraform template was based on [this](https://github.com/Azure/azure-quickstart-templates/tree/master/201-traffic-manager-vm) Azure Quickstart Template. Changes to the ARM template that may have occurred since the creation of this example may not be reflected here.
|
|
|
|
This template shows how to create an Azure Traffic Manager profile to load-balance across a couple of Azure virtual machines. Each endpoint has an equal weight but different weights can be specified to distribute load non-uniformly.
|
|
|
|
See also:
|
|
|
|
- <a href="https://azure.microsoft.com/en-us/documentation/articles/traffic-manager-routing-methods/">Traffic Manager routing methods</a> for details of the different routing methods available.
|
|
- <a href="https://msdn.microsoft.com/en-us/library/azure/mt163581.aspx">Create or update a Traffic Manager profile</a> for details of the JSON elements relating to a Traffic Manager profile.
|
|
|
|
## main.tf
|
|
The `main.tf` file contains the actual resources that will be deployed. It also contains the Azure Resource Group definition and any defined variables.
|
|
|
|
## outputs.tf
|
|
This data is outputted when `terraform apply` is called, and can be queried using the `terraform output` command.
|
|
|
|
## provider.tf
|
|
Azure requires that an application is added to Azure Active Directory to generate the `client_id`, `client_secret`, and `tenant_id` needed by Terraform (`subscription_id` can be recovered from your Azure account details). Please go [here](https://www.terraform.io/docs/providers/azurerm/) for full instructions on how to create this to populate your `provider.tf` file.
|
|
|
|
## terraform.tfvars
|
|
If a `terraform.tfvars` file is present in the current directory, Terraform automatically loads it to populate variables. We don't recommend saving usernames and password to version control, but you can create a local secret variables file and use `-var-file` to load it.
|
|
|
|
If you are committing this template to source control, please insure that you add this file to your `.gitignore` file.
|
|
|
|
## variables.tf
|
|
The `variables.tf` file contains all of the input parameters that the user can specify when deploying this Terraform template.
|
|
|
|
![`terraform graph`](/examples/azure-traffic-manager-vm/graph.png)
|