github.com/outbrain/consul@v1.4.5/terraform/openstack/consul.tf (about)

     1  provider "openstack" {
     2    user_name   = "${var.username}"
     3    tenant_name = "${var.tenant_name}"
     4    password    = "${var.password}"
     5    auth_url    = "${var.auth_url}"
     6  }
     7  
     8  resource "openstack_compute_keypair_v2" "consul_keypair" {
     9    name       = "consul-keypair"
    10    region     = "${var.region}"
    11    public_key = "${var.public_key}"
    12  }
    13  
    14  resource "openstack_compute_floatingip_v2" "consul_ip" {
    15    region = "${var.region}"
    16    pool   = "${lookup(var.pub_net_id, var.region)}"
    17    count  = "${var.servers}"
    18  }
    19  
    20  resource "openstack_compute_instance_v2" "consul_node" {
    21    name        = "consul-node-${count.index}"
    22    region      = "${var.region}"
    23    image_id    = "${lookup(var.image, var.region)}"
    24    flavor_id   = "${lookup(var.flavor, var.region)}"
    25    floating_ip = "${element(openstack_compute_floatingip_v2.consul_ip.*.address,count.index)}"
    26    key_pair    = "consul-keypair"
    27    count       = "${var.servers}"
    28  
    29    connection {
    30      user     = "${var.user_login}"
    31      key_file = "${var.key_file_path}"
    32      timeout  = "1m"
    33    }
    34  
    35    provisioner "file" {
    36      source      = "${path.module}/scripts/upstart.conf"
    37      destination = "/tmp/upstart.conf"
    38    }
    39  
    40    provisioner "file" {
    41      source      = "${path.module}/scripts/upstart-join.conf"
    42      destination = "/tmp/upstart-join.conf"
    43    }
    44  
    45    provisioner "remote-exec" {
    46      inline = [
    47        "echo ${var.servers} > /tmp/consul-server-count",
    48        "echo ${count.index} > /tmp/consul-server-index",
    49        "echo ${openstack_compute_instance_v2.consul_node.0.network.0.fixed_ip_v4} > /tmp/consul-server-addr",
    50      ]
    51    }
    52  
    53    provisioner "remote-exec" {
    54      scripts = [
    55        "${path.module}/scripts/install.sh",
    56        "${path.module}/scripts/server.sh",
    57        "${path.module}/scripts/service.sh",
    58      ]
    59    }
    60  }