github.com/ves/terraform@v0.8.0-beta2/examples/clc/main.tf (about)

     1  # --------------------
     2  # Credentials
     3  provider "clc" {
     4    username = "${var.clc_username}"
     5    password = "${var.clc_password}"
     6    account  = "${var.clc_account}"
     7  }
     8  
     9  # --------------------
    10  # Provision/Resolve a server group
    11  resource "clc_group" "frontends" {
    12    location_id = "CA1"
    13    name        = "frontends"
    14    parent      = "Default Group"
    15  }
    16  
    17  # --------------------
    18  # Provision a server
    19  resource "clc_server" "node" {
    20    name_template    = "trusty"
    21    source_server_id = "UBUNTU-14-64-TEMPLATE"
    22    group_id         = "${clc_group.frontends.id}"
    23    cpu              = 2
    24    memory_mb        = 2048
    25    password         = "Green123$"
    26  
    27    additional_disks {
    28      path    = "/var"
    29      size_gb = 100
    30      type    = "partitioned"
    31    }
    32  
    33    additional_disks {
    34      size_gb = 10
    35      type    = "raw"
    36    }
    37  }
    38  
    39  # --------------------
    40  # Provision a public ip
    41  resource "clc_public_ip" "backdoor" {
    42    server_id           = "${clc_server.node.0.id}"
    43    internal_ip_address = "${clc_server.node.0.private_ip_address}"
    44  
    45    ports {
    46      protocol = "ICMP"
    47      port     = -1
    48    }
    49  
    50    ports {
    51      protocol = "TCP"
    52      port     = 22
    53    }
    54  
    55    source_restrictions {
    56      cidr = "173.60.0.0/16"
    57    }
    58  
    59    # ssh in and start a simple http server on :8080
    60    provisioner "remote-exec" {
    61      inline = [
    62        "cd /tmp; python -mSimpleHTTPServer > /dev/null 2>&1 &",
    63      ]
    64  
    65      connection {
    66        host     = "${clc_public_ip.backdoor.id}"
    67        user     = "root"
    68        password = "${clc_server.node.password}"
    69      }
    70    }
    71  }
    72  
    73  # --------------------
    74  # Provision a load balancer
    75  resource "clc_load_balancer" "frontdoor" {
    76    data_center = "${clc_group.frontends.location_id}"
    77    name        = "frontdoor"
    78    description = "frontdoor"
    79    status      = "enabled"
    80  }
    81  
    82  # --------------------
    83  # Provision a load balancer pool
    84  resource "clc_load_balancer_pool" "pool" {
    85    data_center   = "${clc_group.frontends.location_id}"
    86    load_balancer = "${clc_load_balancer.frontdoor.id}"
    87    method        = "roundRobin"
    88    persistence   = "standard"
    89    port          = 80
    90  
    91    nodes {
    92      status      = "enabled"
    93      ipAddress   = "${clc_server.node.private_ip_address}"
    94      privatePort = 8000
    95    }
    96  }