-
Notifications
You must be signed in to change notification settings - Fork 0
/
routeros_gen_upd_device_list.yml
44 lines (38 loc) · 1.75 KB
/
routeros_gen_upd_device_list.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
---
- name: Generate device list which requires OS update
hosts: routeros-devices
gather_facts: no
tasks:
- name: Check for updates
routeros_command:
commands: /system package update check-for-updates
- name: Print update status
routeros_command:
commands: /system package update print
register: output
- name: Parse command output
set_fact:
channel: "{{ output.stdout_lines[0][0].split(':')[1].lstrip() }}"
installed_version: "{{ output.stdout_lines[0][1].split(':')[1].lstrip() }}"
latest_version: "{{ output.stdout_lines[0][2].split(':')[1].lstrip() }}"
status: "{{ output.stdout_lines[0][3].split(':')[1].lstrip() }}"
- name: Write device info to disk using a template
copy:
content: |
#jinja2: lstrip_blocks: True
Mikrotik OS version info:
{% for host in groups['routeros-devices'] %}
{% if ( ('System is already up to date' != hostvars[host].status) and (hostvars[host].channel == routeros_branch ) ) %}
Hostname: {{ hostvars[host].inventory_hostname }}
Installed-version: {{ hostvars[host].installed_version }}
Latest-version: {{ hostvars[host].latest_version }}
{% elif hostvars[host].channel != routeros_branch %}
Hostname: {{ hostvars[host].inventory_hostname }}
Installed-version: {{ hostvars[host].installed_version }}
Latest-version: {{ hostvars[host].latest_version }}
WARNING!!!: "This OS version is not from {{ routeros_branch }} branch, it is {{ hostvars[host].channel }}"
{% endif %}
{% endfor %}
dest: output/routeros_device_update.txt
run_once: yes
...