create syncthing role finished

This commit is contained in:
vincent 2019-04-10 20:25:29 +02:00
parent d6bfc77823
commit 155aa20697
7 changed files with 168 additions and 2 deletions

View File

@ -3,4 +3,4 @@
roles:
- system
- autofs
- syncthing

View File

@ -19,3 +19,6 @@ systemd_mounts_enabled:
- diskstation_git
- backup_disk
syncthing_address: "{{inventory_hostname}}:8384"
syncthing_gui_user: "{{username}}"
syncthing_gui_password: $2a$10$nJZ8YN/1mB84Cbi79BKka.6SFMAKF.CBwyCNJDA9qUgXdkcuBilx2

View File

@ -0,0 +1,11 @@
---
# defaults file for syncthing
syncthing_address: 127.0.0.1:8384
syncthing_listen: tcp://0.0.0.0:22000
syncthing_home: /home/{{ username }}
syncthing_localannounce: true
syncthing_globalannounce: true
syncthing_upnp: true
#syncthing_gui_user: root
#password: root
#syncthing_gui_password: $2a$10$nJZ8YN/1mB84Cbi79BKka.6SFMAKF.CBwyCNJDA9qUgXdkcuBilx2

View File

@ -0,0 +1,5 @@
---
# handlers file for syncthing
- name: restart syncthing
service: name=syncthing@{{ username }} state=restarted
become: yes

60
syncthing/meta/main.yml Normal file
View File

@ -0,0 +1,60 @@
galaxy_info:
author: your name
description: your description
company: your company (optional)
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Some suggested licenses:
# - BSD (default)
# - MIT
# - GPLv2
# - GPLv3
# - Apache
# - CC-BY
license: license (GPLv2, CC-BY, etc)
min_ansible_version: 2.4
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
# Optionally specify the branch Galaxy will use when accessing the GitHub
# repo for this role. During role install, if no tags are available,
# Galaxy will use this branch. During import Galaxy will access files on
# this branch. If Travis integration is configured, only notifications for this
# branch will be accepted. Otherwise, in all cases, the repo's default branch
# (usually master) will be used.
#github_branch:
#
# Provide a list of supported platforms, and for each platform a list of versions.
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
# To view available platforms and versions (or releases), visit:
# https://galaxy.ansible.com/api/v1/platforms/
#
# platforms:
# - name: Fedora
# versions:
# - all
# - 25
# - name: SomePlatform
# versions:
# - all
# - 1.0
# - 7
# - 99.99
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
# if you add dependencies to this list.

85
syncthing/tasks/main.yml Normal file
View File

@ -0,0 +1,85 @@
---
# tasks file for syncthing
- name: install syncthing
pacman:
state: present
name: syncthing # not required. Name or list of names of the packages to install, upgrade, or remove.
become: yes
- name: start and enable syncthing
service:
name: syncthing@{{ username }} # required. Name of the service.
enabled: true # not required. Whether the service should start on boot. B(At least one of state and enabled are required.)
state: started
become: yes
- name: waiting for configfile (takes some time)
wait_for: path={{ syncthing_home }}/.config/syncthing/config.xml
- name: syncthing | config.xml set webinterface address
xml:
file={{ syncthing_home }}/.config/syncthing/config.xml
xpath=/configuration/gui/address
value={{ syncthing_address }}
notify: restart syncthing
become_user: "{{ username }}"
- name: syncthing | config.xml set listen address
xml:
file={{ syncthing_home }}/.config/syncthing/config.xml
xpath=/configuration/options/listenAddress
value={{ syncthing_listen }}
notify: restart syncthing
become_user: "{{ username }}"
- name: syncthing | config.xml set localAnnounceEnabled
xml:
file={{ syncthing_home }}/.config/syncthing/config.xml
xpath=/configuration/options/localAnnounceEnabled
value={{ syncthing_localannounce|lower }}
notify: restart syncthing
become_user: "{{ username }}"
- name: syncthing | config.xml set globalAnnounceEnabled
xml:
file={{ syncthing_home }}/.config/syncthing/config.xml
xpath=/configuration/options/globalAnnounceEnabled
value={{ syncthing_globalannounce|lower }}
notify: restart syncthing
become_user: "{{ username }}"
- name: syncthing | config.xml set upnpEnabled
xml:
file={{ syncthing_home }}/.config/syncthing/config.xml
xpath=/configuration/options/upnpEnabled
value={{ syncthing_upnp|lower }}
notify: restart syncthing
become_user: "{{ username }}"
- name: syncthing | config.xml set user
xml:
file={{ syncthing_home }}/.config/syncthing/config.xml
xpath=/configuration/gui/user
value={{ syncthing_gui_user }}
when: syncthing_gui_user is defined
notify: restart syncthing
become_user: "{{ username }}"
- name: syncthing | config.xml set password
xml:
file={{ syncthing_home }}/.config/syncthing/config.xml
xpath=/configuration/gui/password
value={{ syncthing_gui_password }}
when: syncthing_gui_password is defined
notify: restart syncthing
become_user: "{{ username }}"
- name: syncthing | config.xml set dark theme
xml:
file={{ syncthing_home }}/.config/syncthing/config.xml
xpath=/configuration/gui/theme
value=dark
notify: restart syncthing
become_user: "{{ username }}"

2
syncthing/vars/main.yml Normal file
View File

@ -0,0 +1,2 @@
---
# vars file for syncthing