eae-am-deutschen-platz/playbook_sysupgrade.yml

41 lines
1.2 KiB
YAML

---
- name: upgrade firmware on openwrt device(s)
hosts:
- accesspoints
- gateways
vars:
running_garet_profile: "{{ ansible_local['garet']['profile'] | default() }}"
running_garet_release: "{{ ansible_local['garet']['release'] | default() }}"
firmware_suffix:
accesspoints: "bin"
gateways: "img.gz"
firmware_file: "firmware/garet_{{ garet_profile }}-{{ garet_release }}.{{ firmware_suffix[group_names | first] }}"
gather_facts: no
tasks:
- name: gather firmware version
setup:
filter: ansible_local
- name: stringify garet_release...
set_fact:
garet_release: "{{ garet_release | string }}"
- name: handle update
block:
- name: upload new firmware
copy:
src: "{{ firmware_file }}"
dest: "/tmp/{{ firmware_file | basename }}"
- name: issue sysupgrade command
shell:
cmd: "sysupgrade /tmp/{{ firmware_file | basename }} && exit 0"
ignore_unreachable: yes
ignore_errors: yes
- 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