2.7 | 2.8 | 2.9 | 3.0 | |
---|---|---|---|---|
Snap | CLI ~ UI | CLI ~ UI | CLI ~ UI | CLI ~ UI |
Packages | CLI ~ UI | CLI ~ UI | CLI ~ UI | CLI ~ UI |
This article provides technical data relevant the MAAS installation. Note that all headings are linked for easy bookmarking.
The following technical data is available in this document:
- Minimum hardware requirements for using MAAS
- MAAS initialisation modes
- The MAAS shared secret
- MAAS re-initialisation
These sections are presented for reference, so they are not intended to be read in any particular order.
Minimum hardware requirements for using MAAS
This section provides the following technical data:
- Minimum hardware requirements for a MAAS test environment
- Minimum hardware requirements for a MAAS production environment
The minimum requirements for the machines that run MAAS vary widely depending on local implementation and usage. Below, you will find resource estimates based on MAAS components and operating system (Ubuntu Server). We consider both a test configuration (for proof of concept) and a production environment.
Minimum hardware requirements for a MAAS test environment
Here is a proof-of-concept scenario, with all MAAS components installed on a single host. This scenario assumes two complete sets of images (latest two Ubuntu LTS releases) for a single architecture (amd64).
Memory (MB) | CPU (GHz) | Disk (GB) | |
---|---|---|---|
Region controller (minus PostgreSQL) | 512 | 0.5 | 5 |
PostgreSQL | 512 | 0.5 | 5 |
Rack controller | 512 | 0.5 | 5 |
Ubuntu Server (including logs) | 512 | 0.5 | 5 |
Based on this table, the approximate requirements for this scenario are 2 GB memory, 2 GHz CPU, and 20 GB of disk space.
Minimum requirements for a MAAS production environment
Here is a production scenario designed to handle a high number of sustained client connections. This scenario implements both high availability (region and rack) and load balancing (region). MAAS reserves extra space for images (database and rack controller), while some images, such as those for Microsoft Windows, may require a lot more – so plan accordingly.
Memory (MB) | CPU (GHz) | Disk (GB) | |
---|---|---|---|
Region controller (minus PostgreSQL) | 2048 | 2.0 | 5 |
PostgreSQL | 2048 | 2.0 | 20 |
Rack controller | 2048 | 2.0 | 20 |
Ubuntu Server (including logs) | 512 | 0.5 | 5 |
So, based on the above, the approximate requirements for this scenario are:
- A region controller (including PostgreSQL) installed on one host, with 4.5 GB memory, 4.5 GHz CPU, and 45 GB of disk space.
- A duplicate region controller (including PostgreSQL) on a second host, also with 4.5 GB memory, 4.5 GHz CPU, and 45 GB of disk space.
- A rack controller installed on a third host, with 2.5 GB memory, 2.5 GHz CPU, and 40 GB of disk space.
- A duplicate rack controller on a fourth host, also with 2.5 GB memory, 2.5 GHz CPU, and 40 GB of disk space.
Also, this discussion does not take into account a possible local image mirror, which would be a large consumer of disk space.
One rack controller should only service 1000 machines or less, regardless of how you distribute them across subnets. There is no load balancing at the rack level, so you will need additional, independent rack controllers. Each controller must service its own subnet(s).
MAAS initialisation modes
MAAS supports the following modes, which dictate what services will run on the local system:
Mode | Region | Rack | Database | Description |
---|---|---|---|---|
region |
X | Region API server only | ||
rack |
X | Rack controller only | ||
region+rack |
X | X | Region API server and rack controller | |
none |
Reinitialises MAAS and stops services |
MAAS initialisation options
MAAS initialisation options correspond to these choices. For example, the command:
sudo maas init --help
produces the following output:
usage: maas init [-h] {region+rack,region,rack} ...
Initialise MAAS in the specified run mode.
optional arguments:
-h, --help show this help message and exit
run modes:
{region+rack,region,rack}
region+rack Both region and rack controllers
region Region controller only
rack Rack controller only
When installing region or rack+region modes, MAAS needs a
PostgreSQL database to connect to.
If you want to set up PostgreSQL for a non-production deployment on
this machine, and configure it for use with MAAS, you can install
the maas-test-db snap before running 'maas init':
sudo snap install maas-test-db
sudo maas init region+rack --database-uri maas-test-db:///
The MAAS URL
All run modes (except none
) prompt for a MAAS URL, interpreted differently depending on the mode:
-
region+rack
: Used to create a new region controller as well as to tell the rack controller how to find the region controller. -
region
: Used to create a new region controller. -
rack
: Used to locate the region controller.
Shared secret
When you add a new rack or region controller, MAAS asks for a shared secret it will use to communicate with the rest of MAAS. This secret is also exposed in the web UI when you click the “Add rack controller” button on the Controllers page. MAAS automatically generates this secret when your first region controller installed, and stores the secret in a plain text file. This file is automatically protected with the correct permissions, so there is no need for any action on your part.
MAAS re-initialisation
Re-initialising MAAS resets the MAAS URL when the configuration changes. For example, when hosting MAAS on a system that gets its IP from DHCP, you must reinitialise when the DHCP lease gets renewed, as your base MAAS IP address will need to be updated. Likewise, if you switch the MAAS configuration from rack
to region
, you’ll need to re-initialise as well.