Install Canonical OpenStack using the manual bare metal provider¶
This how-to guide provides all necessary information to install Canonical OpenStack with Sunbeam using the manual bare metal provider.
Make sure you get familiar with the following sections before proceeding with any instructions listed below:
Note
This how-to guide is intended to serve operators willing to deploy a production-grade cloud. If you’re looking for some simple learning materials instead, please refer to the Tutorials section of this documentation.
Requirements¶
You will need:
two dedicated physical networks with an unlimited access to the Internet
one dedicated physical machine with:
hardware specifications matching minimum hardware specifications for the Cloud node as documented under the Enterprise requirements section
fresh Ubuntu Server 24.04 LTS installed
If you can’t provide an unlimited access to the Internet, see the Manage a proxied environment section.
Additional machines can be added later. See the Scaling the cluster out how-to guide.
Install Canonical OpenStack¶
When using the manual bare metal provider, Canonical OpenStack installation process is relatively simple and takes around 30 minutes to complete, depending on your Internet connection speed.
Warning
Canonical Juju does not yet support controller HA modeling capabilities when deployed on top
Kubernetes. This means that Canonical OpenStack clouds deployed using the manual bare metal
provider do not provide HA for all types of governance functions by default. To bypass this
limitation Canonical recommends using an external highly available Juju controller. External
controller has to be registered before running the sunbeam cluster bootstrap
command.
Install the snap¶
First, install the openstack
snap:
sudo snap install openstack
This will install the latest stable version by default. You can use the --channel
switch to
install a different version of OpenStack instead.
To list all available versions, execute the following command:
snap info openstack
Prepare the machine¶
To prepare the machine for Canonical OpenStack usage, execute the following command:
sunbeam prepare-node-script --bootstrap | bash -x && newgrp snap_daemon
This command will:
ensure all required software dependencies are installed, including the
openssh-server
,configure passwordless access to the
sudo
command for all terminal commands for the currently logged in user (i.e.NOPASSWD:ALL
).
Alternatively, you can let Sunbeam generate a script that you can further review and execute step by step:
sunbeam prepare-node-script --bootstrap
Bootstrap the cloud¶
To bootstrap the cloud, execute the following command:
sunbeam cluster bootstrap --role control,compute,storage
This will assign all roles (control
, compute
, storage
) to the machine by default.
You can use the --role
switch to narrow them down. See the Architecture section for more
details.
When prompted, answer some interactive questions. Below is a sample output from the cloud-1 machine from the Example physical configuration section:
Management network (172.16.1.0/24): 172.16.1.0/24
Use proxy to access external network resources? [y/n] (n): n
Enter a region name (cannot be changed later) (RegionOne): RegionOne
OpenStack APIs IP ranges (172.16.1.201-172.16.1.240): 172.16.1.201-172.16.1.240
Ceph devices (/dev/disk/by-id/wwn-0x500a0751e86b8eee): /dev/sdb
You can also refer to the Interactive configuration prompts section for detailed description of each of those questions and some examples.
Also note that answers to all those questions can be automated with the use of a Deployment manifest.
One finished, you should be able to see the following message on your screen:
Node has been bootstrapped with roles: storage, compute, control
Configure the cloud¶
Finally, configure the cloud for sample usage:
sunbeam configure
Unless directed otherwise, this command will create sample project and user account. You can use
the --openrc
switch to automatically generate an OpenStack RC file for this user (e.g.
--openrc my-openrc
).
When prompted, answer some interactive questions. Below is a sample output from the cloud-1 machine from the Example physical configuration section:
Local or remote access to VMs [local/remote] (local): remote
External network (172.16.2.0/24): 172.16.2.0/24
External network's gateway (172.16.2.1): 172.16.2.1
External network's allocation range (172.16.2.2-172.16.2.254): 172.16.2.2-172.16.2.254
External network's type [flat/vlan] (flat): flat
Populate OpenStack cloud with demo user, default images, flavors etc [y/n] (y): y
Username to use for access to OpenStack (demo): demo
Password to use for access to OpenStack (IY********):
Project network (192.168.0.0/24): 192.168.0.0/24
Project network's nameservers (172.16.1.11 8.8.8.8 172.16.1.1 192.168.2.22 172.16.1.14): 8.8.8.8
Enable ping and SSH access to instances? [y/n] (y): y
External network's interface [eno2] (eno2): eno2
You can also refer to the Interactive configuration prompts section for detailed description of each of those questions and some examples.
Also note that answers to all those questions can be automated with the use of a Deployment manifest.
One finished, you should be able to see the following message on your screen:
The cloud has been configured for sample usage.
You can start using the OpenStack client or access the OpenStack dashboard at http://172.16.1.203:80/openstack-horizon
Note that the IP address of the OpenStack dashboard (here 172.16.1.203
) might be different
in your environment.