Cyberithub

How to Install TFLint (Terraform Linter) on Linux

Advertisements

In this article, we will see how to install TFLint on Linux. TFLint or terraform linter is a free and open source tool that helps us checking the quality and potential errors in terraform code. It is also used for  checking the consistency and best practices which in turn helps us make our terraform code clean and sustainable. For advanced error detection, you can add plugins which are compatible with major cloud providers such as AWS, Azure and GCP. TFLint can be easily installed on all the famous platforms such as Linux, MacOS and Windows. Here we will see the steps to install TFLint on Linux based systems.

 

How to Install TFLint(Terraform Linter) on Linux

How to Install TFLint (Terraform Linter) on Linux

Also Read: How to Install Snap on Ubuntu 22.04

Step 1: Prerequisites

a) You should have a running Linux Server.

b) You should have sudo or root access to run privileged commands.

c) You should have curl utility installed in your Server.

 

Step 2: Update Your Server

Before installing TFLint, it is essential to check for all the latest available updates and install them on your Server. If you are using Ubuntu/Debian based systems then you can do that by running sudo apt update && sudo apt upgrade command.

sudo apt update && sudo apt upgrade

If you are using RHEL/CentOS based systems then you can install all the latest available updates by running either sudo yum update && sudo yum upgrade or sudo dnf update && sudo dnf upgrade command.

sudo yum update && sudo yum upgrade
sudo dnf update && sudo dnf upgrade

 

Step 3: Install TFLint

You have to visit GitHub website and get the latest available command to download and install TFLint on Linux based systems.

cyberithub@ubuntu:~$ curl -s https://raw.githubusercontent.com/terraform-linters/tflint/master/install_linux.sh | sudo bash
[sudo] password for cyberithub:
arch=amd64
os=linux_amd64


====================================================
Looking up the latest version ...
Downloading TFLint v0.48.0
Downloaded successfully


====================================================
Unpacking /tmp/tflint.AK3akeSKxH/tflint.zip ...
Archive: /tmp/tflint.AK3akeSKxH/tflint.zip
inflating: /tmp/tflint.AK3akeSKxH/tflint
Installing /tmp/tflint.AK3akeSKxH/tflint to /usr/local/bin/ ...
'/tmp/tflint.AK3akeSKxH/tflint' -> '/usr/local/bin/tflint'
Cleaning temporary downloaded files directory /tmp/tflint.AK3akeSKxH ...


====================================================
Current tflint version
TFLint version 0.48.0
+ ruleset.terraform (0.4.0-bundled)

 

Step 4: Check Version

After successful installation, you can check the current installed version by using tflint --version command as shown below.

cyberithub@ubuntu:~$ tflint --version
TFLint version 0.48.0
+ ruleset.terraform (0.4.0-bundled)

 

Step 5: Install Plugin

Since TFLint always look for .tflint.hcl file in the current directory where it is suppose to run so we will create this file and add below contents to install plugin for AWS and Azure cloud provider.

cyberithub@ubuntu:~$ nano .tflint.hcl
plugin "aws" {
  enabled = true
  version = "0.24.0"
  source = "github.com/terraform-linters/tflint-ruleset-aws"
}

plugin "azurerm" {
  enabled = true
  version = "0.24.0"
  source = "github.com/terraform-linters/tflint-ruleset-azurerm"
}

Then run tflint --init command to download and install the plugins as shown below.

cyberithub@ubuntu:~$ tflint --init
Installing `aws` plugin...
Installed `aws` (source: github.com/terraform-linters/tflint-ruleset-aws, version: 0.24.0)
Installing `azurerm` plugin...
Installed `azurerm` (source: github.com/terraform-linters/tflint-ruleset-azurerm, version: 0.24.0)

 

Step 6: Check all the available options

You can also check all the options available with tflint utility using tflint --help command as shown below.

cyberithub@ubuntu:~$ tflint --help
Usage:
tflint --chdir=DIR/--recursive [OPTIONS]

Application Options:
  -v, --version                                               Print TFLint version
      --init                                                  Install plugins
      --langserver                                            Start language server
  -f, --format=[default|json|checkstyle|junit|compact|sarif]  Output format
  -c, --config=FILE                                           Config file name (default: .tflint.hcl)
      --ignore-module=SOURCE                                  Ignore module sources
      --enable-rule=RULE_NAME                                 Enable rules from the command line
      --disable-rule=RULE_NAME                                Disable rules from the command line
      --only=RULE_NAME                                        Enable only this rule, disabling all other defaults. Can be specified multiple times
      --enable-plugin=PLUGIN_NAME                             Enable plugins from the command line
      --var-file=FILE                                         Terraform variable file name
      --var='foo=bar'                                         Set a Terraform variable
      --module                                                Enable module inspection
      --no-module                                             Disable module inspection
      --chdir=DIR                                             Switch to a different working directory before executing the command
      --recursive                                             Run command in each directory recursively
      --filter=FILE                                           Filter issues by file names or globs
      --force                                                 Return zero exit status even if issues found
      --minimum-failure-severity=[error|warning|notice]       Sets minimum severity level for exiting with a non-zero error code
      --color                                                 Enable colorized output
      --no-color                                              Disable colorized output
      --fix                                                   Fix issues automatically

Help Options:
-h, --help Show this help message

Leave a Comment