mirror of
https://github.com/roles-ansible/ansible_role_etesync_dav.git
synced 2024-08-16 10:09:54 +02:00
Create Etesync.dav setup
This commit is contained in:
parent
957301147d
commit
9e8fffa145
8 changed files with 100 additions and 5 deletions
|
@ -1,5 +1,7 @@
|
||||||
---
|
---
|
||||||
etesync_dav__user: 'etesync_dav'
|
etesync_dav__version: 'latest'
|
||||||
|
etesync_dav__executable: '/usr/local/bin/etesync-dav'
|
||||||
|
etesync_dav__port: '37358'
|
||||||
|
|
||||||
# should we do a version check? (recomended)
|
# should we do a version check? (recomended)
|
||||||
submodules_versioncheck: false
|
submodules_versioncheck: false
|
||||||
|
|
15
handlers/main.yml
Normal file
15
handlers/main.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
- name: Run systemctl enable etesync-dav.service
|
||||||
|
become: true
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: 'etesync-dav.service'
|
||||||
|
enabled: true
|
||||||
|
state: 'started'
|
||||||
|
daemon_reload: true
|
||||||
|
|
||||||
|
- name: Run systemctl restart etesync-dav.service
|
||||||
|
become: true
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: 'etesync-dav.service'
|
||||||
|
enabled: true
|
||||||
|
state: 'restarted'
|
10
tasks/download_etesync_dav.yml
Normal file
10
tasks/download_etesync_dav.yml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
- name: "Download etesync-dav version v{{ etesync_dav__version_target }}"
|
||||||
|
become: true
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: "{{ etesync_dav__dl_url }}"
|
||||||
|
dest: "{{ etesync_dav__executable }}"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0755"
|
||||||
|
notify: 'Run systemctl restart etesync-dav.service'
|
38
tasks/get_version_of_etesync_dav.yml
Normal file
38
tasks/get_version_of_etesync_dav.yml
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
---
|
||||||
|
- name: "Determine 'latest' version release"
|
||||||
|
when: etesync_dav__version == "latest"
|
||||||
|
block:
|
||||||
|
- name: "Get latest etesync-dav release metadata"
|
||||||
|
ansible.builtin.uri:
|
||||||
|
url: "{{ etesync_dav__repo_api }}"
|
||||||
|
return_content: true
|
||||||
|
register: etesync_dav__remote_metadata
|
||||||
|
become: false
|
||||||
|
when: not ansible_check_mode
|
||||||
|
|
||||||
|
- name: "Fail if running in check mode without versions set."
|
||||||
|
ansible.builtin.fail:
|
||||||
|
msg: |
|
||||||
|
"You are running this playbook in check mode:
|
||||||
|
Please set the desired version with the variable
|
||||||
|
'etesync_dav__version', because the URI module cannot detect the latest version in this mode."
|
||||||
|
when: ansible_check_mode and (etesync_dav__version == 'latest')
|
||||||
|
|
||||||
|
- name: "Set fact latest etesync-dav release"
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
etesync_dav__remote_version: "{{ etesync_dav__remote_metadata.json.tag_name[1:] }}"
|
||||||
|
when: not ansible_check_mode
|
||||||
|
|
||||||
|
- name: "Set etesync-dav version target (latest)"
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
etesync_dav__version_target: "{{ etesync_dav__remote_version }}"
|
||||||
|
when: not ansible_check_mode
|
||||||
|
|
||||||
|
- name: "Set etesync-dav version target {{ etesync_dav__version }}"
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
etesync_dav__version_target: "{{ etesync_dav__version }}"
|
||||||
|
when: etesync_dav__version != "latest"
|
||||||
|
|
||||||
|
- name: "Generate etesync-dav download URL"
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
etesync_dav__dl_url: "https://github.com/etesync/etesync-dav/releases/download/v{{ etesync_dav__version_target }}/linux-amd64-etesync-dav"
|
|
@ -2,3 +2,12 @@
|
||||||
- name: Run optional versionscheck
|
- name: Run optional versionscheck
|
||||||
ansible.builtin.include_tasks: versioncheck.yml
|
ansible.builtin.include_tasks: versioncheck.yml
|
||||||
when: submodules_versioncheck | bool
|
when: submodules_versioncheck | bool
|
||||||
|
|
||||||
|
- name: Get Version of etesync-dav
|
||||||
|
ansible.builtin.include_tasks: tasks/get_version_of_etesync_dav.yml
|
||||||
|
|
||||||
|
- name: Download etesync-dav
|
||||||
|
ansible.builtin.include_tasks: download_etesync_dav.yml
|
||||||
|
|
||||||
|
- name: Setup Systemd service
|
||||||
|
ansible.builtin.include_tasks: setup_systemd.yml
|
||||||
|
|
12
tasks/setup_systemd.yml
Normal file
12
tasks/setup_systemd.yml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
---
|
||||||
|
- name: Generate etesync-dav.service
|
||||||
|
become: true
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: 'templates/etesync-dav.service.j2'
|
||||||
|
dest: '/usr/lib/systemd/system/etesync-dav.service'
|
||||||
|
mode: '0644'
|
||||||
|
owner: 'root'
|
||||||
|
group: 'root'
|
||||||
|
notify:
|
||||||
|
- 'Run systemctl restart etesync-dav.service'
|
||||||
|
- 'Run systemctl enable etesync-dav.service'
|
11
templates/etesync-dav.service.j2
Normal file
11
templates/etesync-dav.service.j2
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{{ ansible_managed | comment }}
|
||||||
|
[Unit]
|
||||||
|
Description=Cal/CardDAV frontend for Etesync
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
Environment=ETESYNC_LISTEN_PORT={{ etesync_dav__port }}
|
||||||
|
ExecStart={{ etesync_dav__executable }}
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
|
@ -1,8 +1,6 @@
|
||||||
---
|
---
|
||||||
etesync_dav__repo: 'https://github.com/etesync/server.git'
|
etesync_dav__repo_api: 'https://api.github.com/repos/etesync/etesync-dav/releases/latest'
|
||||||
etesync_dav__repo_api: 'https://api.github.com/repos/etesync/server/tags'
|
|
||||||
etesync_dav__venv: "{{ etesync_dav__venv_path }}/{{ etesync_dav_version_target }}"
|
|
||||||
|
|
||||||
# versionscheck
|
# versionscheck
|
||||||
playbook_version_number: 15 # should be a integer
|
playbook_version_number: 16
|
||||||
playbook_version_path: 'role-l3d.etesync_dav.version'
|
playbook_version_path: 'role-l3d.etesync_dav.version'
|
||||||
|
|
Loading…
Reference in a new issue