2022-09-27 22:34:25 +00:00
|
|
|
---
|
|
|
|
- name: upgrade firmware on openwrt device(s)
|
2022-10-23 23:40:41 +00:00
|
|
|
hosts:
|
|
|
|
- accesspoints
|
|
|
|
- gateways
|
2022-10-23 22:00:07 +00:00
|
|
|
vars:
|
|
|
|
running_garet_profile: "{{ ansible_local['garet']['profile'] | default() }}"
|
|
|
|
running_garet_release: "{{ ansible_local['garet']['release'] | default() }}"
|
2022-10-23 23:40:41 +00:00
|
|
|
firmware_suffix:
|
|
|
|
accesspoints: "bin"
|
|
|
|
gateways: "img.gz"
|
|
|
|
firmware_file: "firmware/garet_{{ garet_profile }}-{{ garet_release }}.{{ firmware_suffix[group_names | first] }}"
|
2022-10-23 22:00:07 +00:00
|
|
|
gather_facts: no
|
2022-09-27 22:34:25 +00:00
|
|
|
tasks:
|
2022-10-23 22:00:07 +00:00
|
|
|
- name: gather firmware version
|
|
|
|
setup:
|
|
|
|
filter: ansible_local
|
|
|
|
|
2023-01-08 03:52:19 +00:00
|
|
|
- name: stringify garet_release...
|
|
|
|
set_fact:
|
|
|
|
garet_release: "{{ garet_release | string }}"
|
|
|
|
|
2022-10-23 22:00:07 +00:00
|
|
|
- name: handle update
|
|
|
|
block:
|
|
|
|
- name: upload new firmware
|
|
|
|
copy:
|
|
|
|
src: "{{ firmware_file }}"
|
|
|
|
dest: "/tmp/{{ firmware_file | basename }}"
|
2022-09-27 22:34:25 +00:00
|
|
|
|
2022-10-23 22:00:07 +00:00
|
|
|
- name: issue sysupgrade command
|
|
|
|
shell:
|
|
|
|
cmd: "sysupgrade /tmp/{{ firmware_file | basename }} && exit 0"
|
|
|
|
ignore_unreachable: yes
|
2023-01-10 01:36:01 +00:00
|
|
|
ignore_errors: yes
|
2022-09-27 22:34:25 +00:00
|
|
|
|
2022-10-23 22:00:07 +00:00
|
|
|
- name: wait till device is back online
|
|
|
|
wait_for_connection:
|
|
|
|
delay: 10
|
|
|
|
timeout: 600
|
|
|
|
when: garet_profile != running_garet_profile or garet_release != running_garet_release
|