- Website: https://www.terraform.io
- Mailing list: Google Groups
- Slack workspace: Terraform on Azure (Request Invite)
For GNU32 Make, make sure its bin path is added to PATH environment variable.*
For Git Bash for Windows, at the step of "Adjusting your PATH environment", please choose "Use Git and optional Unix tools from Windows Command Prompt".*
Clone repository to: $GOPATH/src/github.com/terraform-providers/terraform-provider-azurerm
$ mkdir -p $GOPATH/src/github.com/terraform-providers; cd $GOPATH/src/github.com/terraform-providers
$ git clone git@github.com:terraform-providers/terraform-provider-azurerm
Enter the provider directory and build the provider
$ cd $GOPATH/src/github.com/terraform-providers/terraform-provider-azurerm
$ make build
# Configure the Microsoft Azure Provider
provider "azurerm" {
# More information on the authentication methods supported by
# the AzureRM Provider can be found here:
# http://terraform.io/docs/providers/azurerm/index.html
# subscription_id = "..."
# client_id = "..."
# client_secret = "..."
# tenant_id = "..."
}
# Create a resource group
resource "azurerm_resource_group" "example" {
name = "production-resources"
location = "West US"
}
# Create a virtual network in the production-resources resource group
resource "azurerm_virtual_network" "test" {
name = "production-network"
resource_group_name = "${azurerm_resource_group.example.name}"
location = "${azurerm_resource_group.example.location}"
address_space = ["10.0.0.0/16"]
}
Further usage documentation is available on the Terraform website.
If you wish to work on the provider, you'll first need Go installed on your machine (version 1.11+ is required). You'll also need to correctly setup a GOPATH, as well as adding $GOPATH/bin
to your $PATH
.
To compile the provider, run make build
. This will build the provider and put the provider binary in the $GOPATH/bin
directory.
$ make build
...
$ $GOPATH/bin/terraform-provider-azurerm
...
In order to run the unit tests for the provider, you can run:
$ make test
The majority of tests in the provider are Acceptance Tests - which provisions real resources in Azure. It's possible to run the entire acceptance test suite by running make testacc
- however it's likely you'll want to run a subset, which you can do using a prefix, by running:
make testacc TESTARGS='-run=TestAccAzureRMResourceGroup'
The following Environment Variables must be set in your shell prior to running acceptance tests:
ARM_CLIENT_ID
ARM_CLIENT_SECRET
ARM_SUBSCRIPTION_ID
ARM_TENANT_ID
ARM_ENVIRONMENT
ARM_TEST_LOCATION
ARM_TEST_LOCATION_ALT
Note: Acceptance tests create real resources in Azure which often cost money to run.