--- - 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 community.docker.docker_compose_v2: 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