ansible-synapse/roles/setup-synapse/tasks/element_setup.yml

113 lines
3.1 KiB
YAML
Raw Normal View History

---
- name: Template NGINX config for Element
become: yes
template:
src: "{{ role_path }}/templates/nginx-element.conf.j2"
dest: "/etc/nginx/sites-available/element"
owner: root
group: root
mode: '0644'
notify: Restart Nginx
- name: Create symbolic link for NGINX config
become: yes
file:
src: /etc/nginx/sites-available/element
dest: /etc/nginx/sites-enabled/element
state: link
force: yes
- name: Create the /var/www/element.penholder.xyz/ directory
become: yes
file:
path: "/var/www/element.{{ server_name}}"
state: directory
owner: root
group: root
mode: '0755'
- name: Download and install latest Element
become: yes
block:
- name: Install GPG
apt:
name: gnupg
state: present
- name: Copy Element release key to /tmp
copy:
src: "{{ playbook_dir }}/pubkey/element-release-key.gpg"
dest: /tmp/element-release-key.gpg
mode: '0644'
# need to install GPG key from https://packages.element.io/element-release-key.gpg
- name: Import Element release key
shell: gpg --import /tmp/element-release-key.gpg
- name: Download Element archive
get_url:
url: "https://github.com/vector-im/element-web/releases/download/v1.11.38/element-v1.11.38.tar.gz"
dest: "/tmp/element-v1.11.38.tar.gz"
- name: Download Element archive signature
get_url:
url: "https://github.com/vector-im/element-web/releases/download/v1.11.38/element-v1.11.38.tar.gz.asc"
dest: "/tmp/element-v1.11.38.tar.gz.asc"
- name: Verify Element archive signature
shell: gpg --verify /tmp/element-v1.11.38.tar.gz.asc /tmp/element-v1.11.38.tar.gz
args:
chdir: "/tmp"
- name: Extract Element archive
unarchive:
src: "/tmp/element-v1.11.38.tar.gz"
dest: "/tmp/"
remote_src: yes
args:
creates: "/var/www/element.{{ server_name}}/element-v1.11.38"
# Copy
# /tmp/element-v1.11.38/*
# /var/www/element.penholder.xyz/
- name: Copy Element files to web directory
shell: cp -r /tmp/element-v1.11.38/* /var/www/element.{{ server_name}}
args:
creates: "/var/www/element.{{ server_name}}/welcome.html"
- name: Clean up downloaded files
file:
path: "/tmp/element-v*"
state: absent
- name: Template the Element Config file
template:
src: "{{ role_path }}/templates/element.json.j2"
dest: "/var/www/element.{{ server_name}}/config.json"
owner: root
group: root
mode: '0644'
notify: Restart Nginx
# - name: Create and edit config.json for Element
# become: yes
# blockinfile:
# path: "/var/www/element.{{ server_name}}/config.json"
# create: yes
# content: |
# {
# "default_server_config": {
# "m.homeserver": {
# "base_url": "https://{{ server_name}}",
# "server_name": "{{ server_name}}"
# },
# "m.identity_server": {
# "base_url": "https://vector.im"
# }
# },
# # ... (other config options)
# }