DEV Community

Cover image for Set Up Terraform in your Jenkins Docker Container
Paschal Ogu
Paschal Ogu

Posted on • Originally published at blog.paschalogu.com

15

Set Up Terraform in your Jenkins Docker Container

Organizations can automate their infrastructure as code (IaC) and streamline deployment processes by configuring a continuous integration and continuous development (CI/CD) pipeline to integrate Terraform within their Jenkins Docker container.

Terms:

Jenkins is an automation server widely used to automate various aspects of software development, including building, testing, and deploying applications.

Docker is an open-source platform that enables developers to build, deploy, run, update and manage applications in a container.

Containers are isolated environments that package an application and its dependencies together, allowing it to run consistently across different computing environments.

Terraform is a declarative open-source “Infrastructure as Code” tool, created by HashiCorp that enables the definition of on-prem and cloud resources in human-readable configuration files that can be versioned, reused, and shared as code.

In this artcle, we are going to set up terraform in a jenkins server that runs on a docker container. Let's get into it 🧑🏽‍💻

Step 1: Pull and start the Jenkins Docker container:

The Jenkins server used in this project was installed using the documentation. See more



docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:lts-jdk11


Enter fullscreen mode Exit fullscreen mode

Step 2: Install Terraform on your Docker Container

To install terraform on the container, find your Jenkins container ID and log into the container as root user:



docker ps
docker exec -u 0 -it <container_id> /bin/bash


Enter fullscreen mode Exit fullscreen mode

Change Directory to /usr/bin directory



cd /usr/bin


Enter fullscreen mode Exit fullscreen mode

As the root user, install terraform in the docker container: Reference the official documentation for the installation guide.



wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform


Enter fullscreen mode Exit fullscreen mode

💡 If sudo and wget above are not found, they can be installed by running the below commands:



apt-get install sudo
apt-get install wget


Enter fullscreen mode Exit fullscreen mode

Confirm that terraform has been installed by running the command to view its version:



terraform --version

Enter fullscreen mode Exit fullscreen mode




Step 3: Install Terraform Plugin

From your Jenkins dashboard navigate to Manage Jenkins >> Manage Plugins and select the Available tab. Locate this plugin by searching for Terraform and clicking on install.

Terraform-plugin

After installation of this plugin, ensure that it is enabled.

Step 4: Configure Terraform Path

Navigate to Jenkins UI and update the path to the terraform installation path:

Dashboard >> Manage Jenkins >> Global Tool Configuration >> Scroll down to Terraform and click on Terraform Installations.

Type in the installation path >> uncheck the install automatically >> apply changes and save.

Terraform-Installation

That's it! You are now ready to write a CI/CD pipeline script to integrate terraform to automate infrastructure as code (IaC) in your Jenkins Docker container.

💡 This article was first published at blog.paschalogu.com. If you found it useful, follow me on Twitter and also on LinkedIn.

Top comments (1)

Collapse
 
Sloan, the sloth mascot
Comment deleted
Retry later