Refactoring and vmdb2 improvements
This commit is contained in:
parent
e94c68854d
commit
f61468fff5
28 changed files with 1257 additions and 0 deletions
213
ansible/install-chat.yml
Normal file
213
ansible/install-chat.yml
Normal file
|
|
@ -0,0 +1,213 @@
|
|||
---
|
||||
- name: Install chat
|
||||
hosts: all
|
||||
become: true
|
||||
tasks:
|
||||
- name: Install deps
|
||||
apt:
|
||||
name:
|
||||
- git
|
||||
- vim
|
||||
- lighttpd
|
||||
- sudo
|
||||
state: present
|
||||
update_cache: yes
|
||||
when: not ( is_vmdb2 | bool )
|
||||
|
||||
# install Go
|
||||
# # - name: Download Go tarball
|
||||
# get_url:
|
||||
# url: "https://go.dev/dl/go{{ go_version }}.linux-{{ go_arch_map[ansible_architecture] }}.tar.gz"
|
||||
# dest: /tmp/go.tar.gz
|
||||
# mode: '0644'
|
||||
#
|
||||
# - name: Extract Go to /usr/local
|
||||
# unarchive:
|
||||
# src: /tmp/go.tar.gz
|
||||
# dest: /usr/local
|
||||
# remote_src: yes
|
||||
# creates: /usr/local/go
|
||||
#
|
||||
# - name: Ensure Go path is in .profile
|
||||
# lineinfile:
|
||||
# path: "/home/{{ butter_user }}/.profile"
|
||||
# line: 'PATH=$PATH:/usr/local/go/bin'
|
||||
# insertafter: EOF
|
||||
# state: present
|
||||
# create: yes
|
||||
#
|
||||
# - name: Remove existing dendrite directory if it exists
|
||||
# file:
|
||||
# path: "/home/{{ butter_user }}/dendrite"
|
||||
# state: absent
|
||||
#
|
||||
# - name: Clone dendrite repo
|
||||
# git:
|
||||
# repo: https://github.com/matrix-org/dendrite
|
||||
# dest: "/home/{{ butter_user }}/dendrite"
|
||||
# version: v0.13.7
|
||||
# force: yes
|
||||
# update: no
|
||||
# depth: 1
|
||||
#
|
||||
# - name: Build dendrite
|
||||
# command: /usr/local/go/bin/go build -o bin/ ./cmd/...
|
||||
# args:
|
||||
# chdir: "/home/{{ butter_user }}/dendrite"
|
||||
#
|
||||
#
|
||||
|
||||
- name: copy Dendrite dir to target
|
||||
copy:
|
||||
src: "dendrite/"
|
||||
dest: "/home/{{ butter_user }}/dendrite"
|
||||
owner: "{{ butter_user }}"
|
||||
group: "{{ butter_user }}"
|
||||
|
||||
- name: Ensure butter_user owns Dendrite directory
|
||||
file:
|
||||
path: "/home/{{ butter_user }}/dendrite"
|
||||
state: directory
|
||||
recurse: yes
|
||||
owner: "{{ butter_user }}"
|
||||
group: "{{ butter_user }}"
|
||||
mode: "0755"
|
||||
|
||||
- name: Generate Matrix signing key
|
||||
command: ./bin/generate-keys --private-key matrix_key.pem
|
||||
args:
|
||||
chdir: "/home/{{ butter_user }}/dendrite"
|
||||
|
||||
- name: Generate self-signed TLS certificate (optional)
|
||||
command: ./bin/generate-keys --tls-cert server.crt --tls-key server.key
|
||||
args:
|
||||
chdir: "/home/{{ butter_user }}/dendrite"
|
||||
|
||||
- name: Download Dendrite config to target
|
||||
get_url:
|
||||
url: "{{ config_base_url }}/butterbox-dendrite.conf"
|
||||
dest: "/home/{{ butter_user }}/dendrite/butterbox-dendrite.conf"
|
||||
owner: "{{ butter_user }}"
|
||||
group: "{{ butter_user }}"
|
||||
mode: '0644'
|
||||
|
||||
- name: Replace REPLACEME with butter_name in config
|
||||
replace:
|
||||
path: "/home/{{ butter_user }}/dendrite/butterbox-dendrite.conf"
|
||||
regexp: 'REPLACEME'
|
||||
replace: "{{ butter_name }}"
|
||||
|
||||
- name: Replace /home/pi with /home/butter_user in config
|
||||
replace:
|
||||
path: "/home/{{ butter_user }}/dendrite/butterbox-dendrite.conf"
|
||||
regexp: '/pi/'
|
||||
replace: "/{{ butter_user }}/"
|
||||
|
||||
- name: Create log directory for Dendrite
|
||||
file:
|
||||
path: "/var/log/dendrite"
|
||||
state: directory
|
||||
owner: "{{ butter_user }}"
|
||||
group: "{{ butter_user }}"
|
||||
mode: '0755'
|
||||
recurse: yes
|
||||
|
||||
- name: Download dendrite systemd service file
|
||||
get_url:
|
||||
url: "{{ config_base_url }}/butterbox-dendrite.service"
|
||||
dest: /lib/systemd/system/dendrite.service
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
|
||||
- name: Replace /home/pi with /home/butter_user in service file
|
||||
replace:
|
||||
path: /lib/systemd/system/dendrite.service
|
||||
regexp: '/pi/'
|
||||
replace: "/{{ butter_user }}/"
|
||||
|
||||
- name: Replace pi with butter_user in service file
|
||||
replace:
|
||||
path: /lib/systemd/system/dendrite.service
|
||||
regexp: 'User=pi'
|
||||
replace: "User={{ butter_user }}"
|
||||
|
||||
- name: Enable dendrite by symlink
|
||||
file:
|
||||
src: /lib/systemd/system/dendrite.service
|
||||
dest: /etc/systemd/system/multi-user.target.wants/dendrite.service
|
||||
state: link
|
||||
|
||||
- name: Ensure butter_user owns Dendrite directory
|
||||
file:
|
||||
path: "/home/{{ butter_user }}/dendrite"
|
||||
state: directory
|
||||
recurse: yes
|
||||
owner: "{{ butter_user }}"
|
||||
group: "{{ butter_user }}"
|
||||
mode: "0755"
|
||||
|
||||
- name: Restart service dendrite, issue daemon-reload to pick up config changes
|
||||
ansible.builtin.systemd_service:
|
||||
state: restarted
|
||||
daemon_reload: true
|
||||
name: dendrite
|
||||
when: not (is_vmdb2 | bool)
|
||||
|
||||
- name: Download Matrix reverse proxy config for Lighttpd
|
||||
get_url:
|
||||
url: "{{ config_base_url }}/50-matrix-reverse-proxy.conf"
|
||||
dest: /etc/lighttpd/conf-available/50-matrix-reverse-proxy.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
|
||||
- name: Ensure old symlink is removed if it exists
|
||||
file:
|
||||
path: /etc/lighttpd/conf-enabled/50-matrix-reverse-proxy.conf
|
||||
state: absent
|
||||
force: true
|
||||
|
||||
- name: Enable reverse proxy config for Matrix in Lighttpd
|
||||
file:
|
||||
src: /etc/lighttpd/conf-available/50-matrix-reverse-proxy.conf
|
||||
dest: /etc/lighttpd/conf-enabled/50-matrix-reverse-proxy.conf
|
||||
state: link
|
||||
force: true
|
||||
|
||||
- name: Start dendrite as user butter_user
|
||||
become: yes
|
||||
become_user: "{{ butter_user }}"
|
||||
shell: |
|
||||
nohup /home/{{ butter_user }}/dendrite/bin/dendrite \
|
||||
--config /home/{{ butter_user }}/dendrite/butterbox-dendrite.conf \
|
||||
-really-enable-open-registration \
|
||||
> /var/log/dendrite/dendrite-provision.log 2>&1 &
|
||||
args:
|
||||
chdir: "/home/{{ butter_user }}"
|
||||
when: is_vmdb2 | bool
|
||||
|
||||
|
||||
- name: Wait for Dendrite client API to be available
|
||||
wait_for:
|
||||
host: "127.0.0.1"
|
||||
port: 8008
|
||||
delay: 3 # wait a few seconds before first check
|
||||
timeout: 60 # give it up to a minute to start
|
||||
state: started
|
||||
when: is_vmdb2 | bool
|
||||
|
||||
- name: Copy public room script
|
||||
template:
|
||||
src: templates/create_public_room.sh.j2
|
||||
dest: /home/pi/create_public_room.sh
|
||||
mode: '0755'
|
||||
|
||||
- name: Run the create_public_room.sh script
|
||||
command: /home/pi/create_public_room.sh
|
||||
register: room_creation
|
||||
ignore_errors: false
|
||||
|
||||
- name: Show room creation output
|
||||
debug:
|
||||
var: room_creation.stdout
|
||||
Loading…
Add table
Add a link
Reference in a new issue