vikunja/tasks/api.yml
2023-02-06 20:19:22 +01:00

210 lines
5.8 KiB
YAML

- name: "Get vikunja gitea release json"
uri:
url: https://kolaente.dev/api/v1/repos/vikunja/api/releases
method: GET
return_content: yes
status_code: 200
body_format: json
register: vikunja_repo
tags:
- api
- name: "Remove v on release name"
ansible.builtin.shell: "echo {{ vikunja_repo.json.0.tag_name }} | sed 's/v//g'"
register: vikunja_version_without_v
tags:
- api
- name: "Get vikunja version"
set_fact: vikunja_version={{ vikunja_version_without_v.stdout }}
tags:
- api
- name: Display version of API
ansible.builtin.debug:
msg:
- "API version use : {{ vikunja_version }}"
- name: "Get Vikunja key"
ansible.builtin.shell: "gpg --keyserver keyserver.ubuntu.com --recv FF054DACD908493A"
register: vikunja_version_without_v
tags:
- api
args:
chdir: "{{ item.home | default('/var/opt/vikunja') }}"
become: yes
become_user : "{{ item.name | default('vikunja') }}"
become_method: su
become_flags: '-s /bin/bash'
loop: "{{ vikunja }}"
- name: Download Vikunja
ansible.builtin.get_url:
url: "https://dl.vikunja.io/api/{{ vikunja_version }}/vikunja-v{{ vikunja_version }}-linux-amd64-full.zip"
dest: "{{ item.home | default('/var/opt/vikunja') }}/vikunja-v{{ vikunja_version }}-linux-amd64-full.zip"
mode: '0640'
tags:
- api
become: yes
become_user : "{{ item.name | default('vikunja') }}"
become_method: su
become_flags: '-s /bin/bash'
loop: "{{ vikunja }}"
- name: Download Vikunja signature
ansible.builtin.get_url:
url: "https://dl.vikunja.io/api/{{ vikunja_version }}/vikunja-v{{ vikunja_version }}-linux-amd64-full.zip.asc"
dest: "{{ item.home | default('/var/opt/vikunja') }}/vikunja-v{{ vikunja_version }}-linux-amd64-full.zip.asc"
mode: '0640'
tags:
- api
become: yes
become_user : "{{ item.name | default('vikunja') }}"
become_method: su
become_flags: '-s /bin/bash'
loop: "{{ vikunja }}"
- name: "Test Vikunja signature"
ansible.builtin.shell: "gpg --verify {{ item.home | default('/var/opt/vikunja') }}/vikunja-v{{ vikunja_version }}-linux-amd64-full.zip.asc {{ item.home | default('/var/opt/vikunja') }}/vikunja-v{{ vikunja_version }}-linux-amd64-full.zip"
tags:
- api
args:
chdir: "{{ item.home | default('/var/opt/vikunja') }}"
become: yes
become_user : "{{ item.name | default('vikunja') }}"
become_method: su
become_flags: '-s /bin/bash'
loop: "{{ vikunja }}"
- name: "Create vikunja directory"
ansible.builtin.file:
path: "{{ item.home | default('/var/opt/vikunja') }}/vikunja"
state: directory
mode: '0750'
become: yes
become_user : "{{ item.name | default('vikunja') }}"
become_method: su
become_flags: '-s /bin/bash'
loop: "{{ vikunja }}"
tags:
- api
- name: "Unarchive vikunja"
ansible.builtin.unarchive:
src: "{{ item.home | default('/var/opt/vikunja') }}/vikunja-v{{ vikunja_version }}-linux-amd64-full.zip"
dest: "{{ item.home | default('/var/opt/vikunja') }}/vikunja"
remote_src: yes
become: yes
become_user : "{{ item.name | default('vikunja') }}"
become_method: su
become_flags: '-s /bin/bash'
loop: "{{ vikunja }}"
tags:
- api
- name: "Test Vikunja binary sha256"
ansible.builtin.shell: "sha256sum -c vikunja-v{{ vikunja_version }}-linux-amd64.sha256"
tags:
- api
args:
chdir: "{{ item.home | default('/var/opt/vikunja') }}/vikunja"
become: yes
become_user : "{{ item.name | default('vikunja') }}"
become_method: su
become_flags: '-s /bin/bash'
loop: "{{ vikunja }}"
- name: "Rename Vikunja binary"
ansible.builtin.shell: "mv vikunja-v{{ vikunja_version }}-linux-amd64 vikunja"
tags:
- api
args:
chdir: "{{ item.home | default('/var/opt/vikunja') }}/vikunja"
become: yes
become_user : "{{ item.name | default('vikunja') }}"
become_method: su
become_flags: '-s /bin/bash'
loop: "{{ vikunja }}"
- name: "Clean sha256 file"
ansible.builtin.file:
path: "{{ item.home | default('/var/opt/vikunja') }}/vikunja/vikunja-v{{ vikunja_version }}-linux-amd64.sha256"
state: absent
tags:
- api
become: yes
become_user : "{{ item.name | default('vikunja') }}"
become_method: su
become_flags: '-s /bin/bash'
loop: "{{ vikunja }}"
- name: "Clean zip file"
ansible.builtin.file:
path: "{{ item.home | default('/var/opt/vikunja') }}/vikunja-v{{ vikunja_version }}-linux-amd64-full.zip"
state: absent
tags:
- api
become: yes
become_user : "{{ item.name | default('vikunja') }}"
become_method: su
become_flags: '-s /bin/bash'
loop: "{{ vikunja }}"
- name: "Clean asc file"
ansible.builtin.file:
path: "{{ item.home | default('/var/opt/vikunja') }}/vikunja-v{{ vikunja_version }}-linux-amd64-full.zip.asc"
state: absent
tags:
- api
become: yes
become_user : "{{ item.name | default('vikunja') }}"
become_method: su
become_flags: '-s /bin/bash'
loop: "{{ vikunja }}"
- name: Add service
ansible.builtin.template:
src: vikunja.service.j2
dest: "/etc/systemd/system/{{ item.name | default('vikunja') }}_vikunja.service"
owner: root
group: root
mode: '0644'
loop: "{{ vikunja }}"
tags:
- api
- name: Add configuration
ansible.builtin.template:
src: config.yml.j2
dest: "{{ item.home | default('/var/opt/vikunja') }}/vikunja/config.yml"
owner: vikunja
group: vikunja
mode: '0600'
loop: "{{ vikunja }}"
tags:
- api
- name: Reload systemd
ansible.builtin.systemd:
daemon_reload: yes
name: "{{ item.name | default('vikunja') }}_vikunja.service"
loop: "{{ vikunja }}"
tags:
- api
- name: Enable bitwarden
ansible.builtin.systemd:
enabled: yes
name: "{{ item.name | default('vikunja') }}_vikunja.service"
loop: "{{ vikunja }}"
tags:
- api
- name: Restart vikunja
ansible.builtin.systemd:
state: restarted
name: "{{ item.name | default('vikunja') }}_vikunja.service"
loop: "{{ vikunja }}"
tags:
- api