- Overview:
- OpenStack is an open source platform that uses pooled virtual resources to build and manage private and public clouds
-
It is mostly deployed as infrastructure-as-a-service (IaaS)
-
The software platform consists of interrelated components that control diverse, multi-vendor hardware pools of processing, storage, and networking resources throughout a data center.
-
OpenStack began in 2010 as a joint project of Rackspace Hosting and NASA. As of 2012, it was managed by the OpenStack Foundation, a non-profit corporate entity established in September 2012[3] to promote OpenStack software and its community.
-
- Core Components:
-
Nova: The OpenStack project that provides a way to provision compute instances (aka virtual servers). Nova supports creating virtual machines.
-
Neutron: It is the network service within OpenStack. Manages & Performs all network configurations, operations.
-
Glance: Maintains and manages server images in Cloud
-
Horizon: The implementation of OpenStack’s Dashboard, which provides a web based user interface to OpenStack services including Nova, Swift, Keystone, etc.
-
Cinder: It is the block storage service of OpenStack, providing virtual storage for virtual machines in the system.
-
Swift: The object storage component of OpenStack, is a scalable and distributed storage system.
-
Keystone: It is the authentication and authorization system of OpenStack.
-
Ubuntu download link: https://ubuntu.com/download/desktop
-
Virtual box download link: https://www.virtualbox.org/wiki/Downloads
Note: - My ubuntu version is 20.04 and my virtual box version is 6.1.34
-
Kolla provides Docker containers and Ansible playbooks to provide production-ready containers and deployment tools for operating OpenStack clouds.
-
System Requirements:
-
Operating System: Ubuntu
-
Desktop Hypervisior: VirtualBox
-
-
Virtual machine requirement:
-
2 network interfaces:
-
enp0s3: 10.0.2.15/24
-
enp0s8: 10.0.3.15/24
-
- 8GB main memory
- 2 disk with 20GB
$ sudo apt update
$ sudo apt install python3-dev libffi-dev gcc libssl-dev
- Install the virtual environment dependencies (Using virtualenv)
$ sudo apt install python3-venv
- create virtual environment
$ python3 -m venv /path/to/venv
$ source /path/to/venv/bin/activate
- Check the last version:
$ pip install -U pip
Note: using a virtual environment before run.
- Install Ansible
$ pip install 'ansible>=4,<6'
- Install Kolla-ansible:
$pip install git+https://opendev.org/openstack/kolla-ansible@master
- Install Ansible Galaxy dependencies:
$ kolla-ansible install-deps
- Create the /etc/kolla directory:
$ sudo mkdir -p /etc/kolla
$ sudo chown $USER:$USER /etc/kolla
- Copy globals.yml and passwords.yml to /etc/kolla directory:
$ cp -r /path/to/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
- Configure Ansible:
$ sudo mkdir -p /etc/ansible
$ config="[defaults]\nhost_key_checking=False\npipelining=True\nforks=100"
$ echo -e $config >> /etc/ansible/ansible.cfg
- Check configurations:
$ ansible -i all-in-one all -m ping
ping success
- Create diskspace partition for Cinder:
$ sudo pvcreate /dev/sdb
$ sudo vgcreate cinder-volumes /dev/sdb
- Generate Passwords for Kolla:
$ kolla-genpwd
- Configure globals.yml:
kolla_base_distro: "ubuntu"
network_interface: enp0s3
neutron_external_interface: enp0s8
kolla_internal_vip_address: 10.0.2.15
enable_haproxy: "no"
- Bootstrap servers with kolla deploy dependencies
- Do pre-deployment checks for hosts
- Pull Images to VM
- Deploy
- Post deloy: ( Create /etc/kolla/admin-openrc.sh )
- Install Openstack CLI:
$ pip install python-openstackclient python-glanceclient python-neutronclient
- Create /etc/kolla/admin-openrc.sh
$ source /etc/kolla/admin-openrc.sh
- Generate token:
$ openstack token issue
- Openstack Login page
- Openstack Dashboard