a69e65bd465074830915b7f64feb9544d19eebb1
[noc.git] / ansible / roles / openwrt-image / tasks / 00-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 }}" #lede-imagebuilder-{{ openwrt_release }}-{{ openwrt_arch }}.Linux-x86_64.tar.xz"
35         dest: "{{ openwrt_download_dir }}/{{ openwrt_tarball_name }}"
36         checksum: sha256:{{ sha256.stdout.split(' ') | first }}
37
38     # /!\ This needs to be the last task in 00-fetch.yml
39 #    - set_fact:
40 #        openwrt_imgbuilder_tarball: >
41 #          {{ openwrt_download_dir }}/{{ openwrt_tarball_name }}
42
43   rescue:
44     - name: Delete downloaded artifacts
45       file:
46         path: "{{ item }}"
47         state: absent
48       with_items:
49         - "{{ openwrt_download_dir }}/{{ openwrt_tarball_basename }}.sha256"
50         - "{{ openwrt_download_dir }}/{{ openwrt_tarball_basename }}.sha256.asc"
51         - "{{ openwrt_download_dir }}/{{ openwrt_tarball_name }}"
52     - fail:
53         msg: Something borked