Charmed OpenStack refers to an implementation of the OpenStack cloud computing platform using Juju, a service modeling and deployment tool. OpenStack is an open-source software platform that enables the creation and management of private and public clouds. It provides a set of modular services for building and managing infrastructure as a service (IaaS) environments.
Charmed OpenStack simplifies the deployment and management of OpenStack by leveraging Juju’s “charms.” Charms are encapsulated packages that contain all the necessary configuration and deployment information for a specific service or application. With Charmed OpenStack, the deployment process becomes more streamlined and automated.
Juju allows users to model their entire cloud infrastructure and define the relationships between different components, such as networking, storage, and compute resources. Charms provide the building blocks for deploying and integrating these components into a cohesive OpenStack environment.
Steps to setup multi-node cloud using charmed Openstack deployment:
1. Install MAAS
Metal as a Service (MAAS) allows to configure baremetal nodes. With maas, user can PXE boot baremeta nodes and install various operating systems on those. In addition, OVS bridge can be created to setup VLAN amongst those nodes. The nodes will be tagged to assign particular jobs based on tags.
2. Install Juju
Juju controller will be the administrative node of managed cloud. In case of juju installation user needs to follow below steps:
- Add the MAAS cluster so Juju will be able to manage it as a cloud.
- Add the MAAS credentials so Juju can interact with the newly added cloud.
- Create the controller for the maas cloud e.g. name it ‘maas-controller’
- Create the model ‘openstack’
The output of the juju status command summarises the Juju aspect of the environment. It should now look very similar to this:
Model Controller Cloud/Region Version SLA Timestamp openstack maas-controller maas-one/default 2.9.43 unsupported 10:10:10Z Model "admin/openstack" is empty.
3. Install Openstack
With the help of Juju, cloud will be deployed using two command juju deploy and juju add-relation. The cloud deployment involves two levels of software:
- charms – Juju charms are delivered via the online Charmhub. Openstack charms use channels. By definition, a channel is comprised of three components: track, risk level, and branch. If a component is not specified at deploy time a default value will be used.
- charm payload – Main part of an OpenStack deploy or upgrade is the need of an application’s software sources. This will affect the software used for cloud services. A software source is typically expressed by the user with the syntax:
cloud:<ubuntu series>-<openstack-release>
4. Configure Openstack
Once openstack is installed, we need to configure for both admin and non-admin users. This stage typically involves following steps:
- Installing openstack clients
- Creating admin user environment
- Creating image and flavor
- Set up public networking
- Create the non-admin user environment
- Set up private networking
- Configure SSH and security groups
- Create and access an instance
For more details, check official documentation