Introduction
Terraform, a widely-used Infrastructure as Code tool, can be a game changer for your DevOps workflow. This article provides a step-by-step guide on how to install Terraform on Red Hat Enterprise Linux (RHEL) 9.3, ensuring a smooth setup for your infrastructure management.
Terraform and RHEL
Terraform by HashiCorp is an open-source tool that allows you to define and provision a datacenter infrastructure using a high-level configuration language. Red Hat Enterprise Linux (RHEL) is a popular and robust operating system, known for its stability and enterprise-level support, making it an excellent choice for running Terraform.
Prerequisites
- Access to a RHEL 9.3 system
- Sudo privileges
- Internet connectivity
Installation Steps
1. Access Your RHEL System
Start by SSH-ing into your RHEL server:
Enter your password when prompted.
ssh [email protected]
[email protected]'s password:
Activate the web console with: systemctl enable --now cockpit.socket
[devops@localhost ~]$
2. Switch to Root User
For installing packages system-wide, switch to the root user:
sudo su
Enter the sudo password for the ‘devops
’ user.
[devops@localhost ~]$ sudo su
[sudo] password for devops:
[root@localhost devops]#
3. Verify RHEL Version
It’s good practice to check your operating system details:
cat /etc/os-release
This confirms that you are running RHEL 9.3.
NAME="Red Hat Enterprise Linux"\
VERSION="9.3 (Plow)"\
ID="rhel"\
ID_LIKE="fedora"\
VERSION_ID="9.3"\
PLATFORM_ID="platform:el9"\
PRETTY_NAME="Red Hat Enterprise Linux 9.3 (Plow)"\
ANSI_COLOR="0;31"\
LOGO="fedora-logo-icon"\
CPE_NAME="cpe:/o:redhat:enterprise_linux:9::baseos"\
HOME_URL="https://www.redhat.com/"\
DOCUMENTATION_URL="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9"\
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 9"\
REDHAT_BUGZILLA_PRODUCT_VERSION=9.3\
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"\
REDHAT_SUPPORT_PRODUCT_VERSION="9.3"
4. Install Yum-Utils
Yum-Utils provides utilities that integrate with Yum to enhance its default features, making it easier to manage packages.
yum install yum-utils
Confirm the installation by typing ‘y
’ when prompted.
Dependencies resolved.
===============================================================================================
Package Architecture Version Repository Size
===============================================================================================
Installing:
yum-utils noarch 4.3.0-11.el9_3 rhel-9-for-aarch64-baseos-rpms 45 k
Transaction Summary
===============================================================================================
Install 1 Package
Total download size: 45 k
Installed size: 23 k
Is this ok [y/N]: y
Downloading Packages:
yum-utils-4.3.0-11.el9_3.noarch.rpm 35 kB/s | 45 kB 00:01
-----------------------------------------------------------------------------------------------
Total 35 kB/s | 45 kB 00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : yum-utils-4.3.0-11.el9_3.noarch 1/1
Running scriptlet: yum-utils-4.3.0-11.el9_3.noarch 1/1
Verifying : yum-utils-4.3.0-11.el9_3.noarch 1/1
Installed products updated.
Installed:
yum-utils-4.3.0-11.el9_3.noarch
Complete!
5. Add the HashiCorp Repository
HashiCorp provides a dedicated repository for their packages. Add it to your system:
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
The output look like the following:
Updating Subscription Management repositories.
Adding repo from: https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
6. Install Terraform
Now, install Terraform:
yum install terraform
Again, confirm by typing ‘y
’. Terraform and its dependencies will be installed.
Updating Subscription Management repositories.
Hashicorp Stable - aarch64 437 kB/s | 108 kB 00:00
Dependencies resolved.
===============================================================================================
Package Arch Version Repository Size\
===============================================================================================
Installing:
terraform aarch64 1.7.2-1 hashicorp 23 M
Installing dependencies:
git aarch64 2.39.3-1.el9_2 rhel-9-for-aarch64-appstream-rpms 66 k
git-core-doc noarch 2.39.3-1.el9_2 rhel-9-for-aarch64-appstream-rpms 2.9 M
perl-Error noarch 1:0.17029-7.el9 rhel-9-for-aarch64-appstream-rpms 46 k
perl-Git noarch 2.39.3-1.el9_2 rhel-9-for-aarch64-appstream-rpms 39 k
perl-TermReadKey aarch64 2.38-11.el9 rhel-9-for-aarch64-appstream-rpms 40 k
perl-lib aarch64 0.65-480.el9 rhel-9-for-aarch64-appstream-rpms 17 k
Transaction Summary
===============================================================================================
Install 7 Packages
Total download size: 26 M
Installed size: 94 M
Is this ok [y/N]: y
Downloading Packages:
(1/7): perl-Error-0.17029-7.el9.noarch.rpm 20 kB/s | 46 kB 00:02
(2/7): perl-TermReadKey-2.38-11.el9.aarch64.rpm 16 kB/s | 40 kB 00:02
(3/7): perl-lib-0.65-480.el9.aarch64.rpm 14 kB/s | 17 kB 00:01
(4/7): git-2.39.3-1.el9_2.aarch64.rpm 45 kB/s | 66 kB 00:01
(5/7): perl-Git-2.39.3-1.el9_2.noarch.rpm 25 kB/s | 39 kB 00:01
(6/7): git-core-doc-2.39.3-1.el9_2.noarch.rpm 506 kB/s | 2.9 MB 00:05
(7/7): terraform-1.7.2-1.aarch64.rpm 1.6 MB/s | 23 MB 00:14
-----------------------------------------------------------------------------------------------
Total 1.8 MB/s | 26 MB 00:14
Hashicorp Stable - aarch64 37 kB/s | 3.9 kB 00:00
Importing GPG key 0xA621E701:
Userid : "HashiCorp Security (HashiCorp Package Signing) <[email protected]>"
Fingerprint: 798A EC65 4E5C 1542 8C8E 42EE AA16 FCBC A621 E701\
From : https://rpm.releases.hashicorp.com/gpg\
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : git-core-doc-2.39.3-1.el9_2.noarch 1/7
Installing : perl-lib-0.65-480.el9.aarch64 2/7
Installing : perl-TermReadKey-2.38-11.el9.aarch64 3/7
Installing : perl-Error-1:0.17029-7.el9.noarch 4/7
Installing : git-2.39.3-1.el9_2.aarch64 5/7
Installing : perl-Git-2.39.3-1.el9_2.noarch 6/7
Installing : terraform-1.7.2-1.aarch64 7/7
Running scriptlet: terraform-1.7.2-1.aarch64 7/7
Verifying : terraform-1.7.2-1.aarch64 1/7
Verifying : perl-Error-1:0.17029-7.el9.noarch 2/7
Verifying : perl-TermReadKey-2.38-11.el9.aarch64 3/7
Verifying : perl-lib-0.65-480.el9.aarch64 4/7
Verifying : git-2.39.3-1.el9_2.aarch64 5/7
Verifying : git-core-doc-2.39.3-1.el9_2.noarch 6/7
Verifying : perl-Git-2.39.3-1.el9_2.noarch 7/7
Installed products updated.
Installed:
git-2.39.3-1.el9_2.aarch64 git-core-doc-2.39.3-1.el9_2.noarch
perl-Error-1:0.17029-7.el9.noarch perl-Git-2.39.3-1.el9_2.noarch
perl-TermReadKey-2.38-11.el9.aarch64 perl-lib-0.65-480.el9.aarch64
terraform-1.7.2-1.aarch64
Complete!
7. Verify Terraform Installation
Check if Terraform is installed correctly:
terraform --version
This should display the installed version of Terraform.
Terraform v1.7.2
on linux_arm64
8. Enable Terraform Autocomplete (Optional)
For a better command-line experience, enable the autocomplete feature:
terraform -install-autocomplete
Log out and log back in for the changes to take effect.
Conclusion
Congratulations! You have successfully installed Terraform on RHEL 9.3. This setup paves the way for efficient infrastructure management and deployment using Terraform’s powerful features. Remember to keep Terraform updated and explore its extensive documentation to make the most of your DevOps practices.