Select Git revision
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}"
}