--- - name: Create etcd release directory local_action: file path={{ local_release_dir }}/etcd/bin recurse=yes state=directory delegate_to: "{{ groups['kube-master'][0] }}" - name: Check if etcd release archive has been downloaded local_action: stat path={{ local_release_dir }}/etcd/etcd-{{ etcd_version }}-linux-amd64.tar.gz register: e_tar delegate_to: "{{ groups['kube-master'][0] }}" # issues with get_url module and redirects, to be tested again in the near future - name: Download etcd local_action: shell curl -o {{ local_release_dir }}/etcd/etcd-{{ etcd_version }}-linux-amd64.tar.gz -Ls {{ etcd_download_url }}/{{ etcd_version }}/etcd-{{ etcd_version }}-linux-amd64.tar.gz when: not e_tar.stat.exists register: dl_etcd delegate_to: "{{ groups['kube-master'][0] }}" - name: Extract etcd archive local_action: unarchive src={{ local_release_dir }}/etcd/etcd-{{ etcd_version }}-linux-amd64.tar.gz dest={{ local_release_dir }}/etcd copy=no when: dl_etcd|changed delegate_to: "{{ groups['kube-master'][0] }}" - name: Pick up only etcd binaries local_action: copy src={{ local_release_dir }}/etcd/etcd-{{ etcd_version }}-linux-amd64/{{ item }} dest={{ local_release_dir }}/etcd/bin with_items: - etcdctl - etcd when: dl_etcd|changed - name: Delete unused etcd files local_action: file path={{ local_release_dir }}/etcd/etcd-{{ etcd_version }}-linux-amd64 state=absent when: dl_etcd|changed