defaults | ||
meta | ||
tasks | ||
templates | ||
LICENSE | ||
README.md |
proxmox-backup
This ansible role :
- installs proxmox-backup-client on host
- copy a custom backup script
It has been successfully tested on :
- Debian "Bullseye" 11
- Debian "Bookworm" 12
Custom backup script
The custom script :
- copy & compress the entire system
- extract informations from your system (packages list, crontab, partition table, etc)
- can dump MySQL database(s)
- can dump PostgreSQL database(s)
All files are then send it to a custom Proxmox Backup Server.
Role variables
Variable | Type | Choices | Default | Comment |
---|---|---|---|---|
pbs_debian_release_name | string | bookworm | ||
pbs_repo_key | string | https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg | ||
pbs_repo_no_subscription | string | deb http://download.proxmox.com/debian/pbs-client {{ pbs_debian_release_name }} main | ||
pbs_user | string | mandatory | ||
pbs_server | string | mandatory | ||
pbs_datastore | string | mandatory | ||
pbs_fingerprint | string | mandatory | ||
pbs_password | string | mandatory | ||
backup_host_id | string | |||
backup_dir | string | mandatory | ||
backup_local_retention | string | mandatory | ||
backup_path_include | dict | |||
- path: /etc list | string | |||
- path: /var/www list | string | |||
fs_mount: true list | boolean | |||
backup_path_exclude | list | |||
backup_mysql_enabled | boolean | |||
backup_postgreslq_enabled | boolean | |||
backup_cron_minute | int | |||
backup_cron_hour | int |
Dependencies
None.
Example Playbook
- hosts: example
ignore_errors: "{{ ansible_check_mode }}" # ignore errors only in check mode !
roles:
- { role: proxmox-backup, tags: ['proxmox-backup'] }
Example variables
---
pbs_user: 'my_user'
pbs_server: 'my_pbs_server:8007'
pbs_datastore: 'my_datastore'
pbs_fingerprint: 'aa:bb:cc:dd:ee:ff:'
pbs_password: 'my_password'
backup_dir: /backup
backup_local_retention: 2
backup_path_include:
- path: /etc
- path: /var/www
fs_mount: true
backup_path_exclude:
- /var/backups
- *.log
- cache/
backup_mysql_enabled: true
backup_cron_minute: 30
backup_cron_hour: 5
License
MIT Modern
Author Information
Written by Ludovic Cartier ludovic.cartier@brainsys.io