What is OpenStack?
According to an OpenStack definition, it is a cloud operating system that controls large pools of computing, storage, and networking resources throughout a datacenter. All managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.
Fig. 1 OpenStack
What is DevStack?
DevStack is a series of extensible scripts used to quickly bring up a complete OpenStack environment based on the latest versions of everything from Git master. It is used interactively as a development environment and as the basis for much of the OpenStack project’s functional testing.
OpenStack consists of multiple components. A user can add or remove components in OpenStack as per their need. But the OpenStack community has collaboratively identified nine key components that are a part of the “core” of OpenStack, which are distributed as a part of an OpenStack system and officially maintained by the OpenStack community.
- Nova: It is the primary computing engine behind OpenStack. It is used for deploying and managing large numbers of virtual machines
- Swift: It is a storage system for objects and files
- Cinder: It is a block storage components.
- Neutron: It provides the networking capability for OpenStack. It helps to ensure that each of the components of an OpenStack deployment can communicate with one another quickly and efficiently.
- Horizon: It is the dashboard behind OpenStack. It is the only GUI for OpenStack
- Keystone: It provides identity services for OpenStack. It is essentially a central list of all of the users of the OpenStack cloud, mapped against all of the services provided by the cloud, which they have permission to use. It provides multiple means of access, meaning developers can easily map their existing user access methods against Keystone
- Glance: It provides image services to OpenStack
- Ceilometer: It provides telemetry services, which allow the cloud to provide billing services to individual users of the cloud
- Heat: It is the orchestration component of OpenStack, which allows developers to store the requirements of a cloud application in a file that defines what resources are necessary for that application
OPENSTACK with DevStack
- DevStack supports Ubuntu 16.04/17.04
- Virtual Machine with 8GB+ RAM and 100GB+ Storage
Note: Do not use DevStack for production
1. Add “Stack” user
DevStack should be run as a non-root user with sudo enabled (standard logins to cloud images such as “Ubuntu” or “cloud-user” are usually fine). You can quickly create a separate stack user to run DevStack with,
Since this user will be making many changes to your system, it should have sudo privileges:
2. Download DevStack
You can also choose different stable versions branches of DevStack
The DevStack repo contains a script that installs OpenStack and templates for the configuration file.
3. Create a “local.conf”
Create a local.conf file with four passwords preset at the root of the DevStack Git repository
More “local.conf” options can be found here. This is the minimum required config to get started with DevStack.
4. Start the Installation
This will take a 15 – 20 minutes, largely depending on the speed of your internet connection. Many Git trees and packages will be installed during this process.
Note: DevStack environment doesn’t persist across reboots!
5. Things you can do after DevStack Installation
You now have a working DevStack. You can see that DevStack has installed keystone, glance, nova, cinder, neutron, and horizon. You can access horizon to experience the web interface for OpenStack also you can manage VMs, Networks, Volumes, and images from there. You can source openrc in your shell, and then use the OpenStack command line tool to manage your DevStack.
6. Destroy DevStack environment
Bringing down the DevStack-created cloud is easy. You need to run “unstack.sh” script and all the services are down again, freeing up the memory that these services had consumed.
DevStack is popular with developers working on OpenStack. It is used to test and verify whether the changes are working alright in OpenStack deployment. Since it is easy to use, DevStack can set up an OpenStack environment for demos and PoC.