HashiQube is a VM with a Docker daemon inside. It runs all HashiCorp products. Vault, Terraform, Nomad, Consul, Vagrant, Packer and Sentinel. It also runs a host of other popular Open Source DevOps / DevSecOps applications showcasing how simple integration with HashiCorp products can result in tangible learnings and benefits for all its users Once the Qube is up an internet connection is no longer needed meaning sales pitches and demos for potential and existing customers is greatly aided.
HashiQube has been created to enable anyone interested in secure automation pipelines the ability to run a suite of 'best in class' tools their local machines at the cost of a small number of system resources. The Qube gives all interested parties the empowerment to deploy these tools in a way covers multiple use cases effectively providing a 'concept to completion' testbed using open-source HashiCorp products.
The original use case was born the desire to demystify DevSecOps utilising Terraform, Vault, Consul, Sentinel and Nomad as well as some other well known open source CI/CD tools by providing a 'hands-on' environment that demonstrates the value of secret and credential management in a standard software development pipeline.
Thanks to the flexibility of the HashiCorp products there is no need wonder how to achieve the goals of bringing software to market in a more secure and timely fashion, just Vagrant up!
- Please download Virtualbox from https://www.virtualbox.org/wiki/Downloads and Vagrant from https://www.vagrantup.com/downloads.html and install
- Using
git
- clone this repogit clone $repo .
What is Git? - Inside the local repo folder, do
vagrant up --provision
- This will setup, Vault, Nomad, Consul, Terraform, Localstack and Docker as well as giving you access the docsify website at https://localhost:3333 - To run a specific service you want to use run the declarative command for it, for example,
vagrant up --provision-with nomad
- Open in your browser https://localhost:3333 for Documentation
Local DNS via Consul
Add on our local Macbook a file /etc/resolver/consul with below contents
nameserver 10.9.99.10
port 8600
Now you can use DNS like nomad.service.consul:9999 vault.service.consul:9999 via Fabio Load Balancer
- 10GB of disk space
- 4GB RAM
- Admin rights / sudo (you will be asked to update ETC Host file)
- Virtualbox
- Vagrant
vagrant up --provision
This repository is designed to provide you with a stack that demonstrates the power of HashiCorp's product suite with non-enterprise editions of the following software;
- Vagrant - Development Environments Made Easy
- Multi Cloud - Hashiqube on AWS, GCP and Azure (Clustered) https://registry.terraform.io/modules/star3am/hashiqube/hashicorp/latest
- Vault - Manage Secrets and Protect Sensitive Data
- Consul - Secure Service Networking
- Nomad - Deploy and Manage Any Containerized, Legacy, or Batch Application
- Terraform - Use Infrastructure as Code to provision and manage any cloud, infrastructure, or service
- Packer - Build Automated Machine Images
- Sentinel - Sentinel is an embedded policy-as-code framework
- Waypoint - Waypoint is an open source solution that provides a modern workflow for build, deploy, and release across platforms
- Boundary - Simple and secure remote access to any system from anywhere based on user identity.
- Fabio - Fabio is an HTTP and TCP reverse proxy that configures itself with data from Consul
- Docker - Securely build, share and run any application, anywhere
- Localstack - A fully functional local AWS cloud stack
- LDAP - Lightweight Directory Access Protocol
- Jenkins - The leading open source automation server
- Oracle MySQL - MySQL is an open-source relational database management system (RDBMS)
- Microsoft MSSQL - Microsoft SQL Server is a relational database management system developed by Microsoft
- PostgreSQL - PostgreSQL, also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance
- Docsify - A magical documentation site generator
Once the stack is up you will have a large number of services running and available on localhost
For Documentation please open https://localhost:3333 in your browser
- Vault https://localhost:8200
- Nomad https://localhost:4646
- Consul https://localhost:8500
- Localstack https://localhost:8080
- Terraform Enterprise (enterprise needs a licence) https://localhost:8800
- LDAP can be accessed on ldap:https://localhost:389
- Localstack web https://localhost:8080
- Jenkins https://localhost:8088
- Oracle MySQL localhost:3306
- Microsoft SQL localhost:1433
- vagrant up --provision OR vagrant up --provision-with bootstrap|nomad|consul|vault|docker|ldap
- vagrant global-status # to see which VMs are active
- vagrant global-status --prune # to remove stale VMs from Vagrant cache
- vagrant status # vagrant status
- vagrant reload
- vagrant up
- vagrant destroy
- vagrant provision
- vagrant plugin list
- docker image ls
- docker ps
- docker stop
For suggestions, feedback and queries please branch or and submit a Pull Request or directly contact the architects of the HashiQube via email:
Lead Automation Architect [email protected]
A Very special mention to HashiQube's contributors, Thank You All for your help, suggestions and contributions no matter how small <3
- Thomas Cockin
- Konstantin Vanyushov
- Tristan Morgan
- Ringo Chan
- Ehsan Mirzaei
HashiQube is available as open-source under the terms of the MIT License.