Skip to content

Openstack deployment on a couple of NUCs and an old Dell Inspiron laptop.

Notifications You must be signed in to change notification settings

Jibinxavier/Openstack-Homelab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Openstack-Homelab

An Openstack deployment on a couple of NUCs and an old Dell Inspiron laptop.

TLDR

  • Improve knowledge about different distributed systems
  • Openstack has an active community and plenty of resources to setup and maintain
  • This a testbed for DevOps and SRE practices

overview based on https://docs.openstack.org/install-guide/overview.html#example-architecture

non-TLDR version

I have a keen interest in distributed systems. Given a system, I am quite interested in understanding:

  • Algorithms it uses e.g Raft for consensus
  • Components it relies on e.g Zookeeper for storing state or even NTP for clock sync
  • The assumptions made e.g data will be eventually consistent *How does its performance compare under load In short: I want to know how and why things work.

Openstack being Open Source and an active community behind it, makes it easier to setup and maintain the cluster. It was a great learning experience setting up the networking components and how it leverages Linux network stack. Also, how similar approaches can be found on projects like Kubernetes (some implementations) e.g iptables. This Furthermore, many tools support it e.g Terraform and Ansible

I work in the DevOps/SRE space, this Openstack cluster will be a testbed for tools and workflows e.g apply CI/CD to Infrastructure code. Moreover, I want to improve my development skills by building and running simple, tried- tested map-reduce to consensus algorithms like Raft.

So having a testbed completely under my control is quite enticing. The same could be achieved on cloud, but long term it might be more expensive.

Architecture

This project is work in progress.

Goals

I wanted to leverage Infrastructure as Code(IaC) as much as possible for few reasons:

  • Make it easy clear everything and build up from scratch
  • To reflect upon some of the issues that might arise with apply IaC principles in a collaborative setting

Overview

Having said that here’s the brief overview of the deployment:

overview based on https://docs.openstack.org/install-guide/overview.html#example-architecture

fig: Based on install guide

The compute nodes are connected to controller via USB ethernet adaptor OVS

Provisioning - Terraform and ansible

Ansible Playbooks are used to deploy the Openstack and Vault. The playbooks follow Openstack Installation Guide

Terraform is being used to configure Vault and also to create VMs and networks on the cluster.

More details to come

Secret management - Hashicorp Vault

Multiple approles are used to limit access. Configuration can be found openstack_setup/terraform_config/bastion_server_vault

More details to come

References

  1. Life of a Packet [I] - Michael Rubin, Google and I Can't Ping My VM! Learn How to Debug Neutron and Solve Common Problems

About

Openstack deployment on a couple of NUCs and an old Dell Inspiron laptop.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published