xntric78 / rubiksqube

HashiQube with a whole lot more integrations

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HashiQube Overview

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 runs all HashiCorp's products

HashiQube

Purpose

HashiQube has been created to enable anyone who is 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 amount 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’ test bed 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 know open source CI/CD tools by providing a ‘hands-on’ environment that demonstrates the value of secret and credential management in 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!

Instructions

Pre-requisites

  • 10GB of disk space
  • 4GB RAM
  • Admin rights / sudo (you will be asked to update ETC Host file)
  • Virtualbox
  • Vagrant
  • vagrant up --provision

Additional Information

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
  • 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
  • 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
  • Ansible - Automation for everyone
  • LDAP - Lightweight Directory Access Protocol
  • Jenkins - The leading open source automation server
  • Snyk - Develop fast, Stay secure
  • Sonarqube - Code Quality and Security
  • 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
  • Portainer - Making Docker management easy
  • Minikube - Run Kubernetes locally
  • Istio - Connect, secure, control, and observe services
  • Docsify - A magical documentation site generator
  • Mermaid - Generation of diagram and flowchart from text in a similar manner as markdown
  • Prometheus - Open-source monitoring system with dimensional data model, flexible query language, efficient time series database & modern alerting
  • Grafana - Grafana is the open source analytics & monitoring solution for every database
  • Elasticsearch - Elasticsearch is a search engine based on the Lucene library
  • Kibana - Kibana is an open source data visualization dashboard for Elasticsearch
  • Cerebro - Cerebro is the evolution of the previous Elasticsearch plugin Elasticsearch kopf
  • Blast-Radius - Blast Radius is a tool for reasoning about Terraform dependency graphs with interactive visualizations
  • Ansible-Tower - Red Hat Ansible Tower
  • Snyk - Develop fast. Stay secure
  • Gitlab - GitLab is a complete DevOps platform, delivered as a single application
  • Nginx - Nginx (pronounced "engine-x") is an open source reverse proxy server for HTTP, HTTPS, SMTP, POP3, and IMAP protocols and a web server (origin server)

Once the stack is up you will have a large number of services running and available on localhost
For Documentation please open http://localhost:3333 in your browser

Hashicorp basic usage

HashiQube runs all HashiCorp's products

HashiQube

Other

Vagrant Basic Usage

  • 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 Basic Usage

  • docker image ls
  • docker ps
  • docker stop

Hostnames and DNS can be faked via /etc/hosts

==> user.local.dev: [vagrant-hostsupdater] Checking for host entries
==> user.local.dev: [vagrant-hostsupdater]   found entry for: 10.9.99.10 user.local.dev
==> user.local.dev: [vagrant-hostsupdater]   found entry for: 10.9.99.10 user.local.dev
==> user.local.dev: [vagrant-hostsupdater]   found entry for: 10.9.99.10 consul-user.local.dev
==> user.local.dev: [vagrant-hostsupdater]   found entry for: 10.9.99.10 vault-user.local.dev
==> user.local.dev: [vagrant-hostsupdater]   found entry for: 10.9.99.10 nomad-user.local.dev
==> user.local.dev: Setting hostname...

To investigate

CI/CD

Gatling: (load testing) https://gatling.io/open-source
Spinnaker for multi-cloud / multi swim lane CD tool: https://www.spinnaker.io/concepts/
Build agent showing code clean and dirty.
    Java
    Python
    JavaScript

Monitoring / Dash-boarding

Hygiea dashboard: https://github.com/Hygieia/Hygieia
Prometheus and Grafana for monitoring and logging: https://prometheus.io/docs/visualization/grafana/
Alerting will be handled by a local docker messaging server such as Gotify: https://github.com/gotify/server

Containerisation and API’s

Gloo: https://docs.solo.io/gloo/latest/introduction/

Support & Feedback

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 riaan.nolan@servian.com

Contributors and Special mentions

A Very special mention to HashiQube's contributors, Thank You All for your help, suggestions and contributions no matter how small <3

  • Konstantin Vanyushov
  • Tristan Morgan

License

HashiQube is available as open-source under the terms of the MIT License.

About

HashiQube with a whole lot more integrations


Languages

Language:JavaScript 96.3%Language:HTML 1.3%Language:Shell 0.8%Language:CSS 0.5%Language:Python 0.3%Language:PowerShell 0.2%Language:TypeScript 0.2%Language:Batchfile 0.1%Language:Ruby 0.1%Language:HCL 0.1%Language:Dockerfile 0.0%Language:Makefile 0.0%