iloth_ansible/roles/mattermost/tasks/main.yml

106 lines
2.7 KiB
YAML

---
- name: Download binary from MatterMost website
get_url:
url: https://releases.mattermost.com/{{ mattermost_version }}/mattermost-{{ mattermost_version }}-linux-amd64.tar.gz
dest: /tmp/
- name: unpack mattermost archive
unarchive:
src: /tmp/mattermost-{{ mattermost_version }}-linux-amd64.tar.gz
dest: /opt/
copy: no
args:
creates: /opt/mattermost/bin/platform
- name: Edit /opt/mattermost/config/config.json
lineinfile:
dest: /opt/mattermost/config/config.json
regexp: '"DriverName": "mysql",'
line: ' "DriverName": "postgres",'
backrefs: yes
- name: Edit /opt/mattermost/config/config.json
lineinfile:
dest: /opt/mattermost/config/config.json
regexp: '"DataSource":'
line: '"DataSource": "postgres://{{ db_user }}:{{ db_pass }}@127.0.0.1:5432/{{ db_name }}?sslmode=disable&connect_timeout=10",'
backrefs: yes
- name: Change mattermost directory permissions
file:
path: /opt/mattermost
state: directory
owner: "{{ mattermost_user }}"
group: "{{ mattermost_user }}"
recurse: yes
- name: Create data directory for Mattermost
file:
path: /opt/mattermost/data
state: directory
mode: '0755'
- name: Edit /
lineinfile:
dest: /etc/postgresql/11/main/pg_hba.conf
regexp: 'local all postgres peer'
line: 'local all postgres trust'
backrefs: yes
- name: ensure postgresql is running
service:
name: postgresql
state: restarted
- name: ensure database is created
become: yes
become_user: "{{ mattermost_user }}"
postgresql_db:
name: "{{ db_name }}"
- name: ensure user has access to database
become: yes
become_user: "{{ mattermost_user }}"
postgresql_user:
db: "{{ db_name }}"
name: "{{ db_user }}"
password: "{{ db_pass }}"
priv: ALL
- name: ensure user does not have unnecessary privilege
become: yes
become_user: "{{ username }}"
postgresql_user:
name: "{{ db_user }}"
role_attr_flags: NOSUPERUSER,NOCREATEDB
- name: Create nginx configuration
template:
src: mattermost.conf.j2
dest: /etc/nginx/sites-available/mattermost.conf
owner: root
group: root
mode: 0664
- name: Create a symbolic link
file:
src: /etc/nginx/sites-available/mattermost.conf
dest: /etc/nginx/sites-enabled/mattermost.conf
owner: root
group: root
state: link
- name: Create mattermost systemd service
template:
src: mattermost.service.j2
dest: /etc/systemd/system/mattermost.service
owner: root
group: root
mode: 0664
- name: Enable Mattermost service
service:
name: mattermost
enabled: yes
state: started