In this series of blogs, I am going to give a quick overview of OpenStack and learn how to install it using Mirantis.
“Mirantis is the #1 pure play OpenStack company. More customers rely on Mirantis than any other company to scale out OpenStack without vendor lock-in”
OpenStack is an open source Infrastructure as a Service (IaaS) platform and was born in July 2010 as a collaboration between NASA and Rackspace.
OpenStack is not monolithic but is composed of several projects. I am not going to detail in all of them now but here are the components I am going to install in the lab :
- Horizon : OpenStack Dashboard
- Keystone : handles all the authentification processes
- Neutron : creates virtual networks
- Nova : heart of the OpenStack project, provides virtualization capabilities
- Cinder: provides persistent storage to the instances
- Glance: provides ready operating systems to the virtual instances
Of course, there are many ways to install OpenStack :
- manually –> not recommended because very difficult to maintain
- using a deployment tool like : Ansible, Puppet, Chef, etc ..
- using a distribution like :
- Mirantis –> which uses Fuel as automation tool
- Red Hat –> which is based on TripleO
- Rackspace –> which uses Ansible
- Canonical –> which uses Juju and MaaS amoung other tools
Distributions are here to handle:
- OpenStack’s lifecycle
- Patches & Upgrades
- Bug fixing and so on..
In this series of blogs I am going to focus on Mirantis which is one of the best ways to get an OpenStack stable, up and running very quickly.
As said before, Mirantis uses Fuel (based on Puppet) as a deployment tool for OpenStack.
This is how the architecture of Fuel looks like:
- Web UI : provides the Fuel User Interface based on Nginx
- Keystone : for the authentification process
- PosgreSQL Database: stores Fuel Master’s informations, about the deployment of the Fuel slave nodes
- Nailgun : is the heart of the Fuel project which basically converts the choice of the user into commands for Astute workers
- AMQP : is the message queue which Nailgun uses to give orders to Astute workers
- Astute : gives node’s configuration to Cobbler and reboot the Fuel slaves node to let Cobller do its job
- Cobbler : installs the base Operating System on the Fuel slave nodes
- MCollective : Orchestration tool for deploying Puppet via MCollective agents
- MCollective agents: run on all Fuel slave node
– Virtual Box 4.2.12 – 5.0.x
– VirtualBox Extension Pack (to enable PXE boot)
can be downloaded at: https://www.virtualbox.org/wiki/Downloads
– Mirantis 9.0 ISO and Mirantis VirtualBox scripts
can be download it from https://www.mirantis.com/how-to-install-openstack/
– 64 bit host operating system
– 8GB RAM at least
– 300GB+ Disk
1. Download the openstack/fuel-virtualbox project:
$ git clone https://github.com/openstack/fuel-virtualbox.git Cloning into 'fuel-virtualbox'... remote: Counting objects: 741, done. remote: Total 741 (delta 0), reused 0 (delta 0), pack-reused 741 Receiving objects: 100% (741/741), 338.50 KiB | 0 bytes/s, done. Resolving deltas: 100% (492/492), done. Checking connectivity... done.
2. Go to the fuel-virtualbox directory and put the Mirantis OpenStack .ISO in the iso/ directory
$ cd fuel-virtualbox/ $ ls -l total 104 drwx------ 1 sbe sbe 4096 Oct 4 11:14 actions -rw------- 1 sbe sbe 1091 Jun 15 15:04 clean.sh -rw------- 1 sbe sbe 7277 Oct 10 10:14 config.sh drwx------ 1 sbe sbe 0 Oct 3 14:02 contrib drwx------ 1 sbe sbe 0 Oct 3 14:02 drivers -rw------- 1 sbe sbe 61122 Jun 15 15:04 dumpkeys.cache drwx------ 1 sbe sbe 4096 Oct 4 10:44 functions drwx------ 1 sbe sbe 0 Oct 10 10:11 iso -rw------- 1 sbe sbe 653 Oct 4 10:40 launch_16GB.sh -rw------- 1 sbe sbe 652 Jun 15 15:04 launch_8GB.sh -rw------- 1 sbe sbe 1308 Jun 15 15:04 launch.sh -rw------- 1 sbe sbe 1462 Jun 15 15:04 MAINTAINERS -rw------- 1 sbe sbe 1939 Jun 15 15:04 README.md
You can see that there are two launch_X.sh file; one for 16GB and one for 8 GB. For testing purpose I will use the launch_8GB.sh script. One important file here is config.sh because it is where you set up the hardware configurations (RAM, Disk, CPU) for the Fuel master node and the Fuel slave nodes. You can have a look on it for more details. If you run a 16GB RAM machine, then you can use the “launch_16GB.sh” script.
By default, for 8 GB, the script will create 4 machines:
– one Fuel Master node with 2 GB RAM and 60 GB disk
– 3 Fuel slave nodes with 1.5 GB RAM and 3 disk of 65 GB
So the lab will looklike to this :
- PXE network : used by the Fuel Master node administrate the Fuel slave nodes and install OpenStack
- Managament network : for OpenStack services communication within the cloud
- External network : to access the Internet
- Private network : the inter-instances communication network within the OpenStack cloud
- Storage network : used by instances to access the storage
3. Then launch the script :
$ ./launch_8GB.sh Prepare the host system... Checking for 'dumpkeys.cache'... OK Checking for 'expect'... OK Checking for 'xxd'... OK Checking for 'VBoxManage'... OK Checking for VirtualBox Extension Pack... OK Checking for VirtualBox iPXE firmware...SKIP VirtualBox iPXE firmware is not found. Used standard firmware from the VirtualBox Extension Pack. Checking for Mirantis OpenStack ISO image... OK Going to use Mirantis OpenStack ISO file: iso/MirantisOpenStack-9.0.iso Checking if SSH client installed... OK Checking if ipconfig or ifconfig installed... OK Done.
Now the Fuel Master node is going to download a special Linux image.
Once the bootstrap image is downloaded the Fuel slave nodes boots up with this image :
This image will send to the Fuel Master all the hardware informations of the Fuel slave nodes which are called “facts”.
This is an important step because via this image the Fuel Master node will discover the slave nodes.
Slave nodes have been created. They will boot over PXE and get discovered by the master node. To access master node, please point your browser to: http://10.20.0.2:8000/ The default username and password is admin:admin
This concludes the first part of the blog. In the next blog, I will show you the interface of Fuel and how to install OpenStack on the Fuel slave nodes.