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: - https://discourse.ubuntu.com/t/single-node-guided/35765 - https://microstack.run/docs/single-node-guided
Note
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
- eth0 = 192.168.3.5
- eth1 = 192.168.5.200
Update APT then install upgrades¶
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¶
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.
Bootstrapping¶
Deploy the OpenStack cloud using the cluster bootstrap command.
Warning
If you get an "Unable to connect to websocket" error, run sudo snap restart lxd
. Known Bug Report
Note
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¶
Launch a Test VM:¶
Verify the cloud by launching a VM called ‘test’ based on the ‘ubuntu’ image (Ubuntu 22.04 LTS).
!!! note Sample output: - Launching an OpenStack instance ... - Access instance withssh -i /home/ubuntu/.config/openstack/sunbeam [email protected]