How to install the MAAS bare metal provisioning tool on Ubuntu

If you're looking for an easier way to deploy Linux to bare metal machines, Jack Wallen shows you how to install MAAS.

Image: Jack Wallen

Metal As A Service (MAAS) allows new bare metal machines to be easily provisioned. With MAAS, you can bring a bare metal server, with no operating system installed, to a completely working server without having to go to each machine, boot into a live disk, and install. This is an incredibly powerful tool that will make managing a data center exponentially easier.

But before you deploy those bare metal images, you have to get the MAAS system up and running. I'll walk you through installing MAAS on a Ubuntu server and getting it ready for the process of rolling out images. You'll be surprised at how easy this is to do.

SEE: Twenty-five years of Linux overcoming hurdles and overshooting goals

First things first

In order to get MAAS up and running, you need to ensure your Ubuntu server is a fully functioning LAMP server. If you haven't installed the remaining AMP pieces on your LAMP server, you can do that with a single command.

  1. Open a terminal window on your Ubuntu server.
  2. Issue the command sudo apt-get install lamp-server^
  3. Type your sudo password and hit Enter.

Note: The ^ character is necessary.

During the running of the above command, you will be prompted to set up a MySQL root user password. Make sure to do that and remember the password (although you won't need it for the MAAS server).

With the LAMP part out of the way, let's install MAAS.

Installing MAAS

Go back to your terminal window and run an update for the Ubuntu server with the command:

sudo apt-get update

Now let's install MAAS. Issue the command:

sudo apt-get install maas

Allow that installation to complete. You'll want to add the MAAS stable PPA, so your MAAS software will always be up to date. Issue the following command to take care of this:

sudo add-apt-repository ppa:maas/stable

The next step is to create your MAAS admin user. To do this, issue the command:

sudo maas-region-admin createadmin

You will be prompted to enter an admin username followed by a password for that user.

Log in

It's time to log into your MAAS system. Open a browser and point it to http://IP_OF_SERVER:5240/MAAS/. Log in with the user you created with the createadmin command and you'll see the main page for MAAS (Figure A).

Figure A

Figure A
Image: Jack Wallen
The MAAS main page ready to work.

MAAS will automatically detect your network, but it's important that you check and ensure the settings are all correct. To do this, click on the Networks tab and then click on the Subnet link for the default fabric. In the resulting window (Figure B), you'll want to make sure the Gateway IP and DNS is set for the subnet.

Figure B

Figure B
Image: Jack Wallen
Finishing up the network settings for the default fabric.

Next scroll down to the Reserved section and configure a reserve range for IP addresses on the subnet (if applicable). Click Reserve Range (Figure C) and then enter the range of addresses you want to be allocated for MAAS deployments.

Adding a custom image

Out of the box MAAS will download the latest image for Ubuntu. You can customize that image from within the Images tab. Click that tab and then alter the image you want to download by clicking the appropriate options (Figure C)

Figure C

Figure C
Image: Jack Wallen
Customizing the default Ubuntu image.

You can also include a CentOS image by selecting which one you want to include (either 6.6 or 7) and then clicking Apply Changes. Once you apply the changes to your configuration, the new image(s) will be downloaded to your MAAS server and ready for deployment.

Deploy at will

You're ready to begin the process of deploying an image to bare metal. You have to first set your machines to PXE boot, boot each machine once, and they'll appear in MAAS ready to be commissioned.

MAAS makes the process of provisioning machines so much easier than manual deployment. Get this incredibly powerful Ubuntu tool up and running, and deploy at will!

Also see