ansible-role-lego/tasks/main.yml
2021-03-17 23:57:02 +01:00

54 lines
1.4 KiB
YAML

---
- name: Install lego
tags:
- lego
block:
- name: Check if lego is already installed
stat:
path: /usr/local/bin/lego
register: lego
check_mode: no
- name: Check local version installed
shell: set -o pipefail && lego --version | sed 's|lego version \([^ ,+]*\).*|\1|'
register: lego_locver
changed_when: false
check_mode: no
when:
- lego.stat.exists
- name: Check online version
shell: set -o pipefail && curl -s {{ lego_base_url }}/releases/latest | sed 's|.*tag/v\(.*\)".*|\1|'
register: lego_ver
changed_when: false
check_mode: no
- name: Make lego temporary directory
file:
path: /tmp/lego_install
state: directory
- name: Download lego
block:
- name: Retreive lego archive file and extract it to temporary directory
ansible.builtin.unarchive:
src: "{{ lego_dl_url }}/v{{ lego_ver.stdout }}/{{ lego_file }}"
dest: /tmp/lego_install
remote_src: yes
- name: Install lego binary from temporary directory
ansible.builtin.copy:
src: /tmp/lego_install/lego
dest: /usr/local/bin/lego
owner: root
group: root
mode: u=rwx,g=rx,o=rx
remote_src: yes
- name: Remove lego temporary directory
file:
path: /tmp/lego_install
state: absent
when:
- not lego.stat.exists or ( lego_locver.stdout != lego_ver.stdout )