Skip to content
Snippets Groups Projects
main.tf 1.41 KiB
Newer Older
Ryan Randles Jones's avatar
Ryan Randles Jones committed
variable "ohpc_instance_name" {default = "string"}
variable "image_ohpc" {default = "string"}
variable "flavor" {default = "string"}
Ryan Randles Jones's avatar
Ryan Randles Jones committed
variable "key_pair" {default = "string"}
Ryan Randles Jones's avatar
Ryan Randles Jones committed
variable "internal_net" {default = "string"}
variable "external_net" {default = "string"}
variable "floating_ip_ohpc" {type = string}
Ryan Randles Jones's avatar
Ryan Randles Jones committed
variable "host_prefix" {default = "string"}
variable "ohpc_user" {default = "string"}
variable "ssh_private_key" {default = "string"}
variable "external_subnet_id" {type = "string"}
Ryan Randles Jones's avatar
Ryan Randles Jones committed


# creates details for the OHPC instance
resource "openstack_compute_instance_v2" "ohpc" {
  depends_on      = [var.external_subnet_id]
  name            = var.ohpc_instance_name
  image_name      = var.image_ohpc
  flavor_name     = var.flavor
Ryan Randles Jones's avatar
Ryan Randles Jones committed
  key_pair        = var.key_pair
  security_groups = ["default"]

# defines the networks of the instance
  network {
    name = var.external_net
  }
  network {
    name = var.internal_net
  }
}

# associates floating ip with the OHPC instance
resource "openstack_compute_floatingip_associate_v2" "ohpc" {
  floating_ip = var.floating_ip_ohpc
  instance_id = openstack_compute_instance_v2.ohpc.id

# defines ssh connection
  connection {
    host = format(var.host_prefix,element(split(".", var.floating_ip_ohpc),3,),)
    user        = var.ohpc_user
    private_key = file(var.ssh_private_key)
  }
}

output "ssh_host" {
    value = format(var.host_prefix,element(split(".", var.floating_ip_ohpc),3,),)