HashiQube - DevOps Lab
Youtube Channel Medium Posts Riaan Nolan Linkedin Riaan Nolan Hashicorp Ambassador

.

HashiQube

HashiQube Logo

The Ultimate Hands-on DevOps Lab in a Docker Container

🚀 About

HashiQube is your complete DevOps playground, designed to help engineers, developers, and anyone interested in learning or demonstrating HashiCorp products. It's a self-contained environment that runs all HashiCorp products and integrates with popular open-source DevOps/DevSecOps applications.

Key Features

  • Complete HashiCorp Stack: Run Vault, Terraform, Nomad, Consul, Waypoint, Boundary, Vagrant, Packer, and Sentinel in one place.

  • Additional DevOps Tools: Includes Minikube, Ansible AWX Tower, Traefik, and more to demonstrate integration with HashiCorp products.

  • Offline Capability: Once set up, an internet connection is no longer needed, making it perfect for demos, sales pitches, and learning environments.

  • Nested Containerization: HashiQube has a Docker daemon inside, allowing you to run containers using Kubernetes (Minikube), Nomad, or Docker run.

📋 Provision

Open in GitHub Codespaces

bash docker/docker.sh
bash vault/vault.sh
bash consul/consul.sh
bash nomad/nomad.sh
bash boundary/boundary.sh
vagrant up --provision
docker compose exec hashiqube /bin/bash
bash hashiqube/basetools.sh
bash docker/docker.sh
bash docsify/docsify.sh
bash vault/vault.sh
bash consul/consul.sh
bash nomad/nomad.sh
bash boundary/boundary.sh

🎥 Introduction Video

Watch a short introduction to HashiQube. Make sure you have HashiQube running so you can follow along on your own machine!

HashiQube: A Jedi DevOps Lab Using All the HashiCorp Products

Click to watch "HashiQube: A Jedi DevOps Lab Using All the HashiCorp Products"

🔗 Resources

Find more information about HashiQube on these channels:

🛠️ Basetools Provider

The Basetools provider installs essential tools that HashiQube provisioners need. This is one of the first provisioners that must be run. It installs:

swapspace rkhunter jq curl unzip software-properties-common bzip2 git make 
python3.9 python3-pip python3-dev python3-venv python3-virtualenv golang-go 
apt-utils ntp update-motd toilet figlet nano iputils-ping dnsutils iptables telnet

Basetools Provisioner Script

The script below automates the setup of basic tools in your HashiQube environment:

filename

🌐 HashiQube.com Deployment

WORK IN PROGRESS

As you might expect, HashiQube.com is deployed using HashiCorp tools - specifically, Waypoint. Here's how it works:

1. Set Up Local Environment

# Bring up HashiQube locally with the necessary components
vagrant up --provision-with basetools,docker,terraform,nomad,waypoint

# SSH into HashiQube
vagrant ssh

2. Configure AWS Credentials

Create or edit ~/.aws/config:

[default]
region =
aws_access_key_id =
aws_secret_access_key =
output = json

3. Navigate to Project Directory

cd /vagrant

4. Initialize Waypoint

waypoint init

Output:

✓ Configuration file appears valid
✓ Connection to Waypoint server was successful
✓ Project "hashiqube" and all apps are registered with the server.
✓ Project "hashiqube" pipelines are registered with the server.

Project initialized!

You may now call 'waypoint up' to deploy your project or
commands such as 'waypoint build' to perform steps individually.

5. Deploy with Waypoint

waypoint up

This command builds and deploys the HashiQube website. The process includes:

  • Building a Docker image
  • Pushing to ECR
  • Deploying to ECS
  • Setting up load balancers and target groups

6. Cleanup Resources (When Needed)

waypoint destroy

👤 Connect

Please connect with the creator: