TFSwitch is a command-line tool designed to switch between different versions of Terraform with ease. This tool is particularly useful for managing multiple projects that require different Terraform versions.
Key Features
- Version Management: Switch between different Terraform versions effortlessly.
- Download Versions: If the desired version is not installed, TFSwitch will download it.
- Compatibility: Works with configuration files like
.tfswitchrc
,.tfswitch.toml
, andversion.tf
.
Installation
For Windows
- Download the Windows version of TFSwitch from the release page.
- Extract the executable and add it to your system PATH.
For macOS
Using Homebrew, the installation is straightforward:
For macOS | |
Using Homebrew, the installation is straightforward: | |
brew install warrensbox/tap/tfswitch | |
For Linux | |
Run the following command to install TFSwitch: | |
curl -L https://raw.githubusercontent.com/warrensbox/terraform-switcher/master/install.sh | bash | |
To install TFSwitch in a custom directory or a specific version, modify the command: | |
curl -L https://raw.githubusercontent.com/warrensbox/terraform-switcher/master/install.sh | bash -s -- -b $HOME/.local/bin 1.1.1 | |
For Arch Linux | |
Use AUR packages: | |
# compiled from source | |
yay tfswitch | |
# precompiled | |
yay tfswitch-bin | |
Usage | |
Basic Commands | |
List all available versions: | |
tfswitch -l | |
Switch to a specific version: | |
tfswitch 0.14.4 | |
Environment Variable | |
Set the TF_VERSION environment variable to automatically switch to a specific version: | |
export TF_VERSION=0.14.4 | |
tfswitch | |
Configuration Files | |
Using .tfswitchrc: | |
Create a file named .tfswitchrc in your project directory and add the desired version: | |
echo "0.10.5" > .tfswitchrc | |
tfswitch | |
Using .tfswitch.toml: | |
For non-admin users or custom binary paths, create a .tfswitch.toml file: | |
bin = "$HOME/bin/terraform" | |
version = "0.11.3" | |
Run tfswitch to switch to the specified version. | |
Show Latest Version | |
Show the latest stable version: | |
tfswitch --show-latest |
Advanced Usage
Integration with CI/CD
TFSwitch can be integrated into CI/CD pipelines to manage Terraform versions dynamically based on project requirements. You can specify the Terraform version directly in your pipeline configuration, ensuring consistent environments across different stages.
Troubleshooting
- Permission Issues: If you encounter permission issues, especially on Linux, ensure that the binary is installed in a directory where you have write access, such as
$HOME/bin
.
Conclusion
TFSwitch is a powerful tool for managing multiple versions of Terraform, simplifying the development and deployment process across different environments. By leveraging configuration files and environment variables, TFSwitch ensures that the correct Terraform version is used consistently, reducing potential issues caused by version mismatches.
For more detailed information, visit the official TFSwitch documentation and the GitHub repository.
I’m a DevOps/SRE/DevSecOps/Cloud Expert passionate about sharing knowledge and experiences. I am working at Cotocus. I blog tech insights at DevOps School, travel stories at Holiday Landmark, stock market tips at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at I reviewed , and SEO strategies at Wizbrand.
Please find my social handles as below;
Rajesh Kumar Personal Website
Rajesh Kumar at YOUTUBE
Rajesh Kumar at INSTAGRAM
Rajesh Kumar at X
Rajesh Kumar at FACEBOOK
Rajesh Kumar at LINKEDIN
Rajesh Kumar at PINTEREST
Rajesh Kumar at QUORA
Rajesh Kumar at WIZBRAND