Skip to content
Snippets Groups Projects
Select Git revision
  • 7facf9de65ecd43583b0aa44353383109adb9fac
  • master default
  • M30
  • M24
  • TestForUpdateSite
  • M12
6 results

main.tf

Blame
  • main.tf 3.77 KiB
    variable "adapt_host" {
      description = "The endpoint of ADAPT"
    }
    
    variable "cloudbroker_endpoint" {
      description = "The endpoint of the cloudbroker API"
      default = "https://decide-prototype.cloudbroker.com"
    }
    
    variable "cloudbroker_username" {
      description = "The username for the cloudbroker API"
    }
    
    variable "cloudbroker_password" {
      description = "The password for the cloudbroker API"
    }
    
    variable "vm_software_id" {
      default = "21b7ebed-5076-43b6-8351-0e06cf16eedc"
    }
    
    variable "vm_resource_id" {
      default = "18d07329-07f6-4d59-b1c1-676f64d1663f"
    }
    
    variable "vm_region_id" {
      default = "4265ddb9-e862-4814-82a4-d6b92f25e8e5"
    }
    
    variable "vm_user" {
      default = "ubuntu"
    }
    
    variable "instance_type_id" {
      default = "e3ca8e4c-0f91-4e83-9bd9-4cef88d054a8"
    }
    
    variable "key_pair_id" {
      default = "fb40a1f3-86b1-4e68-9ab3-049b664139e7"
    }
    
    variable "opened_port" {
      default = "22,80,8000-9000,9411"
    }
    
    variable "consul-join-ip" {
    }
    
    variable "docker-private-registry-ip" {
      default = ""
    }
    
    variable "docker-private-registry-port" {
      default = ""
    }
    
    variable "node_name" {
    }
    
    variable "app_name" {
      default = ""
    }
    
    
    provider "cloudbroker" {
      username    = "${var.cloudbroker_username}"
      password    = "${var.cloudbroker_password}"
      endpoint    = "${var.cloudbroker_endpoint}"
      timeout     = 60
      max_retries = 5
    }
    
    resource "cloudbroker_instance" "decide-vm" {
      software_id = "${var.vm_software_id}"
      resource_id = "${var.vm_resource_id}"
      region_id = "${var.vm_region_id}"
      instance_type_id = "${var.instance_type_id}"
      vm_user = "${var.vm_user}"
      isolated = "false"
      key_pair_id = "${var.key_pair_id}"
      disable_autostop = "true"
      opened_port = "${var.opened_port}"
      name = "${var.node_name}"
    
      provisioner "local-exec" {
        command = "echo ${cloudbroker_instance.decide-vm.external_ip_address} > /app/${var.app_name}-${var.node_name}-ip.txt"
      }
    
      connection {
        host = "${cloudbroker_instance.decide-vm.external_ip_address}"
      }   
      
      provisioner "file" {
        source      = "/home/ubuntu/terraform/scripts"
        destination = "/tmp"
    
        connection {
          type     = "ssh"
          user     = "${var.vm_user}"
          private_key =  "${file("/home/ubuntu/terraform/keypairs/${var.app_name}/private-key-openssh")}"
        }
      }
    
      provisioner "remote-exec" {
        inline = [
          "chmod -R +x /tmp/scripts",
          "sleep 5",
          "/tmp/scripts/init-vm.sh ${cloudbroker_instance.decide-vm.name} ${cloudbroker_instance.decide-vm.external_ip_address} ${cloudbroker_instance.decide-vm.internal_ip_address} ${var.consul-join-ip} ${var.adapt_host} ${var.docker-private-registry-ip} ${var.docker-private-registry-port}",
      ]
    
        connection {
          type     = "ssh"
          user     = "${var.vm_user}"
          private_key =  "${file("/home/ubuntu/terraform/keypairs/${var.app_name}/private-key-openssh")}"
        }
      }
    
      provisioner "local-exec" {
        command = <<CMD
          mkdir -p /home/ubuntu/terraform/certs/${cloudbroker_instance.decide-vm.external_ip_address} \
            && scp -i /home/ubuntu/terraform/keypairs/${var.app_name}/private-key-openssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -r ${var.vm_user}@${cloudbroker_instance.decide-vm.external_ip_address}:/tmp/scripts/tempkeys/ /home/ubuntu/terraform/certs/${cloudbroker_instance.decide-vm.external_ip_address} \
            && mv /home/ubuntu/terraform/certs/${cloudbroker_instance.decide-vm.external_ip_address}/tempkeys /home/ubuntu/terraform/certs/${cloudbroker_instance.decide-vm.external_ip_address}/keys \
            && chmod -v 0400 /home/ubuntu/terraform/certs/${cloudbroker_instance.decide-vm.external_ip_address}/keys/key.pem \
            && chmod -v 0444 /home/ubuntu/terraform/certs/${cloudbroker_instance.decide-vm.external_ip_address}/keys/cert.pem
    CMD
    
      }
    
    }
    
    
    output "external_ip_address" {
      value = "${cloudbroker_instance.decide-vm.external_ip_address}"
    }