The Red Hat OpenStack Platform director is a toolset for installing and managing a complete OpenStack environment. It is based primarily on the OpenStack project TripleO, which is an abbreviation for "OpenStack-On-OpenStack". This project takes advantage of OpenStack components to install a fully operational OpenStack environment.

The Red Hat OpenStack Platform director uses two main concepts:

undercloud

overcloud

The undercloud installs and configures the overcloud.

Undercloud

The undercloud is the main director node. It is a single-system OpenStack installation that includes components for provisioning and managing the OpenStack nodes that form your OpenStack environment (the overcloud).

The primary objectives of undercloud are as below:

Discover the bare-metal servers on which the deployment of Openstack Platform has been deployed

Serve as the deployment manager for the software to be deployed on these nodes

Define complex network topology and configuration for the deployment

Rollout of software updates and configurations to the deployed nodes

Reconfigure an existing undercloud deployed environment

Enable high availability support for the openstack nodes

Overcloud

The overcloud is the resulting Red Hat OpenStack Platform environment created using the undercloud.

This includes different nodes roles which you define based on the OpenStack Platform environment you aim to create.

TripleO architecture

TripleO is a friendly name for "OpenStack-On-OpenStack" and is a deployment and management tool for deployment, configuration and automation used by the undercloud. TripleO creates a production cloud known as the "overcloud" and the underlying deployment cloud known as the "undercloud".

Before being able to deploy the "overcloud", the "undercloud" needs to be deployed.

TripleO leverages several OpenStack services like Nova, Ironic, Neutron, Heat, Glance and Ceilometer to deploy the overcloud on bare-metal hardware.

Ironic: Provisions physical hardware and leverages technologies like PXE and IPMI to present it for the deployment of the overcloud.

Undercloud Director Virtual Machine

NOTE: The provisioning network NIC should not be the same NIC that you are using for remote connectivity to the undercloud machine. During the undercloud installation, a openvswitch bridge will be created for Neutron and the provisioning NIC will be bridged to the openvswitch bridge. As such, connectivity would be lost if the provisioning NIC was also used for remote connectivity to the undercloud machine.

[eth1]This interface will be configured automatically as a bridge when we do the undercloud configuration but I plan to use below config for eth1
IP : 192.168.122.30
Netmask : 255.255.255.0
Gateway : 192.168.122.1

NOTE: The undercloud is intended to work correctly with SELinux enforcing. Installatoins with the permissive/disabled SELinux are not recommended. The undercloud_enable_selinux config option controls that setting.

Validate FQDN of the undercloud director

The director requires a fully qualified domain name for its installation and configuration process. This means you may need to set the hostname of your director’s host.

Ensure that there is a FQDN hostname set and that the $HOSTNAME environment variable matches that value. The easiest way to do this is to set the "undercloud_hostname" option in undercloud.conf before running the install. This will allow the installer to configure all of the hostname- related settings appropriately.

Alternatively the hostname settings can be configured manually, but this is strongly discouraged. The manual steps are as follows:

Next enable below list of repositories which will be needed for the overall tripleo deployment.

[root@undercloud-director ~]# subscription-manager repos --enable=rhel-7-server-rpms --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-rh-common-rpms --enable=rhel-ha-for-rhel-7-server-rpms --enable=rhel-7-server-openstack-10-rpms --enable=rhel-7-server-satellite-tools-6.2-rpms --enable=rhel-7-server-openstack-10-devtools-rpms
Repository 'rhel-7-server-openstack-10-devtools-rpms' is enabled for this system.
Repository 'rhel-7-server-satellite-tools-6.2-rpms' is enabled for this system.
Repository 'rhel-7-server-rh-common-rpms' is enabled for this system.
Repository 'rhel-7-server-openstack-10-rpms' is enabled for this system.
Repository 'rhel-ha-for-rhel-7-server-rpms' is enabled for this system.
Repository 'rhel-7-server-rpms' is enabled for this system.
Repository 'rhel-7-server-extras-rpms' is enabled for this system.

local_ip : The IP address defined for the director’s Provisioning NIC. This is also the IP address the director uses for its DHCP and PXE boot services

network_gateway : The gateway for the overcloud instances. This is the undercloud host, which forwards traffic to the External network.

undercloud_public_vip : The IP address defined for the director’s Public API. Use an IP address on the Provisioning network that does not conflict with any other IP addresses or address ranges.

undercloud_admin_vip : The IP address defined for the director’s Admin API. Use an IP address on the Provisioning network that does not conflict with any other IP addresses or address ranges.

local_interface : The chosen interface for the director’s Provisioning NIC. This is also the device the director uses for its DHCP and PXE boot services. Change this value to your chosen device.

network_cidr : The network that the director uses to manage overcloud instances. This is the Provisioning network, which the undercloud’s neutron service manages.

masquerade_network : Defines the network that will masquerade for external access. This provides the Provisioning network with a degree of network address translation (NAT) so that it has external access through the director.

dhcp_start; dhcp_end : The start and end of the DHCP allocation range for overcloud nodes. Ensure this range contains enough IP addresses to allocate your nodes.

inspection_iprange : A range of IP address that the director’s introspection service uses during the PXE boot and provisioning process. Use comma-separated values to define the start and end of this range. Make sure this range contains enough IP addresses for your nodes and does not conflict with the range for dhcp_start and dhcp_end.

The remaining parameters are the access details for all of the director’s services. No change is required for the values. The director’s configuration script automatically generates these values if blank in undercloud.conf. You can retrieve all values after the configuration script completes.

NOTE: If you face any issues while configuring the undercloud node, check "/home/stack/.instack/install-undercloud.log" file for the installation related logs

The configuration is performed using python script "/usr/lib/python2.7/site-packages/instack_undercloud/undercloud.py"

The undercloud installation is divided into two distinct phases:

Instack: It deploys diskimage-builder elements locally. These elements describe the package installations or system configuration to be done on the undercloud node. All runnable scripts are located under the "install.d" directory under "/usr/share/instack-undercloud/puppet-stack-config/"

os-refresh-config: It provides the mechanism for staging the deployment of system configuration and uses "os-apply-config" to apply the configuration. It manages the in-instance process of responding to changes in configuration parameters which helps to refresh configurations for any changes made during postdeloyment.

Get Articles delivered to your mail

CONNECT US ON SOCIAL PLATFORM

YOU MIGHT ALSO LIKE

RECENT POSTS

Your browser does not support JavaScript!

About Me

My name is Deepak Prasad and I am very passionate about my work which mostly includes and revolves around Linux/Unix platform, virtualisation, openstack cloud, hardware, firmware, security, network, scripting, automation and similar stuff.

If I look back it looks like it was just yesterday when I started as a fresher in my first company as a total noob (which still I am BTW) and now I am here trying to run a tutorial site, I am not sure how good this is but at least I feel I learn something new every time I open my blog to write a new post. This honestly was sort of a notebook for me later turned into a tutorial blog.