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.