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

  1. Find the PostgreSQL service:

    sudo systemctl list-units --type=service | grep postgres
    
  2. Create backup directory:

    mkdir -p <backup-path>/$(date +%s)
    
  3. Dump database:

    sudo -u postgres pg_dumpall -c > "<backup-path>/$(date +%s)_dump.sql"
    
  4. Stop MAAS:

    sudo snap stop maas
    
  5. (Optional) Stop PostgreSQL:

    sudo systemctl stop postgresql.service
    
  6. Snap backup:

    sudo snap save maas
    
  7. Export snapshot:

    sudo snap export-snapshot <snapshot-id> <backup-path>/$(date +%s)_snapshot
    
  8. Restart services:

    sudo systemctl start postgresql.service
    sudo snap restart maas
    

Restore

  1. Stop MAAS & remove instance:

    sudo snap stop maas && sudo snap remove maas
    
  2. Restore database:

    sudo -u postgres psql -f <backup-path>/<dump.sql> postgres
    
  3. Import & restore snapshot:

    sudo snap import-snapshot <backup-path>/<snapshot>
    sudo snap restore <snapshot-id>
    
  4. Restart services:

    sudo systemctl start postgresql.service
    sudo snap restart maas
    

Package production backup

Backs up PostgreSQL and key MAAS files.

Backup

  1. Find PostgreSQL service:

    sudo systemctl list-units --type=service | grep postgres
    
  2. Create backup directory:

    mkdir -p <backup-path>/$(date +%s)
    
  3. Dump database:

    sudo -u postgres pg_dumpall -c > "<backup-path>/$(date +%s)_dump.sql"
    
  4. Stop MAAS services:

    sudo systemctl stop maas-dhcpd.service maas-rackd.service maas-regiond.service
    
  5. (Optional) Stop PostgreSQL:

    sudo systemctl stop postgresql.service
    
  6. Archive MAAS files:

    sudo tar cvpzWf <backup-path>/$(date +%s)_maas_backup.tgz --exclude=/var/lib/maas/boot-resources /etc/maas /var/lib/maas
    
  7. Restart services:

    sudo systemctl start postgresql.service
    sudo snap restart maas
    

Restore

  1. Reinstall Ubuntu (if possible).

  2. Ensure PostgreSQL is installed.

  3. Restore database:

    sudo -u postgres psql -f <backup-path>/<dump.sql> postgres
    
  4. Install MAAS from packages.

  5. Stop MAAS services:

    sudo systemctl stop maas-dhcpd.service maas-rackd.service maas-regiond.service
    
  6. Extract backup:

    sudo tar xvzpf <backup-path>/<backup.tgz> -C /
    
  7. Restart services:

    sudo systemctl start postgresql.service
    sudo systemctl restart maas-dhcpd.service maas-rackd.service maas-regiond.service