From cdb2f095e6370cd9c2f7ef7fdb720e1a521ccfab Mon Sep 17 00:00:00 2001 From: Adrien Reslinger Date: Thu, 14 Jan 2021 01:35:27 +0100 Subject: [PATCH] First commit --- meta/main.yml | 16 +++++++++++++ tasks/main.yml | 61 +++++++++++++++++++++++++++++++++++++++++++++++++ vars/Debian.yml | 6 +++++ vars/RedHat.yml | 5 ++++ 4 files changed, 88 insertions(+) create mode 100644 meta/main.yml create mode 100644 tasks/main.yml create mode 100644 vars/Debian.yml create mode 100644 vars/RedHat.yml diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..ef97ec7 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,16 @@ +galaxy_info: + author: Adrien Reslinger + description: Install GoPass + company: Personnal + min_ansible_version: 2.9 + galaxy_tags: [] + license: GPL2 + platforms: + - name: CentOS + version: + - 7 + - 8 + - name: RedHat + version: + - 7 + - 8 diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..dee11e7 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,61 @@ +--- +- 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/local/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 -s https://github.com/gopasspw/gopass/releases/latest | sed 's|.*tag/v\(.*\)".*|\1|' + 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: "https://github.com/gopasspw/gopass/releases/download/v{{ gopass_ver.stdout }}/gopass_{{ gopass_ver.stdout }}_{{ ansible_system }}_{{ ansible_machine }}.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: "https://github.com/gopasspw/gopass/releases/download/v{{ gopass_ver.stdout }}/gopass_{{ gopass_ver.stdout }}_{{ ansible_system | lower }}_{{ ansible_machine }}.rpm" + name: "https://github.com/gopasspw/gopass/releases/download/v{{ gopass_ver.stdout }}/gopass_{{ gopass_ver.stdout }}_{{ ansible_system | lower }}_amd64.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: "https://github.com/gopasspw/gopass/releases/download/v{{ gopass_ver.stdout }}/gopass_{{ gopass_ver.stdout }}_{{ ansible_system }}_{{ ansible_machine }}.deb" + state: present + when: + - ansible_pkg_mgr == "apt" + when: + - not gopass.stat.exists or ( gopass_locver.stdout != gopass_ver.stdout ) \ No newline at end of file diff --git a/vars/Debian.yml b/vars/Debian.yml new file mode 100644 index 0000000..d40d96d --- /dev/null +++ b/vars/Debian.yml @@ -0,0 +1,6 @@ +--- +gopass_packages: + - gnupg + - git + - rng-tools + diff --git a/vars/RedHat.yml b/vars/RedHat.yml new file mode 100644 index 0000000..83ca1a5 --- /dev/null +++ b/vars/RedHat.yml @@ -0,0 +1,5 @@ +--- +gopass_packages: + - gnupg2 + - git + - rng-tools