![](http://2.bp.blogspot.com/-ygN17wKp_hE/WEwm1tGJjDI/AAAAAAAANG0/r_EgHh6WqZYbTYelBWVAUSh8n0j8rHn2ACLcB/s1600/OpenStack-Multi-node-Linux.png)
This guide will walk you through the steps to install openstack on three different nodes in CentOS 7. As we have already covered single node installation in Red Hat, CentOS and Fedora linux in my previous article you might be interested in reading.
Controller Node:
Hostname:controller.example.com
IP Address:192.168.1.30
OS :CentOS 7
DNS:192.168.1.11
Following OpenStack Components will installed on controller node :
- Keystone
- Glance
- swift
- Cinder
- Horizon
- Neutron
- Nova novncproxy
- Novnc
- Nova api
- Nova Scheduler
- Nova-conductor
Compute Node:
Hostname:compute.example.com
IP Address:192.168.1.31
OS:CentOS 7
DNS:192.168.1.11
Following OpenStack Components will installed on compute node :
- Nova Compute
- Neutron – Openvswitch Agent
Network Node:
Hostname:network.example.com
IP Address:192.168.1.32
OS:CentOS 7
DNS:192.168.1.11
Following OpenStack Components will installed on network node :
- Neutron Server
- Neturon DHCP agent
- Neutron- Openswitch agent
- Neutron L3 agent
STEP1 - Updating All Three Nodes.
Execute the following command on all three nodes to update all installed packages.
STEP2 - Updating /etc/hosts File
Set the hostname on all the three nodes by executing the following command, if it is not set.
Update the /etc/hosts file as shown below, if you don’t have your local DNS configured.
STEP3 - Disabling SELinux and Network Manager on All Three Nodes
Execute the following command to disable SELinux on all three nodes one by one
Modify ‘SELINUX=disabled’ in the file ‘/etc/sysconfig/selinux‘ to disable it permanently
Execute the following commands to disable Network Manager on all three nodes one by one
STEP4 - Configuring Passwordless Authentication from Controller node to Compute and Network Node.
Execute the Following commands from Controller node only.
Lets verify passwordless settings by accessing compute and network node from controller node and it should not ask for password:
STEP5 - Enable RDO Repository and installing packstack
Execute the following command to enable RDO repository and install packstack on controller node only.
STEP6 - Generate and Customize Answer File
Execute the following command to generate answer file.
Edit the answer file and provide the ip address of controller, compute and network node. Also provide the passwords of different services and disable the components like Demo version and Ceilometer as shown below.
Note : If you don't have NTP server in your environment then you can leave NTP parameter as it is, but it is recommended practice to use ntp server for time synchronization and you understand its importance.
STEP7 - Installing OpenStack
Now start the openstack installation by executing the packstack command on Controller node.
Once the installation is successfully completed, you'll get the following information
![](http://2.bp.blogspot.com/-B3jJ6fhRoAE/WEwXg9GoDmI/AAAAAAAANGM/zCAt42a4mlEMBhL2X0iIwF5qXHruuXhmwCLcB/s1600/openstack-installation-completed.jpg)
During the installation, a new interface ‘br-ex‘ has been created in the network node. You can see it by executing the ifconfig -a command as shown below.
![](http://3.bp.blogspot.com/-YMmT1PrOOEk/WEwYIX6bGuI/AAAAAAAANGQ/c8kTDdoiD7cGjSO6Zi7JOiSRzsC8-33gQCLcB/s1600/br-ex-interface-openstack-network-node.jpg)
Now Add network interface (enp0s3 or eth0 or may be any other name on your node ) to the Open vSwitch ‘br-ex’ bridge as a port and assign the ip address of ‘ enp0s3’ to ‘ br-ex’ as shown below
Restart the Network service by executing the following command.
Now verify your network settings on network node by executing the ifconfig command![](http://2.bp.blogspot.com/-CQgCr5M2p9U/WEwY-xQ2XqI/AAAAAAAANGc/Kasj7eX4HlsALRDfZ906Jg9nYhvmIn1FQCLcB/s1600/configure-br-ex-openstack-network-node.jpg)
STEP8 - Accessing Openstack Web-interface Dashboard.
Open up your favorite browser and access the following url and login with use ‘admin’ and password that you specified in the answer.txt file
https://192.168.1.30/dashboard
![](http://2.bp.blogspot.com/-R6VejHnlIa8/WEwaHwkSCCI/AAAAAAAANGk/fj7K4hkZ9L44sZ2S-ukS03xKw2OmQsnMgCLcB/s1600/Openstack-multinode-dashboard-1.jpg)
Yes.....your openstack has been successfully installed
![](http://1.bp.blogspot.com/-E7nzWgyb6Ek/WEwaH5vjd-I/AAAAAAAANGg/nx5LaPJgxFoQ8KYq3DJ7-lfGQHgo5KSEQCLcB/s1600/Openstack-multinode-dashboard-2.jpg)
Note : In case you are getting ‘Error: Unable to retrieve volume limit information’ in the dashboard, this can be fixed by adding the following in the cinder.conf file on the controller node.
Restart the Cinder Service.
Since we are now able to login in the OpenStack dashboard, so it is safe to say that installation part is successfully completed. Now we need to launch an instance, and for that we will perform the following steps.
- Create Project and Users
- Assign Users to the Project.
- Create image and flavors
- Define Internal and external network
- Create Router
- Create Security Rules for Virtual Machine or instance.
STEP9 - Create a Project and add a member to the Project
Login to the dashboard using Admin credentials and navigate to Identity Tab > Projects and Click on Create Project.
![](http://4.bp.blogspot.com/-BwR89EYOIEU/WEwvMijFsCI/AAAAAAAANHE/vVEOGneLVDk42bu4VtbjciNGpda92IfowCLcB/s1600/Create-Projects-OpenStack-1.jpg)
Click on “Create Project”
To create Users , Go to Identify Tab > Users > Click on ‘Create User’
Provide the information according to your environment.
![](http://1.bp.blogspot.com/-w2XJtlfKmUU/WEwvPU1QGlI/AAAAAAAANHw/0uknFSCb9gQACCPhFwbtXocoaOuCfdrPQCLcB/s1600/Create-Projects-OpenStack-2.jpg)
Create a flavor and image :
To create a flavor login in dashboard using admin credentials , navigate to Admin Tab > Flavors > Click on create Flavor.![](http://3.bp.blogspot.com/-n7XnNKCg2X0/WEwvS2g4X5I/AAAAAAAANIU/Ek9jkx_zN9kRVUW2vn0EHIS7a4_yDZ6NACLcB/s1600/Create-Projects-OpenStack-3.jpg)
Specify the Flavor Name (fedora.small) , VCPU , Root Disk , Ephemeral Disk & Swap disk.
![](http://4.bp.blogspot.com/-Bc7ibmtn7yw/WEwvTAsKAZI/AAAAAAAANIY/5HEcyA5HuJEV0UIpeR9-vVyuFzuIrePVwCLcB/s1600/Create-Projects-OpenStack-4.jpg)
To Create Image , Go to Admin Tab > Images > Click on Create Image.
Specify the Image Name , Description, Image Soure ( in my case i am using Image File as i have already downloaded the Fedora 23 Cloud Image ) , Format QCOW2![](http://4.bp.blogspot.com/-SVJ9fEUBXEw/WEwvUJnF6OI/AAAAAAAANIg/kZ9TZ8sSkooAqDWcRGeA6a0LnOZZVDaWwCLcB/s1600/Create-Projects-OpenStack-5.jpg)
Create Network and Router for Project Innovation.
To create Network and router for Innovation project sign out of admin user and login with the new user you have created in dashboard.
Go to the Network Tab > Click on Networks > then Click on Create Network
Specify the Network Name as Internal![](http://1.bp.blogspot.com/-1awHqbdi7pU/WEwvUPUKg6I/AAAAAAAANIc/VhdHsdBs9Wo5A5hNrdVS_3UvSOYRZowFQCLcB/s1600/Create-Projects-OpenStack-6.jpg)
Click on Next..
Specify the Subnet name (sub-internal) and Network Address (10.10.0.0/24)![](http://1.bp.blogspot.com/-Bf_RUQJDa70/WEwvUMCH1jI/AAAAAAAANIk/DujpGYcOyfgm2xzxhXYzFtmmn7ci9r8_ACLcB/s1600/Create-Projects-OpenStack-7.jpg)
Click on Next.
![](http://3.bp.blogspot.com/-qI10T31Ze5g/WEwvUi8AP-I/AAAAAAAANIo/WgwAoR9_SgAfF1nasJKW0i78c04Y17IfQCLcB/s1600/Create-Projects-OpenStack-8.jpg)
VMs will be getting internal ip from DHCP Server because we enabled DHCP option for internal network.
Now Create External Network . Click on “Create Network” again , Specify Network Name as “external”
![](http://1.bp.blogspot.com/-vFnypYLwG0Q/WEwvUxPZptI/AAAAAAAANIs/MX9CNJWqJ68NOUB1xH1RwgIpukzfWAyPQCLcB/s1600/Create-Projects-OpenStack-9.jpg)
Click on Next.
Specify subnet Name as “sub-external” and Network Address as “192.168.1.0/24”
![](http://4.bp.blogspot.com/-4QaIRuFn0rw/WEwvMtfuBuI/AAAAAAAANHQ/_4uCsgKSkXkxe-Gnw5FQCr7Sv_ix43HhwCLcB/s1600/Create-Projects-OpenStack-10.jpg)
Click on Next
Uncheck “Enable DHCP” option and Specify the ip address pool for external network.![](http://1.bp.blogspot.com/-SPLMxPf592I/WEwvMjW-KiI/AAAAAAAANHI/D_9JFAaQsYIgh9mcELMPHXbNbrUSZ5ljACLcB/s1600/Create-Projects-OpenStack-11.jpg)
Click on Create.
Now time to create a Router.
Go To Network Tab > Routers > Click on ‘+ Create Router’![](http://2.bp.blogspot.com/-qJvqGWNLadM/WEwvNM216aI/AAAAAAAANHM/O7mgDhzUEjgm1Vd1RmtY3FqNsULrQ0V3wCLcB/s1600/Create-Projects-OpenStack-12.jpg)
Now Mark External network as “External” , this task can be completed only from admin user , so logout from the normal user and login as admin.
Go to Admin Tab > Networks > Click on Edit Network for “External”![](http://3.bp.blogspot.com/-X35wx2NZDrk/WEwvNeoI1dI/AAAAAAAANHU/tjZfQKqPf3ouSKZAxTa0QX6vE7R98dbqACLcB/s1600/Create-Projects-OpenStack-13.jpg)
Click on Save Changes
Now Logout from admin user and login as normal user your have created earlier
Go to Network Tab > Routers > for Router1 click on “Set Gateway”![](http://4.bp.blogspot.com/-So5IqwXa4AQ/WEwvNsk-YEI/AAAAAAAANHY/tq-RVhL5E7Q9sAvmqDcdd7YHo1pPXD2cgCLcB/s1600/Create-Projects-OpenStack-14.jpg)
Click on “Set Gateway” , this will add a interface on router and will assign the first ip of external subnet (192.168.1.0/24).
Add internal interface to router as well , Click on the “router1″ and select on “interfaces” and then click on “Add interface”![](http://3.bp.blogspot.com/-vuiU1ofySPs/WEwvOM-CaaI/AAAAAAAANHc/zIdgvpFK3zc3VMsHz9Vhgj9m2pr2MmHUQCLcB/s1600/Create-Projects-OpenStack-15.jpg)
Click on Add interface.
Network Part is completed. Now we can view Network Topology from “Network Topology” Tab![](http://4.bp.blogspot.com/-9SVfT2vP06k/WEwvOIuZ-mI/AAAAAAAANHg/_PZdigGrmygKDq-ykbFvJ3ojp0xlVDaHQCLcB/s1600/Create-Projects-OpenStack-16.jpg)
Now Create a key pair that will be used for accessing the VM and define the Security firewall rules.
For creating a key pair
Navigate to ‘Access & Security’ Tab > Click on Key Pairs > then click on ‘Create Key Pair‘![](http://1.bp.blogspot.com/-Fva3JE2umDk/WEwvOZ-voqI/AAAAAAAANHk/UuEJgMYUNkIEslfGIShI6qa5B908-ysCACLcB/s1600/Create-Projects-OpenStack-17.jpg)
It will create a Key pair with name “myssh-keys.pem”
Add a new Security Group with name ‘fedora-rules’ from Access & Security Tab. Allow 22 and ICMP from Internet ( 0.0.0.0 ).![](http://4.bp.blogspot.com/-RPn6PZy9rXs/WEwvO0sq53I/AAAAAAAANHo/Pn1nI6z8Pz0cRDvcU6TiE4lWcMdhyj2dQCLcB/s1600/Create-Projects-OpenStack-18.jpg)
Once the Security Group ‘fedora-rules’ created , click on Manage Rules and allow 22 & ICMP ping.
![](http://2.bp.blogspot.com/-2o4IRCc4Skg/WEwvPHsrnuI/AAAAAAAANHs/B-uxH2oRU0oSL6jLG0VV8BFWc5vm9QnvgCLcB/s1600/Create-Projects-OpenStack-19.jpg)
Click on Add , Similarly add a rule for ICMP.
STEP10 - Launching an instance.
Navigate to Compute Tab > Click on Instances > then click on ‘Launch Instance’![](http://4.bp.blogspot.com/-Yw0qKCmdYnw/WEwvP_LqjqI/AAAAAAAANH0/T4kKbt2MtNMq7_Kx0EUSzjHCrqLdi6LLACLcB/s1600/Create-Projects-OpenStack-20.jpg)
Specify the Instance Name , Flavor that we created in above steps and ‘Boot from image’ from Instance Boot Source option and Select Image Name ‘fedora-image’.
Click on ‘Access & Security’ and Select the Security Group ‘fedora-rules’ & Key Pair ”myssh-keys‘![](http://4.bp.blogspot.com/-xS_ZkifE6mU/WEwvQMKWLYI/AAAAAAAANH4/kIVOnqhiceg2iZta2kadDytxaRWHpvT9wCLcB/s1600/Create-Projects-OpenStack-21.jpg)
Now Select Networking and add ‘Internal’ Network and the Click on Launch
![](http://3.bp.blogspot.com/-mmNi1FnqeT0/WEwvQe4z_2I/AAAAAAAANH8/WsH0VisPyKMv4O7p6a3Sh-q3oq1S52vMwCLcB/s1600/Create-Projects-OpenStack-22.jpg)
Once the VM is launched , Associate a floating ip so that we can access the VM.
![](http://2.bp.blogspot.com/-cUCJSD0WLR0/WEwvQu3jewI/AAAAAAAANIA/rMg30RB2IOQAU1m9_ej0RguAyBF_MmciACLcB/s1600/Create-Projects-OpenStack-23.jpg)
Click on ‘Associate Floating IP‘
![](http://2.bp.blogspot.com/-gmHv_pKNdPI/WEwvRW9gakI/AAAAAAAANII/F4wlYczENcE1RCEnhUVfeVXQ-S1MIvkIACLcB/s1600/Create-Projects-OpenStack-24.jpg)
Click on Allocate IP.
![](http://3.bp.blogspot.com/-8dchpNANmAw/WEwvRK5WGbI/AAAAAAAANIE/XQOLxcaskRoA5IhWCJSG68_7YBe6fOVCACLcB/s1600/Create-Projects-OpenStack-25.jpg)
Click on Associate
![](http://2.bp.blogspot.com/-tWRteyXQOd0/WEwvRrOVzeI/AAAAAAAANIM/GYj71O08RbMuXN73craRuBxZUPHDUxgQgCLcB/s1600/Create-Projects-OpenStack-26.jpg)
Now try to access the VM with floating IP ( 192.168.1.20) using keys.
![](http://2.bp.blogspot.com/-zoksoZQIeD8/WEwvSwo2FGI/AAAAAAAANIQ/ltePN-0E6_wpRO6xxXSb5Dty0YE5WG-VQCLcB/s1600/Create-Projects-OpenStack-27.jpg)
As you can see above that we are able to access the VM using keys. Our task of launching a VM from Dashboard is Completed Now.
I hope this guide was helpful to install openstack on multi-node in your environment.