aboutsummaryrefslogblamecommitdiffstats
path: root/roles/setup_syncthing/tasks/main.yml
blob: 431f27f0d0d7fa57d82a6fce8729e56e0b9ad3ac (plain) (tree)


































































































































                                                                                                                                                        

# =========================================================================== #
#                   __                                __  __    _            
#       _________  / /__       _______  ______  _____/ /_/ /_  (_)___  ____ _
#      / ___/ __ \/ / _ \     / ___/ / / / __ \/ ___/ __/ __ \/ / __ \/ __ `/
#     / /  / /_/ / /  __/    (__  ) /_/ / / / / /__/ /_/ / / / / / / / /_/ / 
#    /_/   \____/_/\___(_)  /____/\__, /_/ /_/\___/\__/_/ /_/_/_/ /_/\__, /  
#                                /____/                             /____/
#
# =========================================================================== #

---
- name: Add group syncthing
  group:
    name: "{{ syncthing_user }}"
    state: present

- name: Add user syncthing
  user:
    name: "{{ syncthing_user }}"
    comment: "{{ syncthing_group }}"
    group: "{{ syncthing_group }}"

- name: Create syncthing bin directory
  file:
    path: "{{ syncthing_bin_directory }}"
    state: directory
    owner: "{{ syncthing_user }}"
    group: "{{ syncthing_group }}"
    mode: 0755
    recurse: True

- name: Create syncthing sync directory
  file:
    path: "{{ syncthing_files_directory }}"
    state: directory
    owner: "{{ syncthing_user }}"
    group: "{{ syncthing_group }}"
    mode: 0755
    recurse: True

- name: Download and extract syncthing archive
  become_user: syncthing
  unarchive:
    src: "{{ syncthing_download_url }}/{{ syncthing_version }}/syncthing-{{ syncthing_os }}-{{ syncthing_architecture }}-{{ syncthing_version }}.tar.gz"
    dest: "{{ syncthing_download_directory }}"
    remote_src: yes

- name: Copy syncthing bin
  copy:
    src: "{{ syncthing_download_directory }}/syncthing-{{ syncthing_os }}-{{ syncthing_architecture }}-{{ syncthing_version }}/syncthing"
    remote_src: yes
    dest: "{{ syncthing_bin_directory }}"
    owner: "{{ syncthing_user }}"
    group: "{{ syncthing_group }}"
    mode: 0744

- name: Copy syncthing systemd unit
  template:
    src: "{{ syncthing_daemon_unit }}.service"
    dest: "{{ g_systemd_unit_directory }}"
    owner: root
    group: root
    mode: 0644

- name: Start syncthing systemd unit
  systemd:
    name: "{{ syncthing_daemon_unit }}"
    state: restarted
    daemon_reload: yes

- name: Stop syncthing systemd unit
  systemd:
    name: "{{ syncthing_daemon_unit }}"
    state: stopped

- name: Config networking
  xml:
    path: "{{ syncthing_config_directory }}/config.xml"
    xpath: /configuration/gui/address
    value: "0.0.0.0:{{ g_port_syncthing_gui }}"

- name: Config clear directory path
  xml:
    path: "{{ syncthing_config_directory }}/config.xml"
    xpath: "/configuration/folder/@path"
    state: present

- name: Config directory path
  replace:
    path: "{{ syncthing_config_directory }}/config.xml"
    regexp: "path=\"\""
    replace: "path=\"{{ syncthing_files_directory }}\""

- name: Config disable relay
  xml:
    path: "{{ syncthing_config_directory }}/config.xml"
    xpath: /configuration/options/relaysEnabled
    value: "{{ syncthing_b_relays }}"

- name: Config disable global announcements
  xml:
    path: "{{ syncthing_config_directory }}/config.xml"
    xpath: /configuration/options/globalAnnounceEnabled
    value: "{{ syncthing_b_global_announcements }}"

- name: Config disable nat
  xml:
    path: "{{ syncthing_config_directory }}/config.xml"
    xpath: /configuration/options/natEnabled
    value: "{{ syncthing_b_nat }}"

- name: Config disable crash reporting
  xml:
    path: "{{ syncthing_config_directory }}/config.xml"
    xpath: /configuration/options/crashReportingEnabled
    value: "{{ syncthing_b_crash_reporting }}"

- name: Config disable browser autostart
  xml:
    path: "{{ syncthing_config_directory }}/config.xml"
    xpath: /configuration/options/startBrowser
    value: "{{ syncthing_b_start_browser }}"

- name: Start and enable syncthing systemd unit
  systemd:
    name: "{{ syncthing_daemon_unit }}"
    state: restarted
    daemon_reload: yes
    enabled: yes

remember that computers suck.