dendrite/server/tasks/main.yaml
changeset 163 40b78af86337
parent 159 05d0cf32e077
child 168 8e61e4bb714b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dendrite/server/tasks/main.yaml	Sun Jul 18 17:43:46 2021 -0500
@@ -0,0 +1,103 @@
+---
+
+- name: add dendrite user
+  become: yes
+  user: name="{{dendrite_user}}"
+
+# build
+- name: snap install golang
+  become: yes
+  snap: name="go" classic="yes"
+
+- name: unarchive dendrite
+  become: yes
+  unarchive:
+    remote_src: yes
+    src: "{{dendrite_tar}}"
+    dest: "/tmp/"
+    creates: "{{dendrite_build_dir}}"
+    owner: "{{dendrite_user}}"
+    group: "{{dendrite_user}}"
+
+- name: check if dendrite build exists
+  stat:
+    path: "{{dendrite_build_dir}}/bin"
+  register: build_file
+
+- name: build dendrite
+  become: yes
+  become_user: "{{dendrite_user}}"
+  command: "{{dendrite_build_dir}}/build.sh"
+  args:
+    chdir: "{{dendrite_build_dir}}"
+  when: not build_file.stat.exists
+  notify: restart service
+
+# install
+- name: install dendrite binary
+  become: yes
+  copy:
+    src: "{{dendrite_build_dir}}/bin/dendrite-monolith-server"
+    dest: "/usr/local/bin/dendrite-monolith-server"
+    remote_src: yes
+    owner: "root"
+    group: "root"
+    mode: "0755"
+
+- name: create instance dir
+  become: yes
+  file:
+    path: "{{item}}"
+    state: "directory"
+    owner: "{{dendrite_user}}"
+    group: "{{dendrite_user}}"
+    mode: "0755"
+  notify: reload service
+  loop:
+    - "{{dendrite_dir}}"
+    - "{{dendrite_dir}}/{{dendrite_instance}}"
+
+- name: install keys
+  become: yes
+  copy:
+    src: "{{item}}"
+    dest: "{{dendrite_dir}}/{{dendrite_instance}}/"
+    owner: "{{dendrite_user}}"
+    group: "{{dendrite_user}}"
+    mode: "0600"
+  loop: "{{dendrite_keys}}"
+
+- name: copy db schema file
+  become: yes
+  template:
+    src: "setup_db.psql.j2"
+    dest: "/tmp/setup_db_dendrite_{{dendrite_instance}}.psql"
+    owner: "postgres"
+    group: "postgres"
+    mode: "0600"
+
+- name: install db schema psql
+  become: yes
+  become_user: "postgres"
+  command: "psql -f /tmp/setup_db_dendrite_{{dendrite_instance}}.psql"
+  changed_when: false
+
+- name: configure dendrite
+  become: yes
+  template:
+    src: "dendrite.yaml.j2"
+    dest: "{{dendrite_dir}}/{{dendrite_instance}}/dendrite.yaml"
+    mode: "0644"
+    owner: "{{dendrite_user}}"
+    group: "{{dendrite_user}}"
+  notify: reload service
+
+- name: install systemd service
+  become: yes
+  template:
+    src: "[email protected]"
+    dest: "/lib/systemd/system/[email protected]"
+
+- name: ensure service is started
+  become: yes
+  systemd: name="dendrite@{{dendrite_instance}}.service" enabled="yes" state="started"