updated to best practices/conventions

This commit is contained in:
anniehedgpeth 2017-04-22 17:27:49 -05:00
parent 6c3c85d05f
commit 34d0c450ff
6 changed files with 54 additions and 16 deletions

View File

@ -1,3 +1,3 @@
terraform.tfstate*
terraform.tfvars*
creds.tf*
terraform.tfvars
provider.tf

View File

@ -1,8 +1,36 @@
# Deploy a simple Linux VM
**ubuntu**
# Very simple deployment of a Linux VM
<a href="https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2F101-vm-simple-linux%2Fazuredeploy.json" target="_blank">
<img src="http://azuredeploy.net/deploybutton.png"/>
</a>
<a href="http://armviz.io/#/?load=https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2F101-vm-simple-linux%2Fazuredeploy.json" target="_blank">
<img src="http://armviz.io/visualizebutton.png"/>
</a>
This template allows you to deploy a simple Linux VM using a few different options for the Ubuntu version, using the latest patched version. This will deploy a A1 size VM in the resource group location and return the FQDN of the VM.
This template takes a minimum amount of parameters and deploys a Linux VM, using the latest patched version.
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.
## azuredeploy.tf
The `azuredeploy.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.
## variables.tf
The `variables.tf` file contains all of the input parameters that the user can specify when deploying this Terraform template.
## .gitignore
If you are committing this template to source control, please insure that the following files are added to your `.gitignore` file.
```
terraform.tfstate*
terraform.tfvars
provider.tf*
```

View File

@ -0,0 +1,6 @@
provider "azurerm" {
subscription_id = "REPLACE-WITH-YOUR-SUBSCRIPTION-ID"
client_id = "REPLACE-WITH-YOUR-CLIENT-ID"
client_secret = "REPLACE-WITH-YOUR-CLIENT-SECRET"
tenant_id = "REPLACE-WITH-YOUR-TENANT-ID"
}

View File

@ -0,0 +1,7 @@
resource_group = "myresourcegroup"
rg_prefix = "rg"
hostname = "myvm"
dns_name = "mydnsname"
location = "southcentralus"
admin_username = "vmadmin"
admin_password = "T3rr@f0rmP@ssword"

View File

@ -4,12 +4,18 @@ variable "resource_group" {
variable "rg_prefix" {
description = "The shortened abbreviation to represent your resource group that will go on the front of some resources."
default = "rg"
}
variable "hostname" {
description = "VM name referenced also in storage-related names."
}
variable "dns_name" {
description = " Label for the Domain Name. Will be used to make up the FQDN. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system."
}
variable "location" {
description = "The location/region where the virtual network is created. Changing this forces a new resource to be created."
default = "southcentralus"
}
variable "virtual_network_name" {
@ -57,15 +63,6 @@ variable "image_version" {
default = "latest"
}
variable "hostname" {
description = "VM name referenced also in storage-related names."
default = "myvm"
}
variable "dns_name" {
description = " Label for the Domain Name. Will be used to make up the FQDN. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system."
}
variable "admin_username" {
description = "administrator user name"
}