64 lines
1.7 KiB
YAML
64 lines
1.7 KiB
YAML
---
|
|
- name: Create network reports server
|
|
hosts: reports
|
|
become: true
|
|
|
|
tasks:
|
|
- name: Build report server
|
|
ansible.builtin.include_role:
|
|
name: "{{ item }}"
|
|
loop:
|
|
- demo.patching.report_server
|
|
|
|
- name: Create a backup directory if it does not exist
|
|
run_once: true
|
|
ansible.builtin.file:
|
|
path: "/var/www/html/backups"
|
|
state: directory
|
|
owner: ec2-user
|
|
group: ec2-user
|
|
mode: '0755'
|
|
|
|
- name: Play to Backup Cisco Always-On Network Devices
|
|
hosts: routers
|
|
gather_facts: false
|
|
vars:
|
|
report_server: reports
|
|
backup_dir: "/tmp/network_backups"
|
|
|
|
tasks:
|
|
- name: Network Backup and Resource Manager
|
|
ansible.builtin.include_role:
|
|
name: network.backup.run
|
|
vars: # noqa var-naming[no-role-prefix]
|
|
operation: backup
|
|
type: full
|
|
data_store:
|
|
local: "{{ backup_dir }}"
|
|
|
|
# This task removes the Current configuration... from the top of IOS routers show run
|
|
- name: Remove non config lines - regexp
|
|
delegate_to: localhost
|
|
ansible.builtin.lineinfile:
|
|
path: "{{ backup_dir }}/{{ inventory_hostname }}.txt"
|
|
line: "Building configuration..."
|
|
state: absent
|
|
|
|
- name: Copy backup file
|
|
delegate_to: "{{ report_server }}"
|
|
ansible.builtin.copy:
|
|
src: "{{ backup_dir }}/{{ inventory_hostname }}.txt"
|
|
dest: "/var/www/html/backups/{{ inventory_hostname }}.cfg"
|
|
backup: true
|
|
owner: ec2-user
|
|
group: ec2-user
|
|
mode: '0644'
|
|
|
|
- name: Review backup on report server
|
|
delegate_to: "{{ report_server }}"
|
|
run_once: true
|
|
ansible.builtin.debug:
|
|
msg: "To review backed up configurations, go to http://{{ ansible_host }}/backups/"
|
|
|
|
...
|