Skip to content
Snippets Groups Projects
Eesaan Atluri's avatar
Eesaan Atluri authored
All provisioners are using same connection details in the resource block
so define it once at the start of the block rather than using them once
per each provisioning task.
c59893f9

Terraform Openstack

This will create:

dmznet and dmzsubnet

borderrouter that connects dmznet to bright-external-flat-externalnet

a floating ip address, and an instance coming off of dmznet

clusternet off of dmznet instance

clustersubnet eill connect instance to ood through ohpc and download software

Make a new directory for Terraform:

$mkdir terraform-first-instance

Install Terraform:

$brew install terraform

Unzip the file and make a path to your new directory:

$export TERRAFORM_DIR="$(pwd)/terraform-first-instance"

$cp $HOME/Downloads/terraform_0.6.16_linux_amd64/terraform $TERRAFORM_DIR

Create a new application credintial in Openstack:

In Openstack, go to Identity - Application Credentials

Click "Create Application Credential"

Name the credential and add a description(Leave the rest blank. It is important not to add an expiration date.)

Open the credential rc file you have created, and change all OS_ to TF_. This will allow terraform to read and use these values.

Save the credential in your terraform-first-instance directory.

Download RC File from Openstack(V3) and save it in your terraform-first-instance directory.

Clone this repo into your terraform-first-instance directory:

$git clone --recursive https://gitlab.rc.uab.edu/rrand11/terraform-openstack.git

Source the openrc file and enter your password for openstack (you will only need to do this the very first time):

$source OPENRCFILENAME

Source the credential rc file and initialize terraform:

$source CREDENTIALRCFILENAME

$cd terraform-openstack

$terraform init

Write Terraform Plan to your terraform-first-instance directory and run that plan:

$terraform plan -out $HOME/terraform-first-instance/terraform-plan.tf

#terraform plan -out writes the plan to a file and then terraform apply runs that plan

$terraform apply "$HOME/terraform-first-instance/terraform-plan.tf"

Destroy Terraform Instance:

$terraform destroy