Files
docs/Virtualization Documentation/OpenStack/Canonical OpenStack.md
Nicole Rappe b9aeaabbfb Initial Commit
Bringing Documentation into Gitea
2023-12-21 01:15:09 -07:00

3.9 KiB
Raw Blame History

sidebar_position
sidebar_position
2

Canonical OpenStack

OpenStack is basically a virtual machine hypervisor that is HA and cluster-friendly. This particular variant is deployed via Canonical's MiniStack environment using SNAP. It will deploy OpenStack onto a single node, which can later be expanded to additional nodes. You can also use something like OpenShift to deploy a Kubernetes Cluster onto OpenStack automatically via its various APIs.

Reference Documentation:

:::note Prerequisites This document assumes your bare-metal host server is running Ubuntu 22.04 LTS, has at least 16GB of Memory (32GB for Multi-Node Deployments), two network interfaces (one for management, one for remote VM access), 200GB of Disk Space for the root filesystem, another 200GB disk for Ceph distributed storage, and 4 processor cores. See Single-Node Mode System Requirements :::

:::note Assumed Networking on the First Cluster Node

  • eth0 = 192.168.3.5
  • eth1 = 192.168.5.200 :::

Update APT then install upgrades

sudo apt update && sudo apt upgrade -y && sudo apt install htop ncdu iptables nano -y

:::tip At this time, it would be a good idea to take a checkpoint/snapshot of the server (if it is a virtual machine). This gives you a starting point to come back to as you troubleshoot inevitable deployment issues. :::

Update SNAP then install OpenStack SNAP

sudo snap refresh
sudo snap install openstack --channel 2023.1

Install & Configure Dependencies

Sunbeam can generate a script to ensure that the machine has all of the required dependencies installed and is configured correctly for use in MicroStack.

sunbeam prepare-node-script | bash -x && newgrp snap_daemon
sudo reboot

Bootstrapping

Deploy the OpenStack cloud using the cluster bootstrap command.

sunbeam cluster bootstrap

:::caution If you get an "Unable to connect to websocket" error, run sudo snap restart lxd. Known Bug Report ::: :::note Bootstrap Variables:

  • Management networks shared by hosts = 192.168.3.0/24
  • MetalLB address allocation range (supports multiple ranges, comma separated) (10.20.21.10-10.20.21.20): 192.168.3.50-192.168.3.60 :::

Cloud Initialization:

  • nicole@moon-stack-01:~$ sunbeam configure --openrc demo-openrc
  • Local or remote access to VMs [local/remote] (local): remote
  • CIDR of network to use for external networking (10.20.20.0/24): 192.168.5.0/24
  • IP address of default gateway for external network (192.168.5.1):
  • Populate OpenStack cloud with demo user, default images, flavors etc [y/n] (y):
  • Username to use for access to OpenStack (demo): nicole
  • Password to use for access to OpenStack (Vb********): <PASSWORD>
  • Network range to use for project network (192.168.122.0/24):
  • List of nameservers guests should use for DNS resolution (192.168.3.11 192.168.3.10):
  • Enable ping and SSH access to instances? [y/n] (y):
  • Start of IP allocation range for external network (192.168.5.2): 192.168.5.201
  • End of IP allocation range for external network (192.168.5.254): 192.168.5.251
  • Network type for access to external network [flat/vlan] (flat):
  • Free network interface that will be configured for external traffic: eth1
  • WARNING: Interface eth1 is configured. Any configuration will be lost, are you sure you want to continue? [y/n]: y

Pull Down / Generate the Dashboard URL

sunbeam openrc > admin-openrc
sunbeam dashboard-url

Launch a Test VM:

Verify the cloud by launching a VM called test based on the ubuntu image (Ubuntu 22.04 LTS).

sunbeam launch ubuntu --name test

:::note Sample output: Launching an OpenStack instance ... Access instance with ssh -i /home/ubuntu/.config/openstack/sunbeam ubuntu@10.20.20.200 :::