NOTE: The Azure Service Management Provider has been superseded by the Azure Resource Manager Provider and is no longer being actively developed by HashiCorp employees. It continues to be supported by the community. We recommend using the Azure Resource Manager based Microsoft Azure Provider if possible.
azure_instance
Creates a hosted service, role and deployment and then creates a virtual machine in the deployment based on the specified configuration.
Example Usage
resource "azure_hosted_service" "terraform-service" { name = "terraform-service" location = "North Europe" ephemeral_contents = false description = "Hosted service created by Terraform." label = "tf-hs-01" } resource "azure_instance" "web" { name = "terraform-test" hosted_service_name = "${azure_hosted_service.terraform-service.name}" image = "Ubuntu Server 14.04 LTS" size = "Basic_A1" storage_service_name = "yourstorage" location = "West US" username = "terraform" password = "Pass!admin123" domain_name = "contoso.com" domain_ou = "OU=Servers,DC=contoso.com,DC=Contoso,DC=com" domain_username = "Administrator" domain_password = "Pa$$word123" endpoint { name = "SSH" protocol = "tcp" public_port = 22 private_port = 22 } }
Argument Reference
The following arguments are supported:
-
name
- (Required) The name of the instance. Changing this forces a new resource to be created. -
hosted_service_name
- (Optional) The name of the hosted service the instance should be deployed under. If not provided; it will default to the value ofname
. Changes to this parameter forces the creation of a new resource. -
description
- (Optional) The description for the associated hosted service. Changing this forces a new resource to be created (defaults to the instance name). -
image
- (Required) The name of an existing VM or OS image to use for this instance. Changing this forces a new resource to be created. -
size
- (Required) The size of the instance. -
subnet
- (Optional) The name of the subnet to connect this instance to. If a value is suppliedvirtual_network
is required. Changing this forces a new resource to be created. -
virtual_network
- (Optional) The name of the virtual network thesubnet
belongs to. If a value is suppliedsubnet
is required. Changing this forces a new resource to be created. -
storage_service_name
- (Optional) The name of an existing storage account within the subscription which will be used to store the VHDs of this instance. Changing this forces a new resource to be created. A Storage Service is required if you are using a Platform Image -
reverse_dns
- (Optional) The DNS address to which the IP address of the hosted service resolves when queried using a reverse DNS query. Changing this forces a new resource to be created. -
location
- (Required) The location/region where the cloud service is created. Changing this forces a new resource to be created. -
automatic_updates
- (Optional) If true this will enable automatic updates. This attribute is only used when creating a Windows instance. Changing this forces a new resource to be created (defaults false) -
time_zone
- (Optional) The appropriate time zone for this instance in the format 'America/Los_Angeles'. This attribute is only used when creating a Windows instance. Changing this forces a new resource to be created (defaults false) -
username
- (Required) The username of a new user that will be created while creating the instance. Changing this forces a new resource to be created. -
password
- (Optional) The password of the new user that will be created while creating the instance. Required when creating a Windows instance or when not supplying anssh_key_thumbprint
while creating a Linux instance. Changing this forces a new resource to be created. -
ssh_key_thumbprint
- (Optional) The SSH thumbprint of an existing SSH key within the subscription. This attribute is only used when creating a Linux instance. Changing this forces a new resource to be created. -
security_group
- (Optional) The Network Security Group to associate with this instance. -
endpoint
- (Optional) Can be specified multiple times to define multiple endpoints. Eachendpoint
block supports fields documented below. -
domain_name
- (Optional) The name of an Active Directory domain to join. -
domain_ou
- (Optional) Specifies the LDAP Organizational Unit to place the instance in. -
domain_username
- (Optional) The username of an account with permission to join the instance to the domain. Required if a domain_name is specified. -
domain_password
- (Optional) The password for the domain_username account specified above. -
custom_data
- (Optional) The custom data to provide when launching the instance.
The endpoint
block supports:
-
name
- (Required) The name of the external endpoint. -
protocol
- (Optional) The transport protocol for the endpoint. Valid options are:tcp
andudp
(defaultstcp
) -
public_port
- (Required) The external port to use for the endpoint. -
private_port
- (Required) The private port on which the instance is listening.
Attributes Reference
The following attributes are exported:
-
id
- The instance ID. -
description
- The description for the associated hosted service. -
subnet
- The subnet the instance is connected to. -
endpoint
- The complete set of configured endpoints. -
security_group
- The associated Network Security Group. -
ip_address
- The private IP address assigned to the instance. -
vip_address
- The public IP address assigned to the instance.
© 2018 HashiCorpLicensed under the MPL 2.0 License.
https://www.terraform.io/docs/providers/azure/r/instance.html