-
Notifications
You must be signed in to change notification settings - Fork 1
/
netconf-backup.yml
78 lines (66 loc) · 2.38 KB
/
netconf-backup.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# ansible-playbook netconf-backup.yml -i ./hosts
# -f #forks (optional) means the # of processes to execute in parallel.
# -l xxx limit the playbook to the specified hosts
#
---
- name: Network configuration backup - IOS ASA NxOS F5
hosts: all
gather_facts: false
# By default Ansible won't start a new task group until the previous one in fully completed for all the hosts.
# With strategy free you can ask to continue with all the tasks per host without waiting. And limited in this
# case by the number of forks.
# The downside is that the output to screen of the execution of the Playbook will be messy, so if you have an
# error comment the line "strategy: free" in order to ease the debug.
strategy: free
# Set following variables
vars:
file_name: "{{inventory_hostname}}.cfg.tmp"
backup_dir: "./backups"
keep_local_history: "yes"
historic_files_to_keep: 10
alert_slack: "no"
alert_mail: "no"
mail_host: smtp.xxx.com
mail_port: 587
mail_to: support@xxx.com
clean_patterns:
- "\\A[^!]*"
- "ntp clock-period..."
- "! Last configuration change..."
- "!Time..."
# Comment/delete the tasks of the platform that you are not interested in backing up the device configuration files
tasks:
- name: Cisco IOS
connection: network_cli
import_tasks: playbooks/netconf-backup-ios.yml
when: platform == 'ios'
- name: Cisco NxOS
connection: network_cli
import_tasks: playbooks/netconf-backup-ios.yml
when: platform == 'nxos'
- name: Cisco ASA
connection: network_cli
import_tasks: playbooks/netconf-backup-asa.yml
when: platform == 'asa'
- name: Arista
connection: network_cli
import_tasks: playbooks/netconf-backup-asa.yml
when: platform == 'eos'
- name: F5
import_tasks: playbooks/netconf-backup-f5.yml
when: platform == 'f5'
- name: FortiOS
import_tasks: playbooks/netconf-backup-fortios.yml
when: platform == 'fortios'
- name: Send executed backup notification to Slack
vars:
step: "finished"
import_tasks: playbooks/netconf-backup-msg-slack.yml
when: alert_slack == "yes"
run_once: true
- name: Send executed backup notification by email
vars:
step: "finished"
import_tasks: playbooks/netconf-backup-send-mail.yml
when: alert_mail == "yes"
run_once: true