115 lines
4.5 KiB
YAML
115 lines
4.5 KiB
YAML
|
---
|
||
|
# task/consul_cni_install file for cni
|
||
|
- name: "CNI Plugins | Set wanted consul-cni version to latest tag"
|
||
|
ansible.builtin.set_fact:
|
||
|
_cni_consul_cni_wanted_version: "{{ _cni_plugins_latest_release.json['tag_name']|regex_replace('v', '') }}"
|
||
|
when: cni_plugins_version == 'latest'
|
||
|
|
||
|
- name: "CNI Plugins | Set wanted consul-cni version to {{ cni_plugins_version }}"
|
||
|
ansible.builtin.set_fact:
|
||
|
_cni_consul_cni_wanted_version: "{{ cni_plugins_version|regex_replace('v', '') }}"
|
||
|
when: cni_plugins_version != 'latest'
|
||
|
|
||
|
- name: "CNI Plugins | Get current consul-cni version"
|
||
|
block:
|
||
|
- name: "CNI Plugins | Stat consul-cni version file"
|
||
|
ansible.builtin.stat:
|
||
|
path: "{{ cni_plugins_install_path }}/.consul-cni-version"
|
||
|
changed_when: false
|
||
|
check_mode: false
|
||
|
register: _cni_consul_cni_version_file
|
||
|
|
||
|
- name: "CNI Plugins | Get current consul-cni version"
|
||
|
ansible.builtin.slurp:
|
||
|
src: "{{ _cni_consul_cni_version_file.stat.path }}"
|
||
|
when:
|
||
|
- _cni_consul_cni_version_file.stat.exists
|
||
|
- _cni_consul_cni_version_file.stat.isreg
|
||
|
register: _cni_consul_cni_current_version
|
||
|
|
||
|
- name: "CNI Plugins | Download and install consul-cni binary"
|
||
|
when: _cni_consul_cni_current_version is not defined
|
||
|
or _cni_consul_cni_wanted_version != (_cni_consul_cni_current_version.content|default('')|b64decode)
|
||
|
block:
|
||
|
- name: "CNI Plugins | Set consul-cni package name to download"
|
||
|
ansible.builtin.set_fact:
|
||
|
_cni_consul_cni_package_name: >-
|
||
|
consul-cni_{{ _cni_consul_cni_wanted_version }}_linux_{{ cni_deb_architecture_map[ansible_architecture] }}.zip
|
||
|
_cni_consul_cni_shasum_file_name: >-
|
||
|
consul-cni_{{ _cni_consul_cni_wanted_version }}_SHA256SUMS
|
||
|
|
||
|
- name: "CNI Plugins | Download checksum file for consul-cni archive"
|
||
|
ansible.builtin.get_url:
|
||
|
url: "{{ cni_consul_cni_repository_url }}/{{ _cni_consul_cni_wanted_version }}/{{ _cni_consul_cni_shasum_file_name }}"
|
||
|
dest: "/tmp/{{ _cni_consul_cni_shasum_file_name }}"
|
||
|
mode: "0644"
|
||
|
register: _cni_consul_cni_checksum_file
|
||
|
until: _cni_consul_cni_checksum_file is succeeded
|
||
|
retries: 5
|
||
|
delay: 2
|
||
|
check_mode: false
|
||
|
|
||
|
- name: "CNI Plugins | Extract correct checksum from checksum file"
|
||
|
ansible.builtin.command:
|
||
|
cmd: 'grep "{{ _cni_consul_cni_package_name }}" /tmp/{{ _cni_consul_cni_shasum_file_name }}'
|
||
|
changed_when: false
|
||
|
register: _cni_consul_cni_expected_checksum_line
|
||
|
|
||
|
- name: "CNI Plugins | Parse the expected checksum"
|
||
|
ansible.builtin.set_fact:
|
||
|
_cni_consul_cni_expected_checksum: "{{ _cni_consul_cni_expected_checksum_line.stdout.split()[0] }}"
|
||
|
|
||
|
- name: "CNI Plugins | Download consul-cni binary archive"
|
||
|
ansible.builtin.get_url:
|
||
|
url: "{{ cni_consul_cni_repository_url }}/{{ _cni_consul_cni_wanted_version }}/{{ _cni_consul_cni_package_name }}"
|
||
|
dest: "/tmp/{{ _cni_consul_cni_package_name }}"
|
||
|
mode: "0644"
|
||
|
checksum: "sha256:{{ _cni_consul_cni_expected_checksum }}"
|
||
|
register: _cni_consul_cni_binary_archive
|
||
|
until: _cni_consul_cni_binary_archive is succeeded
|
||
|
retries: 5
|
||
|
delay: 2
|
||
|
check_mode: false
|
||
|
|
||
|
- name: "CNI Plugins | Create temporary directory for archive decompression"
|
||
|
ansible.builtin.file:
|
||
|
path: /tmp/consul-cni
|
||
|
state: directory
|
||
|
mode: "0755"
|
||
|
|
||
|
- name: "CNI Plugins | Unpack consul-cni archive"
|
||
|
ansible.builtin.unarchive:
|
||
|
src: "/tmp/{{ _cni_consul_cni_package_name }}"
|
||
|
dest: "/tmp/consul-cni"
|
||
|
owner: "{{ cni_user }}"
|
||
|
group: "{{ cni_group }}"
|
||
|
mode: "0755"
|
||
|
remote_src: true
|
||
|
|
||
|
- name: "CNI Plugins | Copy consul-cni binary to {{ cni_plugins_install_path }}"
|
||
|
ansible.builtin.copy:
|
||
|
src: /tmp/consul-cni/consul-cni
|
||
|
dest: "{{ cni_plugins_install_path }}"
|
||
|
owner: "{{ cni_user }}"
|
||
|
group: "{{ cni_user }}"
|
||
|
mode: "0755"
|
||
|
remote_src: true
|
||
|
force: true
|
||
|
|
||
|
- name: "CNI Plugins | Update consul-cni version file"
|
||
|
ansible.builtin.copy:
|
||
|
content: "{{ _cni_consul_cni_wanted_version }}"
|
||
|
dest: "{{ cni_plugins_install_path }}/.consul-cni-version"
|
||
|
owner: "{{ cni_user }}"
|
||
|
group: "{{ cni_group }}"
|
||
|
mode: "0600"
|
||
|
|
||
|
- name: "CNI Plugins | Cleanup temporary directory"
|
||
|
ansible.builtin.file:
|
||
|
path: "{{ item }}"
|
||
|
state: absent
|
||
|
loop:
|
||
|
- /tmp/consul-cni
|
||
|
- /tmp/{{ _cni_consul_cni_package_name }}
|
||
|
- /tmp/{{ _cni_consul_cni_shasum_file_name }}
|