Posts

Showing posts with the label Terraform

Quick post about Terraform

Image
Terraform w/ OpenStack provider It's been a while since I posted to this blog so thought I'd revive it by putting up a quick update on what I've experienced with Terraform using the OpenStack provider recently. At work, I've been the owner of the deployment of FortiSwitch Cloud in new regions. The platform that the application is running on is Kubernetes which itself is running on VMware Integrated OpenStack (VIO). We might discuss them in further detail in future posts.  One of the steps in the deployment entailed creating a new network in OpenStack (project network specifically, you can read more about OpenStack networking here ). I tried creating a network by defining a Terraform Resource block, a simplified version is shown below: resource "openstack_networking_network_v2" "network_1" { name = "network_1" admin_state_up = "true" } resource "openstack_networking_subnet_v2" "subnet_1...

Terraform Introduction

Image
Infrastructure as a Code (IaC): So, what is IaC? It's just a fancy made-up term for deploying and controlling the cloud infrastructure as a series of configuration files instead of using the GUI and the most popular IaC tool is Terraform. Terraform is a program written in the 'Go' language that lets us deploy infrastructure on different platforms using plugins called  providers . Providers let us perform CRUD (Post Get Put Delete) operations on the Target APIs as depicted below: Figure [1] Terraform calls We write Terraform scripts in a Terraform Domain-Specific language called ' Hashicorp Configuration Language ' (HCL). Working with Terraform and AWS: Terraform lets you declare infrastructure in a Declarative manner .  Modules are reusable Terraform configurations that may contain one or more providers. Step 1 - Install Terraform (we will only cover RHEL 8 here for the sake of brevity): sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://rpm.re...