Skip to main content

Terraform Made Simple: Day 3 - Terraform Variables

 Terraform Made Simple: Day 3 - Terraform Variables


After learning the basics, it's time to understand Terraform variables.


Variables are important because we don’t want to hardcode values directly in our configuration. Instead, we define variables and pass values when needed.


This makes our Terraform code flexible, reusable, and easier to manage across different environments.


Let's see how it works-


1. What are Terraform Variables?


Variables act as customizable inputs that remove the need for static, "hard-coded" values in your files:


> Parameterize Configurations: Use placeholders for values like regions or instance types.

> Accept Values at Runtime: Pass data into your code from various sources when you run Terraform.

> Enable Reusability: Allow the same configuration to be passed into different modules or environments.


2. Types of Variables & Values:


There are three main ways to handle data within your project:


> Input Variables: Accept values from outside the module (like from a user or a file).

> Local Values: Compute a value once to reuse it multiple times within a single module.

> Output Values: Expose specific information (like an IP address) after the infrastructure is built.

> Common Properties: You can define a type constraint, a default value, and even custom validation rules.


3. Declaring and Using Variables:


Managing variables is a straightforward process of defining the input and then referencing it:


> Declare in variables. tf: Use the variable block to set the name, type, and description.

> Reference in main. tf: Access your inputs using the var.<name> syntax, or use local.<name> for computed values.


4. Setting Variable Values:


You have several ways to provide the actual data to your variables:


> Variable Files: Use a terraform.tfvars file to store your environment-specific values.

> CLI Flags: Pass values directly in the terminal using the -var flag.

> Environment Variables: Use system variables (prefixed with TF_VAR_) to map values to Terraform.


That’s all for today!


Next, we’ll understand Datasources and Locals in Terraform. Then we’ll move on to a hands-on project where we create a VPC from scratch using everything we’ve learned so far.




Comments

Popular posts from this blog

Quick Guide to VCF Automation for VCD Administrators

  Quick Guide to VCF Automation for VCD Administrators VMware Cloud Foundation 9 (VCF 9) has been  released  and with it comes brand new Cloud Management Platform –  VCF Automation (VCFA)  which supercedes both Aria Automation and VMware Cloud Director (VCD). This blog post is intended for those people that know VCD quite well and want to understand how is VCFA similar or different to help them quickly orient in the new direction. It should be emphasized that VCFA is a new solution and not just rebranding of an old one. However it reuses a lot of components from its predecessors. The provider part of VCFA called Tenenat Manager is based on VCD code and the UI and APIs will be familiar to VCD admins, while the tenant part inherist a lot from Aria Automation and especially for VCD end-users will look brand new. Deployment and Architecture VCFA is generaly deployed from VCF Operations Fleet Management (former Aria Suite LCM embeded in VCF Ops. Fleet Management...
  Issue with Aria Automation Custom form Multi Value Picker and Data Grid https://knowledge.broadcom.com/external/article?articleNumber=345960 Products VMware Aria Suite Issue/Introduction Symptoms: Getting  error " Expected Type String but was Object ", w hen trying to use Complex Types in MultiValue Picker on the Aria for Automation Custom Form. Environment VMware vRealize Automation 8.x Cause This issue has been identified where the problem appears when a single column Multi Value Picker or Data Grid is used. Resolution This is a known issue. There is a workaround.  Workaround: As a workaround, try adding one empty column in the Multivalue picker without filling the options. So we can add one more column without filling the value which will be hidden(there is a button in the designer page that will hide the column). This way the end user will receive the same view.  

Step-by-Step Explanation of Ballooning, Compression & Swapping in VMware

 ðŸ”¹ Step-by-Step Explanation of Ballooning, Compression & Swapping in VMware ⸻ 1️⃣ Memory Ballooning (vmmemctl) Ballooning is the first memory reclamation technique used when ESXi detects memory pressure. ➤ Step-by-Step: How Ballooning Works  1. VMware Tools installs the balloon driver (vmmemctl) inside the guest OS.  2. ESXi detects low free memory on the host.  3. ESXi inflates the balloon in selected VMs.  4. Balloon driver occupies guest memory, making the OS think RAM is full.  5. Guest OS frees idle / unused pages (because it believes memory is needed).  6. ESXi reclaims those freed pages and makes them available to other VMs. Why Ballooning Happens?  • Host free memory is very low.  • ESXi wants the VM to release unused pages before resorting to swapping. Example  • Host memory: 64 GB  • VMs used: 62 GB  • Free: 2 GB → ESXi triggers ballooning  • VM1 (8 GB RAM): Balloon inflates to 2 GB → OS frees 2 GB → ESXi re...