--- - name: Install gopass tags: - gopass block: - name: Include vars for {{ ansible_os_family }} include_vars: "{{ ansible_os_family }}.yml" - name: Install gopass packages dependencies package: name: "{{ gopass_packages }}" state: present update_cache: yes - name: Check if gopass is already installed stat: path: /usr/bin/gopass register: gopass check_mode: no - name: Check local version installed shell: set -o pipefail && gopass --version | sed 's|gopass \([^ ,+]*\).*|\1|' register: gopass_locver changed_when: false check_mode: no when: - gopass.stat.exists - name: Check online version shell: set -o pipefail && curl -Ls {{ gopass_base_url }}/releases/latest | grep "Release " | sed 's/.*Release v\([^ ]*\).*/\1/' # shell: # set -o pipefail && curl -s https://api.github.com/repos/gopasspw/gopass/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/' # set -o pipefail && git ls-remote --tags --refs --sort="version:refname" {{ gopass_base_url }} | cut -d/ -f3- | sed s/v// | tail -n1 # set -o pipefail && curl -s "https://api.github.com/repos/gopasspw/gopass/releases/latest" | jq -r .tag_name | sed s/v// register: gopass_ver changed_when: false check_mode: no - name: Download gopass block: - name: Install the gopass rpm from a remote repo for yum distro yum: name: "{{ gopass_dl_url }}/v{{ gopass_ver.stdout }}/{{ gopass_file }}.rpm" state: present disable_gpg_check: yes when: - ansible_pkg_mgr == "yum" - name: Install the gopass rpm from a remote repo for dnf distro dnf: name: "{{ gopass_dl_url }}/v{{ gopass_ver.stdout }}/{{ gopass_file }}.rpm" state: present disable_gpg_check: yes when: - ansible_pkg_mgr == "dnf" - name: Install the gopass deb package from the internet for deb distro apt: deb: "{{ gopass_dl_url }}/v{{ gopass_ver.stdout }}/{{ gopass_file }}.deb" state: present when: - ansible_pkg_mgr == "apt" when: - not gopass.stat.exists or ( gopass_locver.stdout != gopass_ver.stdout ) - name: Create pass link file: src: "gopass" dest: "/usr/bin/pass" owner: root group: root state: link