diff --git a/global.yml b/global.yml index 020dcaf..be2b246 100644 --- a/global.yml +++ b/global.yml @@ -3,4 +3,4 @@ roles: - system - autofs - \ No newline at end of file + - syncthing \ No newline at end of file diff --git a/group_vars/server b/group_vars/server index 86814d1..c148262 100644 --- a/group_vars/server +++ b/group_vars/server @@ -18,4 +18,7 @@ systemd_mounts: systemd_mounts_enabled: - diskstation_git - backup_disk - \ No newline at end of file + +syncthing_address: "{{inventory_hostname}}:8384" +syncthing_gui_user: "{{username}}" +syncthing_gui_password: $2a$10$nJZ8YN/1mB84Cbi79BKka.6SFMAKF.CBwyCNJDA9qUgXdkcuBilx2 \ No newline at end of file diff --git a/syncthing/defaults/main.yml b/syncthing/defaults/main.yml new file mode 100644 index 0000000..f749bc3 --- /dev/null +++ b/syncthing/defaults/main.yml @@ -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 \ No newline at end of file diff --git a/syncthing/handlers/main.yml b/syncthing/handlers/main.yml new file mode 100644 index 0000000..355706e --- /dev/null +++ b/syncthing/handlers/main.yml @@ -0,0 +1,5 @@ +--- +# handlers file for syncthing +- name: restart syncthing + service: name=syncthing@{{ username }} state=restarted + become: yes diff --git a/syncthing/meta/main.yml b/syncthing/meta/main.yml new file mode 100644 index 0000000..5d50bf4 --- /dev/null +++ b/syncthing/meta/main.yml @@ -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. \ No newline at end of file diff --git a/syncthing/tasks/main.yml b/syncthing/tasks/main.yml new file mode 100644 index 0000000..0d07dda --- /dev/null +++ b/syncthing/tasks/main.yml @@ -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 }}" \ No newline at end of file diff --git a/syncthing/vars/main.yml b/syncthing/vars/main.yml new file mode 100644 index 0000000..c935ef4 --- /dev/null +++ b/syncthing/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for syncthing \ No newline at end of file