netbox-ansible/playbooks/backup-netbox.yml
2025-09-25 19:24:11 -04:00

69 lines
1.9 KiB
YAML

---
- name: Backup NetBox Data
hosts: netbox
become: yes
gather_facts: no
tasks:
- name: Create backup directory with timestamp
file:
path: "{{ netbox_backup_dir }}/{{ ansible_date_time.iso8601_basic_short }}"
state: directory
mode: '0755'
register: backup_dir
tags:
- backup
- name: Backup PostgreSQL database
docker_compose:
project_src: "{{ netbox_install_dir }}"
command: "db pg_dump -U {{ netbox_db_user }} {{ netbox_db_name }}"
register: db_backup
tags:
- backup
- name: Save database backup to file
copy:
content: "{{ db_backup.stdout }}"
dest: "{{ backup_dir.path }}/netbox_db_backup.sql"
mode: '0644'
tags:
- backup
- name: Backup Redis data
archive:
path: "{{ netbox_data_dir }}/redis"
dest: "{{ backup_dir.path }}/redis-data.tar.gz"
format: gz
ignore_errors: yes
tags:
- backup
- name: Backup Redis Cache data
archive:
path: "{{ netbox_data_dir }}/redis-cache"
dest: "{{ backup_dir.path }}/redis-cache-data.tar.gz"
format: gz
ignore_errors: yes
tags:
- backup
- name: Backup Docker Compose configuration
copy:
src: "{{ netbox_install_dir }}/"
dest: "{{ backup_dir.path }}/docker-compose-config/"
mode: '0644'
tags:
- backup
- name: Display backup information
debug:
msg:
- "Backup completed successfully!"
- "Backup location: {{ backup_dir.path }}"
- "Database backup: {{ backup_dir.path }}/netbox_db_backup.sql"
- "Redis data backup: {{ backup_dir.path }}/redis-data.tar.gz"
- "Redis Cache data backup: {{ backup_dir.path }}/redis-cache-data.tar.gz"
- "Config backup: {{ backup_dir.path }}/docker-compose-config/"
tags:
- backup