02-24-2020 09:24 PM
Hi,
Is there any ansible playbook to backup APIC? I can see "aci_config_snapshot" module; but not sure whether it's all we need to backup and where able to restore it?
Thanks
Fakrul
02-27-2020 09:03 AM
Hi @fakrulalam,
You are on the right track with the aci_config_snapshot module.
I do have to ask why not set up a daily backup and export?
Thats one of the first things I do when building out a fabric and it is important to get the backup off the fabric just in case something does happen to your controllers.
You can use the companion aci_config_rollback module to roll back to a snapshot but I think you may be looking for a full backup and restore and if so I would suggest setting up your fabric to do periodic backups off fabric and should anything happen to your fabric you can use the import option on the APICs. In general that is the DR plan and for daily operations I recommend using the snapshots.
Below is a quick example of a playbook using the snapshot module.
--- ############################################################################### # This playbook executes configuration snapshots using the Ansible # aci_config_snapshot module # # # EXECUTION: # ansible-playbook -i hosts aci_config_snapshot.yml ############################################################################### - name: ACI Configuration Snapshot hosts: aci gather_facts: no tasks: # Using set_facts rather than vars so that these variables are available across tasks - set_fact: aci_user: admin aci_pwd: ciscopsdt aci_host: sandboxapicdc.cisco.com - name: Query Snapshots Before Creating a new Snapshot aci_config_snapshot: host: "{{ aci_host }}" username: "{{ aci_user }}" password: "{{ aci_pwd }}" validate_certs: no state: query delegate_to: localhost register: query_result - name: List Snapshots Before new snapshot creation debug: msg: "{{ item.configSnapshot.attributes.fileName }}" with_items: "{{ query_result.current }}" - name: Create a snapshot of ACI "{{ aci_host}}" aci_config_snapshot: host: "{{ aci_host }}" username: "{{ aci_user }}" password: "{{ aci_pwd }}" validate_certs: no timeout: 90 state: present export_policy: GDL_ConfigExportPolicy include_secure: yes max_count: 10 description: GDL_Fabric_Snapshot delegate_to: localhost register: aci_snapshot - name: Query Snapshots After Creating a new Snapshot aci_config_snapshot: host: "{{ aci_host }}" username: "{{ aci_user }}" password: "{{ aci_pwd }}" validate_certs: no state: query delegate_to: localhost register: query_result - name: List Snapshots After new snapshot creation debug: msg: "{{ item.configSnapshot.attributes.fileName }}" with_items: "{{ query_result.current }}"
02-27-2020 06:08 PM - edited 02-27-2020 06:08 PM
Snapshots are NOT meant to be used for backup purpose, they are only meant to be used for "rollback" during a change. Hence the Ansible module is used for you to incorporate it with other automation that you do before and after the change, hence it's more like an orchestration.
The ACI configuration export + scheduler is what you should use for daily backup
You can't restore full configuration from snapshots
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide