Chapter 1: Initialization & Ingestion
Bypassing the dashboard setup journey entirely.MAAS features a clean browser dashboard interface, backed by an authoritative REST API. We are bypassing the graphic dashboard interface. Our objective is deterministic bare-metal control straight from the system terminal prompt.
1. Ingesting the Snap
The installation target is wintermute—a local testbed environment. We pull down the core packages via the snap channel:
sudo snap install maas --channel=2.8
2. Establishing Production Database Parameters
Rather than relying on ephemeral proof-of-concept storage setups, we deploy a production-grade PostgreSQL role schema to backing memory. We spin up the user role and target database payload directly:
sudo apt update -y && sudo apt install -y postgresql sudo -u postgres psql -c "CREATE USER \"maascli\" WITH ENCRYPTED PASSWORD 'maascli'" sudo -u postgres createdb -O "maascli" "maasclidb"
To secure local role identification, we append our database permission policy into the host HBA tracking configuration:
host maasclidb maascli 0/0 md5
3. Firing the Engine
We bind the region and rack services directly to our freshly engineered database URI connection string:
sudo maas init region+rack --database-uri "postgres://maascli:maascli@localhost/maasclidb"
Once the migration registers successfully, we inject our administrative master profile credentials right through the CLI mechanism:
sudo maas createadmin
4. Logging In
We extract our secure token directly from the local administrative key repository and authenticate our active shell session:
sudo maas apikey --username=admin > api-key-file maas login admin http://192.168.43.251:5240/MAAS/api/2.0/ < api-key-file