TripleO UnderCloud Installation on CentOS 7

In this tutorial I am going show you Tripleo (OpenStack on OpenStack) UnderCloud installation on CentOs 7 VM. We will see step by step UnderCloud installation and configuration on CentOS 7 VM. We will also know what is UnderCloud and how it is work? So lets start.

What is TripleO UnderCloud?

TripleO is know as OpenStack on OpenStack. TripleO is an OpenStack Deployment & Management tool. We can divided tripleo into 2 node, first is UnderCloud and second is OverCloud. UnderCloud is also know as Director node in RHEL terminology. UnderCloud is used to manage Overcloud. We can use UnderCloud to deploy OverCloud Controller node, Compute node, Network node and Storage node.

We can install all OpenStack services in UnderCloud and we can deploy Controller node, Compute node Network node and Storage node as per our requirement as like Linux kickstart server.

Here you can see TripleO architectures.

Undercloud is a single node OpenStack installation which can be deploy either in a Virtual machine or in bare metal server. The main objective of undercloud is to install, test, manage and update its overcloud servers (Controller, Compute & Storage nodes). Basically UnderCloud contains all the images that is required to deployed Overcloud Controller, Computes, Swift and Storage.

Overcloud is the actual functional cloud for any organization where all the Virtual Machines are created on compute nodes and handle all the workloads. OverCloud provides the openstack services like Nova, Keystone, Horizon, Neutron, cinder, Glance, Heat & Ceilometer Services.

In this article, I am going to install UnderCloud node on CentOS 7 VM.

These are the minimum system requirements for undercloud node:-

  • 16 GB RAM
  • 1 Quad Core CPU
  • 80 GB disk Space
  • 2 Nics
  • CentOS 7.x / RHEL 7.x

These are my VM details where I am going to installed UnderCloud node:-

  • CentOS 7 VM (Minimal Installation) is hosted inside Oracle VM VirtualBox Manager.
  • Two Interfaces are attached to VM (Provisioning & NAT)
  • Provisioning Network: 192.168.43.0/24
  • NAT Network: 10.0.3.0/24
  • IP Address on enp0s3 is 192.168.43.131 (Provisining IP) and IP Address on enp0s8 is 10.0.3.15 (NAT IP)

To successfully install undercloud inside a virtual machine, you have to enabled Nested Virtualization in KVM hypervisor.

Let’s jump into the CentOS 7 VM and follow the below Steps:

Set the Hostname and update /etc/hosts file

Run the hostnamectl command to set the hostname,

[[email protected] ~]# hostnamectl set-hostname "undercloud.urclouds.com"
[[email protected] ~]# exec bash
[[email protected] ~]#

Here I am going to configure hostname.

[[email protected] ~]# echo "192.168.43.131    undercloud.urclouds.com" >> /etc/hosts
[[email protected] ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.43.131    undercloud.urclouds.com
[[email protected] ~]#

Now we need to update our system using below command and reboot.

[[email protected] ~]# yum update -y && reboot

Create non-root user (stack)

Run the beneath commands one after the another to create stack user and assign sudo rights to it. We will install undercloud using stack user only.

[[email protected] ~]# useradd stack
[[email protected] ~]#
[[email protected] ~]# echo "stack" | passwd --stdin stack
Changing password for user stack.
passwd: all authentication tokens updated successfully.
[[email protected] ~]#
[[email protected] ~]# echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack
stack ALL=(root) NOPASSWD:ALL
[[email protected] ~]#
[[email protected] ~]# chmod 0440 /etc/sudoers.d/stack
[[email protected] ~]#
[[email protected] ~]# su - stack
[[email protected] ~]$

Enable required repositories for undercloud

Execute the below commands to enable and configured required repositories for undercloud installation.

[[email protected] ~]$ sudo curl -L -o /etc/yum.repos.d/delorean.repo https://trunk.rdoproject.org/centos7-master/current-passed-ci/delorean.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   213  100   213    0     0     69      0  0:00:03  0:00:03 --:--:--    69
[[email protected] ~]$
[[email protected] ~]$ cd /etc/yum.repos.d/
[[email protected] yum.repos.d]$ ls -l
total 32
-rw-r--r--. 1 root root 1664 Dec  9  2015 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Dec  9  2015 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Dec  9  2015 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  290 Dec  9  2015 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Dec  9  2015 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Dec  9  2015 CentOS-Sources.repo
-rw-r--r--. 1 root root 1952 Dec  9  2015 CentOS-Vault.repo
-rw-r--r--. 1 root root  213 Oct 28 12:23 delorean.repo
[[email protected] yum.repos.d]$ cat delorean.repo
[delorean]
name=delorean-openstack-nova-965941f1e62cef16967e7a7cd6d98263e52acb62
baseurl=https://trunk.rdoproject.org/centos7/96/59/965941f1e62cef16967e7a7cd6d98263e52acb62_0989b280
enabled=1
gpgcheck=0
priority=1[[email protected] yum.repos.d]$
[[email protected] yum.repos.d]$

Create a repo file (delorean-current.repo) with the following content

[[email protected] stack]# vi /etc/yum.repos.d/delorean-current.repo
[delorean-current]
name=delorean-openstack-tempest-f6b8de2dad0ecf1ff3c9de383be5f12c873fcfa2
baseurl=https://trunk.rdoproject.org/centos7/f6/b8/f6b8de2dad0ecf1ff3c9de383be5f12c873fcfa2_26625a85
enabled=1
gpgcheck=0
priority=1
includepkgs=diskimage-builder,instack,instack-undercloud,os-apply-config,os-collect-config,os-net-config,os-refresh-config,python-tripleoclient,openstack-tripleo-common*,openstack-tripleo-heat-templates,openstack-tripleo-image-elements,openstack-tripleo,openstack-tripleo-puppet-elements,openstack-puppet-modules,openstack-tripleo-ui,puppet-*
~

Save & exit the file

[[email protected] ~]$ sudo curl -L -o /etc/yum.repos.d/delorean-deps.repo https://trunk.rdoproject.org/centos7/delorean-deps.repo
[[email protected] ~]$ sudo yum -y install yum-plugin-priorities
[[email protected] ~]$ sudo yum install epel-release -y

Install TripleO CLI package using yum command

[[email protected] ~]$ sudo yum install python-tripleoclient -y

Copy & edit “undercloud.conf” sample file that suits to your env

[[email protected] ~]$ cp /usr/share/instack-undercloud/undercloud.conf.sample ~/undercloud.conf

Now edit ‘undercloud.conf‘ that suits to your environment, In my case I am adding the following content under “Default” Section

[[email protected] ~]$ vi undercloud.conf
[DEFAULT]
local_ip = 192.168.43.131/24
undercloud_public_vip = 192.168.43.2
undercloud_admin_vip = 192.168.43.3
local_interface = enp0s3
masquerade_network = 192.168.43.131/24
dhcp_start = 192.168.43.150
dhcp_end = 192.168.43.200
network_cidr = 192.168.43.0/24
network_gateway = 192.168.43.131
inspection_iprange = 192.168.43.150,192.168.43.199
generate_service_certificate = true
certificate_generation_ca = local
………………………………

Save and exit the file.

Start undercloud installation using openstack command

Now start undercloud installation using below openstack command,

[[email protected] ~]$ openstack undercloud install

Once the installation is completed successfully, we will get the output something like below

 

Verify the OpenStack Service list

[[email protected] ~]$ source stackrc
(undercloud) [[email protected] ~]$ openstack service list
+----------------------------------+------------------+-------------------------+
| ID                               | Name             | Type                    |
+----------------------------------+------------------+-------------------------+
| 19f1261745004b31bc77dcb17a5ed4f5 | heat-cfn         | cloudformation          |
| 1bdd5dfbc36f444ebe62580d71f1a7ec | heat             | orchestration           |
| 2b39423f188b412d85bed43f112b35d7 | zaqar-websocket  | messaging-websocket     |
| 46f64d65be874718a1b2c123f588371b | keystone         | identity                |
| 605261da43d64395b72acc5309a22096 | mistral          | workflowv2              |
| 6f50fb704b224c1abc3c2a1a163eb73a | neutron          | network                 |
| 7110b7d7711a4aa1af6a3c13566be28f | zaqar            | messaging               |
| 7e41468745724ecfa8ed339137e8b700 | placement        | placement               |
| 853efa8a8acf403b827617725c3b7322 | ironic-inspector | baremetal-introspection |
| a5522e5df77343b99a0e47812323a17b | swift            | object-store            |
| b9bbb1a771704b57a0833d738bfb86e5 | glance           | image                   |
| d50fdfa25fb64c3e865c172754452ab1 | ironic           | baremetal               |
| e2ea283690c742d3a98bd1eae6f9b830 | nova             | compute                 |
+----------------------------------+------------------+-------------------------+
(undercloud) [[email protected] ~]$

This confirms that undercloud has been installed successfully. In the next article we will demonstrate how to import overcloud images in under cloud and how to create inventory file for overcloud servers and then we will see how we can deploy overcloud servers via undercloud.

15 thoughts on “TripleO UnderCloud Installation on CentOS 7

  1. Generally I do not read article on blogs, but I wish to say that this write-up very pressured me to take a look at and do it! Your writing style has been amazed me. Thank you, very nice article.

  2. Unquestionably believe that which you stated. Your favorite justification seemed to be on the internet the easiest thing to be aware of.
    I say to you, I certainly get irked while people think about worries that they just don’t know about.
    You managed to hit the nail upon the top and also defined out the whole thing without having side-effects , people can take a signal.

    Will likely be back to get more. Thanks

  3. Whoa! This blog looks exactly like my old one! It’s on a
    completely different topic but it has pretty much the same page layout and design.
    Wonderful choice of colors!

  4. I appreciate, result inn I found just what I used to bee looking for.
    You’ve ended my four day lengthy hunt! God Bless you man. Havee
    a great day. Bye

  5. Hello.This article was extremely interesting,
    especially since I was browsing for thoughts on this matter last
    Thursday.

  6. It’s very straightforward to find out any topic on net as
    compared to textbooks, as I found this article at this web page.

  7. Hello there! This post couldn’t be written any better!

    Reading through this post reminds me of my good old room mate!
    He always kept talking about this. I will forward this write-up to him.

    Pretty sure he will have a good read. Many thanks for sharing!

  8. Quality articles or reviews is the secret to be a focus for the users to visit the website, that’s what this website is providing.

  9. I’m truly enjoying the design and layout of your website.

    It’s a very easy on the eyes which makes it much
    more enjoyable for me to come here and visit more often. Did you hire out a
    developer to create your theme? Superb work!

  10. Thanks for sharing your info. I truly appreciate your
    efforts and I will be waiting for your next post thank you once again.

  11. What’s up to every single one, it’s genuinely a pleasant for me to visit this
    web page, it contains priceless Information.

  12. Hi Zafar,

    Thank you so much for a very nice article. Do you have any article on Overcloud as well on CentOS 7 on Oracle Virtual box?

Leave a Reply

Your email address will not be published. Required fields are marked *