Deploying OpenStack in the cloud and the data center

Build, Build, Build

Your Own Cluster

What the MAAS developers mean when they say "cluster" does not necessarily match what admins usually mean. This is not about a cluster of multiple MAAS nodes, but of all the hardware nodes that belong to a MAAS setup (i.e., what the MAAS server in question manages). For MAAS to be able to roll out OpenStack, you need to define the basic properties of the MAAS server for the MAAS cluster. The tasks include, in particular, the server's network configuration and enabling DHCP and DNS.

Clicking on Clusters and choosing Cluster master in the Cluster field takes you directly to the appropriate MAAS server configuration. If the MAAS server has only one NIC, such as the example here, it is the only one shown. If you now mouse over this box, an editing symbol appears that allows you to edit the entry. You need to configure the MAAS server so it provides DHCP for the private network and sends DNS entries. You also need to enter the default gateway in the Router IP field, which MAAS and the individual cloud server can use to reach the Internet.

Further down, you also need to configure the IP network that MAAS will use to allocate IP addresses to the hardware nodes (Figure 2). Note that:

  • MAAS uses dynamic range as a pool of IPs to which new nodes are dynamically allocated when first inventoried. You need at least 60 addresses in a new setup, in addition to the number of nodes reserved in total from the outset.
  • The static range is the range of IP addresses to which nodes are permanently allocated after installation. The documentation recommends specifying at least 20 IP addresses, which is slightly oversized for the current example.
  • The floating range is not a MAAS parameter; it should nevertheless be specified. MAAS later takes the IP addresses that it uses for public IP addresses in OpenStack from this range. By defining them at this point, you can make sure that the addresses are not accidentally used in node management as part of the two other pools.

A final click on Save stores the settings. After completing the download of the Ubuntu image (Images tab), MAAS is now ready for use.

Figure 2: When you set up the cluster master, it makes sense to set the IP ranges for static, dynamic, and floating IPs from the outset.


In the next step, you need to introduce your other computers to the now-configured instance of MAAS. Each node except for MAAS itself should be configured so that it automatically boots via PXE (Figure 3). After making sure that this is the case, start up the nodes individually (i.e., the other VMs in this example). They gradually boot to an inventorying image specially offered by MAAS and then appear in the MAAS node list (Nodes tab).

Figure 3: Depending on the nature of the individual MAAS nodes, you need to store details of how to control them remotely in MAAS.

For the four servers now listed in MAAS, you then individually define what kind of systems they are. MAAS needs this information to take control of the server (e.g., to reboot it via IPMI).

The Power Type drop-down for each server allows this configuration. Depending on the selected value, fields for different parameters that you need to fill out for each server now appear below the drop-down menus. In this specific example, where the MAAS servers exist as VMs on a Linux system and are managed by Virsh, the type would be Virsh (virtual systems) .

In the Power Address field, the entry could then be qemu+ssh://ubuntu @ ; the value for Power ID would be openstack01 , and the Power password would be the password for the ubuntu user on the virtualization host. If you are using physical systems instead of VMs, you need to tell MAAS how to dock with their out-of-band management interfaces (Figure 3).

Back in the Nodes tab, select all the nodes listed in the next step and then select Take action | Commission in the drop-down menu at top right. Once all the machines have a Ready Status, it is time for the hard work. For each node, you need to check whether the network configuration of the system is working. The first NIC in the server should appear on the Details page for the node; it should be connected with the private network, and the value in the IP Address field should be Auto assign . The system with two NICs should also display the second NIC as connected to the private network, but the IP address entry should read Unconfigured .

Firing Up Autopilot

The next step takes you back to the MAAS server command line. The commands

sudo apt-get install openstack
sudo JUJU_BOOTSTRAP_TO=<Autopilot-Host> openstack-install

send the packages required for OpenStack to the MAAS server and ensure that OpenStack Autopilot is automatically rolled out to the intended host, so <Autopilot-Host> should be adapted accordingly.

During setup, openstack-install asks you which mode you want to use for the OpenStack installation. Landscape OpenStack Autopilot is the correct answer. Your responses to the questions posed by the installer are determined by your local environment. At the end, the program asks for the MAAS server IP address and the user-specific API key for MAAS – this can be found in the user settings, which are accessible from the top-right button in MAAS.

As soon as the action is completed successfully, openstack-install shows you a link, which you should open in your browser; you are then treated for the first time to a view of a finished Landscape with OpenStack integrated (Figure 4).

Figure 4: After setting up MAAS and Autopilot, Landscape becomes available: OpenStack at the push of a button.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs

Support Our Work

ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.

Learn More”>


		<div class=