<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: DevOps Playground</title>
    <description>The latest articles on DEV Community by DevOps Playground (@devopsplayground).</description>
    <link>https://dev.to/devopsplayground</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F10895%2F54c8ec34-0dfa-4735-965d-09b42771bf43.jpg</url>
      <title>DEV Community: DevOps Playground</title>
      <link>https://dev.to/devopsplayground</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devopsplayground"/>
    <language>en</language>
    <item>
      <title>Deploying a Java App to AWS with Multiple CI/CD Tools</title>
      <dc:creator>DevOps Playground</dc:creator>
      <pubDate>Sat, 14 Jun 2025 12:06:11 +0000</pubDate>
      <link>https://dev.to/devopsplayground/deploying-a-java-app-to-aws-with-multiple-cicd-tools-15ji</link>
      <guid>https://dev.to/devopsplayground/deploying-a-java-app-to-aws-with-multiple-cicd-tools-15ji</guid>
      <description>&lt;h1&gt;
  
  
  DevOps Playground Project: Deploying a Java App to AWS with Multiple CI/CD Tools (Part 1 – Overview &amp;amp; Setup)
&lt;/h1&gt;

&lt;p&gt;Welcome to &lt;strong&gt;Part 1&lt;/strong&gt; of our DevOps Playground series!&lt;/p&gt;

&lt;p&gt;In this multi-part documentation, we’ll walk through deploying a real-world &lt;strong&gt;Java (Maven) Doctor Appointment Scheduler App&lt;/strong&gt; to the cloud using various DevOps tools, CI/CD strategies, and cloud services.&lt;/p&gt;

&lt;p&gt;This project is a &lt;strong&gt;collaborative volunteer effort&lt;/strong&gt;, and we're intentionally exploring multiple DevOps stacks &lt;strong&gt;Jenkins&lt;/strong&gt;, &lt;strong&gt;GitHub Actions&lt;/strong&gt;, &lt;strong&gt;GitLab CI&lt;/strong&gt;, and more, so that our contributors gain experience with a wide range of tools used across different teams in the real world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Goal
&lt;/h2&gt;

&lt;p&gt;To &lt;strong&gt;build, test, secure, monitor&lt;/strong&gt;, and &lt;strong&gt;deploy&lt;/strong&gt; a Java-based application into &lt;strong&gt;AWS Cloud&lt;/strong&gt; using modern DevOps practices. Volunteers will work in teams or independently using different CI/CD tools to complete similar deployment goals.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Goals:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Learn and apply real-world DevOps tools and workflows&lt;/li&gt;
&lt;li&gt;Practice AWS deployment and cloud-native architecture&lt;/li&gt;
&lt;li&gt;Implement security, monitoring, automation, notifications, and CI/CD pipelines&lt;/li&gt;
&lt;li&gt;Work collaboratively across cross-functional DevOps roles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’ll follow a complete DevOps lifecycle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Source control &amp;amp; collaboration (Git/GitHub)&lt;/li&gt;
&lt;li&gt;CI/CD pipelines (Jenkins, GitHub Actions, GitLab CI)&lt;/li&gt;
&lt;li&gt;Security scanning (Dependency-Check, SBOM, Dependency-Track)&lt;/li&gt;
&lt;li&gt;Code quality (SonarQube)&lt;/li&gt;
&lt;li&gt;Artifact management (Nexus)&lt;/li&gt;
&lt;li&gt;Infrastructure as Code (Terraform)&lt;/li&gt;
&lt;li&gt;Monitoring (Prometheus + Grafana)&lt;/li&gt;
&lt;li&gt;Notifications (AWS SES, SNS)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech Stack &amp;amp; Tools Overview
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;App Type&lt;/td&gt;
&lt;td&gt;Java (Maven) Web Application&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Version Control&lt;/td&gt;
&lt;td&gt;Git, GitHub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CI/CD Tools&lt;/td&gt;
&lt;td&gt;Jenkins, GitHub Actions, GitLab CI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build &amp;amp; Package&lt;/td&gt;
&lt;td&gt;Maven, Docker&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Artifact Repository&lt;/td&gt;
&lt;td&gt;Nexus&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code Quality&lt;/td&gt;
&lt;td&gt;SonarQube&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security &amp;amp; SBOM&lt;/td&gt;
&lt;td&gt;OWASP Dependency-Check,CycloneDX, Dependency-Track&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloud Provider&lt;/td&gt;
&lt;td&gt;AWS (EC2, S3, IAM, SES, SNS ETC)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Monitoring &amp;amp; Alerting&lt;/td&gt;
&lt;td&gt;Prometheus, Grafana, AWS SNS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IaC&lt;/td&gt;
&lt;td&gt;Terraform&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Project Repository
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;GitHub Repo&lt;/strong&gt;: &lt;a href="https://github.com/DevOps-Playground-CM/doctor-appointment-scheduler-app" rel="noopener noreferrer"&gt;Doctor Appointment Scheduler&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Fork the repo, clone locally, and explore the structure. This app is Maven-based and serves as the base of our deployment pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Structure
&lt;/h2&gt;

&lt;p&gt;This project is split into multiple DevOps sub-teams to allow focused collaboration. Each team is tasked with solving the same DevOps challenges using different tools.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Team&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CI/CD Engineers&lt;/td&gt;
&lt;td&gt;Create pipelines (Jenkins / GitHub Actions / GitLab CI)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build &amp;amp; Artifacts&lt;/td&gt;
&lt;td&gt;Maven build, Nexus upload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security &amp;amp; Quality&lt;/td&gt;
&lt;td&gt;Run OWASP scans, SonarQube, Dependency Track&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Infra &amp;amp; Cloud&lt;/td&gt;
&lt;td&gt;Use Terraform &amp;amp;/or Ansible to deploy EC2 and configure AWS resources&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Monitoring &amp;amp; Notifications&lt;/td&gt;
&lt;td&gt;Prometheus + Grafana setup, alerts via SNS &amp;amp; SES&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Project Phases
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Phase 1 – Setup &amp;amp; Planning
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Fork &amp;amp; clone the repo, understand codebase&lt;/li&gt;
&lt;li&gt;Understand application structure and dependencies&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase 2 – Infrastructure Setup
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Provision pipelines (Jenkins / GitHub Actions / GitLab CI)&lt;/li&gt;
&lt;li&gt;Build Maven app, run tests, check quality (SonarQube), scan deps&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase 3 – CI/CD Pipelines &amp;amp; Cloud Integration
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Build app with Maven&lt;/li&gt;
&lt;li&gt;Run unit tests&lt;/li&gt;
&lt;li&gt;Code analysis&lt;/li&gt;
&lt;li&gt;Package JAR&lt;/li&gt;
&lt;li&gt;Scan for vulnerabilities&lt;/li&gt;
&lt;li&gt;Store artifacts&lt;/li&gt;
&lt;li&gt;Tag releases and maintain release history&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase 4 – Application Deployment
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Deploy to AWS&lt;/li&gt;
&lt;li&gt;Send deployment notifications via email or Slack&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase 5 Monitoring &amp;amp; Observability
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Set up application and infra-level metrics&lt;/li&gt;
&lt;li&gt;Configure alerts&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase 5 – Security &amp;amp; Reporting
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Run OWASP scans, create SBOM&lt;/li&gt;
&lt;li&gt;Upload to Dependency-Track&lt;/li&gt;
&lt;li&gt;Capture security + code quality reports&lt;/li&gt;
&lt;li&gt;Schedule scans and produce vulnerability reports&lt;/li&gt;
&lt;li&gt;Ensure pipeline breaks on critical vulnerabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Next up:&lt;/strong&gt; Part 2A – Designing the End-to-End DevOps Architecture &lt;em&gt;(coming soon)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We’ll compare approaches, issues, and what makes each tool unique.&lt;/p&gt;

&lt;h2&gt;
  
  
  Join Us
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://devopsplayground.online" rel="noopener noreferrer"&gt;Visit DevOps Playground Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/company/devops-playground/" rel="noopener noreferrer"&gt;Follow us on LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Note
&lt;/h2&gt;

&lt;p&gt;This is more than a tutorial—it's a &lt;strong&gt;live DevOps project with real people&lt;/strong&gt;, real challenges, and real learning.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>aws</category>
      <category>cicd</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Installing AWS CLI v2</title>
      <dc:creator>DevOps Playground</dc:creator>
      <pubDate>Sat, 07 Jun 2025 16:18:08 +0000</pubDate>
      <link>https://dev.to/devopsplayground/installing-aws-cli-v2-1cjh</link>
      <guid>https://dev.to/devopsplayground/installing-aws-cli-v2-1cjh</guid>
      <description>&lt;p&gt;The AWS Command Line Interface (AWS CLI) is a unified tool to manage your AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts.&lt;/p&gt;

&lt;p&gt;Here’s a complete guide for installing the &lt;strong&gt;AWS Command Line Interface (CLI)&lt;/strong&gt; on major platforms:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;For Windows&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Download the installer:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://awscli.amazonaws.com/AWSCLIV2.msi" rel="noopener noreferrer"&gt;64-bit Windows&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Run the downloaded &lt;code&gt;.msi&lt;/code&gt; file and follow the setup wizard.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify installation:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;aws&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--version&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   aws-cli/2.x.x Python/X.x.x Windows/x86_64
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;For macOS&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Using the official installer:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Download the installer:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl &lt;span class="s2"&gt;"https://awscli.amazonaws.com/AWSCLIV2.pkg"&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; &lt;span class="s2"&gt;"AWSCLIV2.pkg"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Install it:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;sudo &lt;/span&gt;installer &lt;span class="nt"&gt;-pkg&lt;/span&gt; AWSCLIV2.pkg &lt;span class="nt"&gt;-target&lt;/span&gt; /
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Verify installation:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   aws &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Or, using Homebrew (if installed):
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;awscli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;For Linux&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Download and unzip the installer:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl &lt;span class="s2"&gt;"https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip"&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; &lt;span class="s2"&gt;"awscliv2.zip"&lt;/span&gt;
   unzip awscliv2.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Install it:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;sudo&lt;/span&gt; ./aws/install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Verify:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   aws &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Post-install: Configure AWS CLI&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;After installation, configure with your AWS credentials:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws configure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll be prompted for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AWS Access Key ID&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AWS Secret Access Key&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Default region name&lt;/strong&gt; (e.g., &lt;code&gt;us-east-1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Default output format&lt;/strong&gt; (e.g., &lt;code&gt;json&lt;/code&gt;, &lt;code&gt;table&lt;/code&gt;, &lt;code&gt;text&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Official AWS CLI docs: &lt;a href="https://docs.aws.amazon.com/cli/latest/userguide/" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/cli/latest/userguide/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;AWS CLI GitHub: &lt;a href="https://github.com/aws/aws-cli" rel="noopener noreferrer"&gt;https://github.com/aws/aws-cli&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>aws</category>
      <category>awscli</category>
      <category>linux</category>
    </item>
    <item>
      <title>Terraform Installation Guide</title>
      <dc:creator>DevOps Playground</dc:creator>
      <pubDate>Thu, 05 Jun 2025 14:08:02 +0000</pubDate>
      <link>https://dev.to/devopsplayground/terraform-installation-guide-492i</link>
      <guid>https://dev.to/devopsplayground/terraform-installation-guide-492i</guid>
      <description>&lt;h2&gt;
  
  
  What is Terraform?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Terraform&lt;/strong&gt; is an open-source &lt;strong&gt;Infrastructure as Code (IaC)&lt;/strong&gt; tool developed by HashiCorp. It allows you to define, provision, and manage infrastructure across various cloud providers using configuration files.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Installation Methods (by OS)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Windows
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Method 1: Install via Chocolatey (Recommended)
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;Requires &lt;a href="https://chocolatey.org/install" rel="noopener noreferrer"&gt;Chocolatey&lt;/a&gt; to be installed.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;choco&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;terraform&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Method 2: Manual Installation
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Visit the official site: &lt;a href="https://www.terraform.io/downloads.html" rel="noopener noreferrer"&gt;https://www.terraform.io/downloads.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Download the &lt;strong&gt;Windows zip&lt;/strong&gt; file.&lt;/li&gt;
&lt;li&gt;Extract the zip and move &lt;code&gt;terraform.exe&lt;/code&gt; to a directory of your choice (e.g., &lt;code&gt;C:\terraform&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Add this directory to your &lt;strong&gt;System PATH&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Search &lt;strong&gt;“Environment Variables”&lt;/strong&gt; &amp;gt; &lt;strong&gt;Edit system environment variables&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;System Variables&lt;/strong&gt;, find &lt;code&gt;Path&lt;/code&gt; → Edit → Add &lt;code&gt;C:\terraform&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Open a new Command Prompt and verify:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;terraform &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  macOS
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Method 1: Using Homebrew (Recommended)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew tap hashicorp/tap
brew &lt;span class="nb"&gt;install &lt;/span&gt;hashicorp/tap/terraform
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Method 2: Manual Installation
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Download the macOS zip from &lt;a href="https://www.terraform.io/downloads.html" rel="noopener noreferrer"&gt;https://www.terraform.io/downloads.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Extract and move &lt;code&gt;terraform&lt;/code&gt; to &lt;code&gt;/usr/local/bin&lt;/code&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo mv &lt;/span&gt;terraform /usr/local/bin/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Verify the installation:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;terraform &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Linux (Ubuntu/Debian-based)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Method 1: Official HashiCorp APT Repo
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; gnupg software-properties-common curl

curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://apt.releases.hashicorp.com/gpg | &lt;span class="nb"&gt;sudo &lt;/span&gt;gpg &lt;span class="nt"&gt;--dearmor&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /usr/share/keyrings/hashicorp-archive-keyring.gpg

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;&lt;span class="s2"&gt;
https://apt.releases.hashicorp.com &lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;lsb_release &lt;span class="nt"&gt;-cs&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt; main"&lt;/span&gt; | &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nb"&gt;sudo tee&lt;/span&gt; /etc/apt/sources.list.d/hashicorp.list

&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;terraform
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Method 2: Manual Installation
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Download the Linux zip from &lt;a href="https://www.terraform.io/downloads.html" rel="noopener noreferrer"&gt;https://www.terraform.io/downloads.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Unzip and move binary:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;unzip terraform_&lt;span class="k"&gt;*&lt;/span&gt;.zip
&lt;span class="nb"&gt;sudo mv &lt;/span&gt;terraform /usr/local/bin/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Verify:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;terraform &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Verifying Installation
&lt;/h2&gt;

&lt;p&gt;After installation, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;terraform version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output should be like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Terraform v....
on linux_amd64
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Updating Terraform
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using Homebrew (macOS)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew upgrade terraform
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using Chocolatey (Windows)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;choco&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;upgrade&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;terraform&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using APT (Linux)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;terraform
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Common Troubleshooting
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;terraform: command not found&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ensure &lt;code&gt;terraform&lt;/code&gt; binary is in your PATH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terraform version shows as outdated&lt;/td&gt;
&lt;td&gt;Run update via package manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Error downloading providers&lt;/td&gt;
&lt;td&gt;Check internet connection or proxy issues&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File permission denied (Linux/macOS)&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;chmod +x terraform&lt;/code&gt; and &lt;code&gt;sudo&lt;/code&gt; if needed&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>devops</category>
      <category>terraform</category>
      <category>linux</category>
    </item>
    <item>
      <title>Setting Up a DevOps Playground Server with Vagrant and VirtualBox</title>
      <dc:creator>DevOps Playground</dc:creator>
      <pubDate>Thu, 22 May 2025 08:42:33 +0000</pubDate>
      <link>https://dev.to/devopsplayground/setting-up-a-devops-playground-server-with-vagrant-and-virtualbox-3gki</link>
      <guid>https://dev.to/devopsplayground/setting-up-a-devops-playground-server-with-vagrant-and-virtualbox-3gki</guid>
      <description>&lt;p&gt;In today’s cloud-centric world, setting up servers across various platforms is easier than ever. Cloud providers such as AWS, GCP, Linode, and DigitalOcean etc offer powerful infrastructure suitable for production environments and large-scale applications. However, for local development and experimentation in a DevOps context, Vagrant provides a simple, free, and open-source tool for creating and managing virtual machines on your own system. In this guide, we’ll focus on setting up a DevOps playground ubuntu server using Vagrant and VirtualBox, ideal for learning and testing DevOps tools and methodologies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vagrant boxes
&lt;/h2&gt;

&lt;p&gt;Vagrant boxes are pre-packaged, reusable base images that define the operating system and environment for your Vagrant virtual machines. They serve as the foundation for your development environment, allowing you to quickly spin up instances with consistent configurations. Vagrant boxes can be customized further through the Vagrantfile, where you can specify software installations, network settings, and other configurations.&lt;/p&gt;

&lt;p&gt;Vagrant boxes are stored and shared on platforms like &lt;a href="https://app.vagrantup.com/" rel="noopener noreferrer"&gt;Vagrant Cloud&lt;/a&gt;, where you can find a variety of images for different operating systems and use cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing a Vagrant Box
&lt;/h2&gt;

&lt;p&gt;For this DevOps playground setup, we recommend using the Ubuntu 20.04 LTS (Focal Fossa) box, known for its stability and wide community support. Alternatively, you can use Ubuntu 18.04 (Bionic Beaver) if preferred. Both versions are available on Vagrant Cloud.&lt;/p&gt;

&lt;p&gt;Box Name: &lt;code&gt;ubuntu/trusty64&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Provider: VirtualBox (can be used with other providers as well)&lt;/p&gt;

&lt;h3&gt;
  
  
  Setting Up a Local Server on Windows with Vagrant and VirtualBox
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Step 1: Install Prerequisites
&lt;/h4&gt;

&lt;p&gt;Install VirtualBox: Download and install &lt;a href="https://www.virtualbox.org/" rel="noopener noreferrer"&gt;VirtualBox&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Install Vagrant: Download and install &lt;a href="https://www.vagrantup.com/" rel="noopener noreferrer"&gt;Vagrant&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Step 2: Initialize a Vagrant Project&lt;br&gt;
Create a New Directory: This is where your Vagrant configuration and files will reside.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir devops-playground-vms &amp;amp;&amp;amp; cd devops-playground-vms
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a directory specific to the vm type: This is where your Vagrant configuration and files will reside.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir ubuntu-bionic &amp;amp;&amp;amp; cd ubuntu-trusty64
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Initialize Vagrant: This creates a Vagrantfile in your project directory, specifying the base box and settings for your virtual machine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vagrant init ubuntu/trusty64
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start Your VM: Launch your VM with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vagrant up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;SSH into Your VM: Connect to your virtual machine using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vagrant ssh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install any additional tools as needed for your DevOps tasks&lt;/p&gt;

&lt;p&gt;Once your VM is running, you can install DevOps tools such as Docker, Ansible, or any other software relevant to your environment.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
You have now completed the setup for a DevOps playground server, either using AWS for cloud-based services or Vagrant and VirtualBox for a local environment. Both setups provide a flexible and powerful platform for exploring DevOps tools and methodologies.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>vagrant</category>
      <category>virtualmachine</category>
    </item>
  </channel>
</rss>
