3.9 KiB
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:
- https://discourse.ubuntu.com/t/single-node-guided/35765
- https://microstack.run/docs/single-node-guided
:::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
:::