-
Notifications
You must be signed in to change notification settings - Fork 72
/
deploy_scp.yml
59 lines (54 loc) · 1.72 KB
/
deploy_scp.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
---
- name: Copy and deploy configurations
hosts: all
tasks:
- name: Enable SCP server and configuration archive
ios_config:
src: deploy_setup.cfg
become: yes
tags: [ copy,deploy ]
- block:
- stat: path={{config_dir}}/{{inventory_hostname}}.conf
register: stat
- assert:
that: stat.stat.exists
msg: "Cannot find router configuration file for {{inventory_hostname}}"
- name: Copy candidate configuration into routers
net_put:
src: "{{config_dir}}/{{inventory_hostname}}.conf"
dest: "flash:candidate.cfg"
tags: [ copy ]
- block:
- cli_command:
command: disable
- name: Enter Enable mode
cli_command:
command: enable
prompt: Password
answer: "{{ ansible_become_password|default(ansible_ssh_pass) }}"
- name: Replace configuration
cli_command:
command: configure replace flash:candidate.cfg force revert trigger timer 120
register: replace
tags: [ print_action ]
vars:
ansible_command_timeout: 240
- name: Confirm configuration replace
cli_command:
command: configure confirm
- file: path={{build_dir}}/results state=directory
check_mode: no
- name: Save configuration replace results
copy:
content: |
*********************************
Results on {{inventory_hostname}}
*********************************
{{replace.stdout}}
dest: "{{build_dir}}/results/{{inventory_hostname}}.txt"
delegate_to: localhost
- name: Assemble final report
assemble: src={{build_dir}}/results dest={{build_dir}}/results.txt
run_once: true
delegate_to: localhost
tags: [ deploy ]