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_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