84 lines
3.9 KiB
Markdown
84 lines
3.9 KiB
Markdown
---
|
||
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](https://ubuntu.com/openstack/install)
|
||
:::
|
||
|
||
:::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](https://bugs.launchpad.net/snap-openstack/+bug/2033400)
|
||
:::
|
||
:::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`
|
||
::: |