From f40600b9bb5e660ebed74ce7669eeb49fc79a9a4 Mon Sep 17 00:00:00 2001 From: James Phillips Date: Thu, 17 Nov 2016 16:27:48 -0800 Subject: [PATCH] Tweaks DO example Terraform. --- terraform/digitalocean/README.md | 16 ++-- terraform/digitalocean/consul.tf | 43 +++++------ terraform/digitalocean/outputs.tf | 2 +- .../digitalocean/terraform.tfvars.example | 1 + terraform/digitalocean/variables.tf | 77 +++---------------- 5 files changed, 44 insertions(+), 95 deletions(-) diff --git a/terraform/digitalocean/README.md b/terraform/digitalocean/README.md index 04f2cc920..0ee7864bb 100644 --- a/terraform/digitalocean/README.md +++ b/terraform/digitalocean/README.md @@ -1,8 +1,8 @@ - # Requirements -Terraform installed -Digital Ocean account with API key -SSH key uploaded to Digital Ocean + +* Terraform installed +* Digital Ocean account with API key +* SSH key uploaded to Digital Ocean ### Variables Populate terraform.tfvars as follows (or execute with arguments as shown in Usage) @@ -11,7 +11,7 @@ Populate terraform.tfvars as follows (or execute with arguments as shown in Usag do_token = "ASDFQWERTYDERP" num_instances = "3" ssh_key_ID = "my_ssh_keyID_in_digital_ocean" - + region = "desired DO region" # Usage @@ -19,10 +19,12 @@ Populate terraform.tfvars as follows (or execute with arguments as shown in Usag -var 'key_path=~/.ssh/id_rsa' \ -var 'do_token=ASDFQWERTYDERP' \ -var 'num_instances=3' \ - - var 'ssh_key_ID=86:75:30:99:88:88:AA:FF:DD' + -var 'ssh_key_ID=86:75:30:99:88:88:AA:FF:DD' \ + -var 'region=tor1' terraform apply \ -var 'key_path=~/.ssh/id_rsa' \ -var 'do_token=ASDFQWERTYDERP' \ -var 'num_instances=3' \ - - var 'ssh_key_ID=86:75:30:99:88:88:AA:FF:DD' + -var 'ssh_key_ID=86:75:30:99:88:88:AA:FF:DD' \ + -var 'region=tor1' diff --git a/terraform/digitalocean/consul.tf b/terraform/digitalocean/consul.tf index 20005ce49..11a1d7133 100644 --- a/terraform/digitalocean/consul.tf +++ b/terraform/digitalocean/consul.tf @@ -3,39 +3,38 @@ provider "digitalocean" { } resource "digitalocean_droplet" "consul" { - ssh_keys = ["${var.ssh_key_ID}"] - image = "${var.ubuntu}" - region = "${var.do_tor1}" - size = "2gb" - private_networking = true - name = "consul${count.index + 1}" - count = "${var.num_instances}" + ssh_keys = ["${var.ssh_key_ID}"] + image = "${var.ubuntu}" + region = "${var.region}" + size = "2gb" + private_networking = true + name = "consul${count.index + 1}" + count = "${var.num_instances}" connection { - type = "ssh" + type = "ssh" private_key = "${file("${var.key_path}")}" - user = "root" - timeout = "2m" + user = "root" + timeout = "2m" } provisioner "file" { - source = "${path.module}/../shared/scripts/debian_upstart.conf" - destination = "/tmp/upstart.conf" + source = "${path.module}/../shared/scripts/debian_upstart.conf" + destination = "/tmp/upstart.conf" } provisioner "remote-exec" { - inline = [ - "echo ${var.num_instances} > /tmp/consul-server-count", - "echo ${digitalocean_droplet.consul.0.ipv4_address} > /tmp/consul-server-addr", - ] + inline = [ + "echo ${var.num_instances} > /tmp/consul-server-count", + "echo ${digitalocean_droplet.consul.0.ipv4_address} > /tmp/consul-server-addr", + ] } provisioner "remote-exec" { - scripts = [ - "${path.module}/../shared/scripts/install.sh", - "${path.module}/../shared/scripts/service.sh", - "${path.module}/../shared/scripts/ip_tables.sh", - ] + scripts = [ + "${path.module}/../shared/scripts/install.sh", + "${path.module}/../shared/scripts/service.sh", + "${path.module}/../shared/scripts/ip_tables.sh", + ] } - } diff --git a/terraform/digitalocean/outputs.tf b/terraform/digitalocean/outputs.tf index 7aee1b09d..31f98882a 100644 --- a/terraform/digitalocean/outputs.tf +++ b/terraform/digitalocean/outputs.tf @@ -1,5 +1,5 @@ output "first_consule_node_address" { - value = "${digitalocean_droplet.consul.0.ipv4_address}" + value = "${digitalocean_droplet.consul.0.ipv4_address}" } output "all_addresses" { diff --git a/terraform/digitalocean/terraform.tfvars.example b/terraform/digitalocean/terraform.tfvars.example index fe0a5dcfa..4fdc3c3d2 100644 --- a/terraform/digitalocean/terraform.tfvars.example +++ b/terraform/digitalocean/terraform.tfvars.example @@ -2,3 +2,4 @@ key_path = "~/.ssh/id_rsa" ssh_key_ID = "my_ssh_key_ID_or_fingerprint_NOT_SSH_KEY_NAME" do_token = "ASDFQWERTYDERP" num_instances = "3" +region = "tor1" \ No newline at end of file diff --git a/terraform/digitalocean/variables.tf b/terraform/digitalocean/variables.tf index d7a626aaf..79bf8d782 100644 --- a/terraform/digitalocean/variables.tf +++ b/terraform/digitalocean/variables.tf @@ -1,79 +1,26 @@ variable "do_token" {} + variable "key_path" {} + variable "ssh_key_ID" {} + +variable "region" {} + variable "num_instances" {} -## below sourced from -## https://github.com/hashicorp/terraform/blob/master/examples/digitalocean/variable.tf - -# #### -# Current Availiable Datacenter Regions -# As of 05-07-2016 -# - -variable "do_ams2" { - description = "Digital Ocean Amsterdam Data Center 2" - default = "ams2" -} - -variable "do_ams3" { - description = "Digital Ocean Amsterdam Data Center 3" - default = "ams3" -} - -variable "do_fra1" { - description = "Digital Ocean Frankfurt Data Center 1" - default = "fra1" -} - -variable "do_lon1" { - description = "Digital Ocean London Data Center 1" - default = "lon1" -} - -variable "do_nyc1" { - description = "Digital Ocean New York Data Center 1" - default = "nyc1" -} - -variable "do_nyc2" { - description = "Digital Ocean New York Data Center 2" - default = "nyc2" -} - -variable "do_nyc3" { - description = "Digital Ocean New York Data Center 3" - default = "nyc3" -} - -variable "do_sfo1" { - description = "Digital Ocean San Francisco Data Center 1" - default = "sfo1" -} - -variable "do_sgp1" { - description = "Digital Ocean Singapore Data Center 1" - default = "sgp1" -} - -variable "do_tor1" { - description = "Digital Ocean Toronto Datacenter 1" - default = "tor1" -} - -# Default Os +# Default OS variable "ubuntu" { - description = "Default LTS" - default = "ubuntu-14-04-x64" + description = "Default LTS" + default = "ubuntu-14-04-x64" } variable "centos" { - description = "Default Centos" - default = "centos-72-x64" + description = "Default Centos" + default = "centos-72-x64" } variable "coreos" { - description = "Defaut Coreos" - default = "coreos-899.17.0" + description = "Defaut Coreos" + default = "coreos-899.17.0" }