69 lines
1.9 KiB
YAML
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
|