Initial
This commit is contained in:
commit
9b8494b33b
7 changed files with 117 additions and 0 deletions
4
README.md
Normal file
4
README.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
DIUN - Docker Image Update Notifier
|
||||
===================================
|
||||
|
||||
This role installs [Duin](https://crazymax.dev/diun/).
|
7
defaults/main.yml
Normal file
7
defaults/main.yml
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
diun_user: duin
|
||||
diun_github_api_url: https://api.github.com/repos/crazy-max/diun/releases/latest
|
||||
duin_home: /var/lib/duin
|
||||
diun_binary_path: /usr/local/bin
|
||||
duin_configuration_path: /etc/diun
|
||||
duin_configuration_file: diun.yaml
|
6
handlers/main.yml
Normal file
6
handlers/main.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
- name: restart diun
|
||||
ansible.builtin.systemd:
|
||||
name: diun
|
||||
daemon_reload: true
|
||||
state: restarted
|
10
meta/main.yml
Normal file
10
meta/main.yml
Normal file
|
@ -0,0 +1,10 @@
|
|||
galaxy_info:
|
||||
author: Sense.Lab admin
|
||||
description: Role to install Diun
|
||||
company: Sense.Lab e.V.
|
||||
license: GPLv3
|
||||
min_ansible_version: "2.11"
|
||||
platforms:
|
||||
- name: Debian
|
||||
versions:
|
||||
- bullseye
|
53
tasks/main.yml
Normal file
53
tasks/main.yml
Normal file
|
@ -0,0 +1,53 @@
|
|||
---
|
||||
- name: "Create user"
|
||||
ansible.builtin.user:
|
||||
name: "{{ diun_user }}"
|
||||
shell: /bin/false
|
||||
create_home: false
|
||||
password_lock: true
|
||||
system: true
|
||||
group: "{{ diun_user }}"
|
||||
|
||||
- name: "Get download URL"
|
||||
ansible.builtin.shell:
|
||||
cmd: curl -sL "{{ diun_github_api_url }}" | jq '.assets[] | select(.name|match("linux_amd64.tar.gz$")) | .browser_download_url'"
|
||||
changed_when: false
|
||||
register: download_url
|
||||
|
||||
- name: "Unarchive binary"
|
||||
ansible.builtin.unarchive:
|
||||
src: download_url.stdout
|
||||
dest: "{{ diun_binary_path }}"
|
||||
include:
|
||||
- diun
|
||||
mode: 0755
|
||||
|
||||
- name: "Create directories"
|
||||
ansible.builtin.file:
|
||||
path: "{{ item }}"
|
||||
owner: "{{ diun_user }}"
|
||||
group: "{{ diun_user }}"
|
||||
mode: 0750
|
||||
loop:
|
||||
- "{{ diun_configuration_path }}"
|
||||
- "{{ diun_home }}"
|
||||
|
||||
- name: "Copy configuration file"
|
||||
ansible.builtin.template:
|
||||
src: "{{ diun_configuration_file }}"
|
||||
dest: "{{ diun_configuration_path }}"
|
||||
mode: 0644
|
||||
|
||||
- name: "Copy service file"
|
||||
ansible.builtin.template:
|
||||
src: diun.service
|
||||
dest: /etc/systemd/system/
|
||||
mode: 0644
|
||||
notify: restart duin
|
||||
|
||||
- name: "Enable service"
|
||||
ansible.builtin.systemd:
|
||||
name: diun
|
||||
enabled: true
|
||||
daemon_reload: true
|
||||
state: started
|
19
templates/diun.service
Normal file
19
templates/diun.service
Normal file
|
@ -0,0 +1,19 @@
|
|||
# Managed by Ansible
|
||||
|
||||
[Unit]
|
||||
Description=Diun
|
||||
Documentation=https://crazymax.dev/diun/
|
||||
After=syslog.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
RestartSec=2s
|
||||
Type=simple
|
||||
User={{ diun_user }}
|
||||
Group={{ diun_user }}
|
||||
ExecStart={{ diun_binary_path }}/diun serve --config {{ duin_configuration_path }}/{{ duin_configuration_file }} --log-level info
|
||||
Restart=always
|
||||
Environment=DIUN_DB_PATH={{ diun_home }}/diun.db
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
18
templates/diun.yaml
Normal file
18
templates/diun.yaml
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Managed by Ansible
|
||||
|
||||
db:
|
||||
path: {{ diun_home }}/diun.db
|
||||
|
||||
{% if diun_watch is defined %}
|
||||
{{ duin_watch }}
|
||||
{% endif %}
|
||||
|
||||
{% if diun_notif is defined %}
|
||||
notif:
|
||||
{{ duin_notif | indent(2, false) }}
|
||||
{% endif %}
|
||||
|
||||
{% if diun_providers is defined %}
|
||||
providers:
|
||||
{{ duin_providers | indent(2, false) }}
|
||||
{% endif %}
|
Loading…
Reference in a new issue