hashistack/roles/nomad/tasks/cni_install.yml

79 lines
3.0 KiB
YAML
Raw Normal View History

---
# task/cni_install file for hashicorp_nomad
- name: "Nomad | Get release for cni_plugins:{{ nomad_cni_plugins_version }}"
vars:
_cni_plugins_url_ext: "{% if nomad_cni_plugins_version == 'latest'%}releases{% else %}releases/tags{% endif %}"
ansible.builtin.uri:
url: "{{ nomad_github_api }}/{{ nomad_cni_github_project }}/{{ _cni_plugins_url_ext }}/{{ nomad_cni_plugins_version }}"
return_content: true
register: _cni_plugins_new_release
- name: "Nomad | Check if cni plugin is already installed"
ansible.builtin.stat:
path: "{{ nomad_cni_plugins_install_path }}/version"
changed_when: false
check_mode: false
register: _cni_plugins_is_installed
- name: "Nomad | Check current cni plugin version"
ansible.builtin.command: "cat {{ nomad_cni_plugins_install_path }}/version"
changed_when: false
check_mode: false
register: _cni_plugins_old_release
when: _cni_plugins_is_installed.stat.exists
- name: "Nomad | Set facts for wanted cni plugins release"
ansible.builtin.set_fact:
nomad_cni_plugins_wanted_version: "{{ _cni_plugins_new_release.json['tag_name']|regex_replace('v', '') }}"
when: _cni_plugins_new_release.json is defined
and (_cni_plugins_new_release.json | length > 0)
- name: "Nomad | Set facts for current cni plugins release"
ansible.builtin.set_fact:
nomad_cni_plugins_current_version: "{{ _cni_plugins_old_release.stdout | regex_replace('v', '') }}"
when: _cni_plugins_old_release.stdout is defined
and (_cni_plugins_old_release.stdout | length > 0)
- name: "Nomad | Create cni directory"
ansible.builtin.file:
path: "{{ nomad_cni_plugins_install_path }}"
state: directory
owner: "{{ nomad_user }}"
group: "{{ nomad_group }}"
mode: "0755"
- name: "Nomad | Install cni plugins"
when: nomad_cni_plugins_current_version is not defined
or nomad_cni_plugins_wanted_version not in nomad_cni_plugins_current_version
block:
- name: "Nomad | Install cni plugins version:{{ nomad_cni_plugins_version }}"
ansible.builtin.get_url:
url: "{{ nomad_github_url }}/{{ nomad_cni_github_project }}/releases/download/v{{ nomad_cni_plugins_wanted_version }}/cni-plugins-linux-{{ nomad_architecture }}-v{{ nomad_cni_plugins_wanted_version }}.tgz"
dest: "/tmp/cni_plugin.tgz"
mode: "0644"
register: _cni_plugins_download_archive
until: _cni_plugins_download_archive is succeeded
retries: 5
delay: 2
check_mode: false
- name: "Nomad | Unpack cni plugins"
ansible.builtin.unarchive:
src: "/tmp/cni_plugin.tgz"
dest: "{{ nomad_cni_plugins_install_path }}"
owner: "{{ nomad_user }}"
group: "{{ nomad_group }}"
mode: "0755"
remote_src: true
- name: "Nomad | Remove temporary archive"
ansible.builtin.file:
path: "/tmp/cni_plugin.tgz"
state: absent
- name: "Nomad | Update version file"
ansible.builtin.copy:
content: "{{ nomad_cni_plugins_wanted_version }}"
dest: "{{ nomad_cni_plugins_install_path }}/version"
mode: "0600"