Terraform is a popular tool for Infrastructure as a Code practice to manage Cloud Infrastructure using declarative ways.

As Infrastructure grows, the number of projects grows, and there’s a fair chance that you may not have the same terraform versions among your projects.

There can be various reasons for it. As a result, you may need multiple terraform versions installed on your machine, which can get a little tricky.

Worry not. There’s an open-source project to solve this problem tfenv.

What is tfenv?

Tfenv is a simple command-line tool that helps you manage multiple versions of Terraform. It allows you to easily switch between different versions of Terraform, depending on your requirements.

Installing tfenv

On Mac

  • Install using brew
brew install tfenv

Manual Installation

You can use following

$ git clone --depth=1 https://github.com/tfutils/tfenv.git ~/.tfenv
$ echo 'export PATH=$PATH:$HOME/.tfenv/bin' >> ~/.bashrc

Restart the Terminal, and you are set to use tfenv

Verify the Installation

  • Run the following command to verify the installation. It should also show the output as shown below.
$ tfenv
tfenv 3.0.0
Usage: tfenv <command> [<options>]

Commands:
   install       Install a specific version of Terraform
   use           Switch a version to use
   uninstall     Uninstall a specific version of Terraform
   list          List all installed versions
   list-remote   List all installable versions
   version-name  Print current version
   init          Update environment to use tfenv correctly.
   pin           Write the current active version to ./.terraform-version

Usage

Once tfenv is installed, you are all set to manage multiple terraform versions.

  • Installing specific versions of Terraform
  $ tfenv install 1.3.6
  Installing Terraform v1.3.6
  Downloading release tarball from https://releases.hashicorp.com/terraform/1.3.6/terraform_1.3.6_linux_amd64.zip
  ####################################################################################################################### 100.0%
  Downloading SHA hash file from https://releases.hashicorp.com/terraform/1.3.6/terraform_1.3.6_SHA256SUMS
  Not instructed to use Local PGP (/home/suraj/.tfenv/use-{gpgv,gnupg}) & No keybase install found, skipping OpenPGP signature verification
  terraform_1.3.6_linux_amd64.zip: OK
  Archive:  /tmp/tfenv_download.Xvaw0x/terraform_1.3.6_linux_amd64.zip
    inflating: /home/suraj/.tfenv/versions/1.3.6/terraform  
  Installation of terraform v1.3.6 successful. To make this your default version, run 'tfenv use 1.3.6'
  • List all the available installed terraform versions
  $ tfenv list
    1.3.9
    1.3.8
  * 1.3.7 (set by /home/suraj/.tfenv/version)

It will show you all the available versions and * will show the current terraform version.

  • You can also print the current terraform version using the following command,
  $ tfenv version-name
  1.3.7
  • If you want to switch to another version, you can do as shown below,
  $ tfenv use 1.3.8
  Switching default version to v1.3.8
  Default version (when not overridden by .terraform-version or TFENV_TERRAFORM_VERSION) is now: 1.3.8
  • uninstalling specific versions of terraform
  $ tfenv uninstall 1.3.6
  Uninstall Terraform v1.3.6
  Terraform v1.3.6 is successfully uninstalled

I hope you learned something new from this blog post. Click here to learn about me and how you can support my work, Thank you.