How to back up MAAS
MAAS uses standard command-line utilities for simple, familiar backups. The options described here allow you to either back up and restore everything MAAS-related, or just back up key packages and files.
Back up a POC database
In many proof-of-concept (POC) environments, the maas_test_db ends up serving as the foundation for production. Backing it up protects the effort you’ve already invested in setup and configuration. Fortunately, the procedure is a simple one-line command:
pg_dump maasdb -U maas -h /var/snap/maas-test-db/common/postgres/sockets > dump.sql
Be sure to use a memorable label for the dump file.
Clean reset production backup
The method uses pg_dumpall the entire database and make a complete snapshot of MAAS.
Back up procedure
- Find the PostgreSQL service:
sudo systemctl list-units --type=service | grep postgres - Create backup directory:
mkdir -p <backup-path>/$(date +%s) - Dump database:
sudo -u postgres pg_dumpall -c > "<backup-path>/$(date +%s)_dump.sql" - Stop MAAS:
sudo snap stop maas - (Optional) Stop PostgreSQL:
sudo systemctl stop postgresql.service - Snap backup:
sudo snap save maas - Export snapshot:
sudo snap export-snapshot <snapshot-id> <backup-path>/$(date +%s)_snapshot - Restart services:
sudo systemctl start postgresql.service sudo snap restart maas
Restore
- Stop MAAS & remove instance:
sudo snap stop maas && sudo snap remove maas - Restore database:
sudo -u postgres psql -f <backup-path>/<dump.sql> postgres - Import & restore snapshot:
sudo snap import-snapshot <backup-path>/<snapshot> sudo snap restore <snapshot-id> - Restart services:
sudo systemctl start postgresql.service sudo snap restart maas
Package production backup
Backs up PostgreSQL and key MAAS files.
Backup
- Find PostgreSQL service:
sudo systemctl list-units --type=service | grep postgres - Create backup directory:
mkdir -p <backup-path>/$(date +%s) - Dump database:
sudo -u postgres pg_dumpall -c > "<backup-path>/$(date +%s)_dump.sql" - Stop MAAS services:
sudo systemctl stop maas-dhcpd.service maas-rackd.service maas-regiond.service - (Optional) Stop PostgreSQL:
sudo systemctl stop postgresql.service - Archive MAAS files:
sudo tar cvpzWf <backup-path>/$(date +%s)_maas_backup.tgz --exclude=/var/lib/maas/boot-resources /etc/maas /var/lib/maas - Restart services:
sudo systemctl start postgresql.service sudo snap restart maas
Restore
- Reinstall Ubuntu (if possible).
- Ensure PostgreSQL is installed.
- Restore database:
sudo -u postgres psql -f <backup-path>/<dump.sql> postgres - Install MAAS from packages.
- Stop MAAS services:
sudo systemctl stop maas-dhcpd.service maas-rackd.service maas-regiond.service - Extract backup:
sudo tar xvzpf <backup-path>/<backup.tgz> -C / - Restart services:
sudo systemctl start postgresql.service sudo systemctl restart maas-dhcpd.service maas-rackd.service maas-regiond.service