ansible: copy resulting openwrt image to correct location
[noc.git] / ansible / roles / openwrt-image / tasks / fetch.yml
1 ---
2 - name: Create download directory
3   file:
4     dest: "{{ openwrt_download_dir }}"
5     state: directory
6
7 - block:
8     - name: Generate OpenWrt download URLs
9       set_fact:
10         openwrt_url:
11           https://downloads.openwrt.org/releases/{{ openwrt_release }}/targets/{{ openwrt_arch | mandatory }}/{{ openwrt_target }}
12
13     - name: Download sha256sums
14       get_url:
15         url: "{{ openwrt_url }}/sha256sums"
16         dest: "{{ openwrt_download_dir }}/{{ openwrt_tarball_basename }}.sha256"
17
18     - name: Download sha256sums.asc
19       get_url:
20         url: "{{ openwrt_url }}/sha256sums.asc"
21         dest: "{{ openwrt_download_dir }}/{{ openwrt_tarball_basename }}.sha256.asc"
22
23     - name: Check OpenPGP signature
24       command: gpg --verify "{{ openwrt_download_dir }}/{{ openwrt_tarball_basename }}.sha256.asc"
25       changed_when: False
26
27     - name: Extract SHA256 hash of the imagebuilder archive
28       command: grep '{{ openwrt_tarball_name }}' "{{ openwrt_download_dir }}/{{ openwrt_tarball_basename }}.sha256"
29       register: sha256
30       changed_when: False
31
32     - name: Download imagebuilder
33       get_url:
34         url: "{{ openwrt_url }}/{{ openwrt_tarball_name }}"
35         dest: "{{ openwrt_download_dir }}/{{ openwrt_tarball_name }}"
36         checksum: sha256:{{ sha256.stdout.split(' ') | first }}
37
38   rescue:
39     - name: Delete downloaded artifacts
40       file:
41         path: "{{ item }}"
42         state: absent
43       with_items:
44         - "{{ openwrt_download_dir }}/{{ openwrt_tarball_basename }}.sha256"
45         - "{{ openwrt_download_dir }}/{{ openwrt_tarball_basename }}.sha256.asc"
46         - "{{ openwrt_download_dir }}/{{ openwrt_tarball_name }}"
47     - fail:
48         msg: Something borked