- - name: install postgresql
- apt:
- name: "{{ item }}"
- state: present
- update_cache: yes
- cache_valid_time: 3600
- with_items:
- - postgresql
- - postgresql-contrib
- - python-psycopg2
- - ca-certificates
-
- - name: generate mattermost DB password
- gen_passwd:
- length: 20
- register: new_password
-
- - block:
- - name: create mattermost DB
- postgresql_db:
- name: mattermost
- - name: create mattermost DB user
- postgresql_user:
- name: mmuser
- password: "{{ new_password.passwd }}"
- db: mattermost
- priv: ALL
- become: true
- become_method: su
- become_user: postgres
-
- - name: download latest mattermost
- get_url:
- url: "https://releases.mattermost.com/{{ mattermost_version }}/mattermost-team-{{ mattermost_version }}-linux-amd64.tar.gz"
- dest: "/opt/mattermost.tar.gz"
- register: new_download
-
- - name: unpack mattermost
- unarchive:
- src: /opt/mattermost.tar.gz
- dest: /opt
- copy: no
- when: new_download.changed
-
- - name: create mattermost data directory
- file:
- path: /opt/mattermost/data
- state: directory
-
- - name: create mattermost group
- group:
- name: mattermost
- system: true
-
- - name: create mattermost user and group
- user:
- name: mattermost
- group: mattermost
- system: true
-
- - name: set mattermost directory permissions
- file:
- path: /opt/mattermost
- owner: mattermost
- group: mattermost
- mode: g+w
- recurse: true
-
- - name: configure mattermost (driver name)
- json_file:
- path: /opt/mattermost/config/config.json
- key: "SqlSettings.DriverName"
- value: "postgres"
-
- - name: configure mattermost (data source)
- json_file:
- path: /opt/mattermost/config/config.json
- key: "SqlSettings.DataSource"
- value: "postgres://mmuser:{{ new_password.passwd }}@127.0.0.1:5432/mattermost?sslmode=disable&connect_timeout=10"
-
- - name: install mattermost systemd unit
- template:
- src: mattermost.service.j2
- dest: /etc/systemd/system/mattermost.service
-
- - name: enable mattermost service
- service:
- name: mattermost
- enabled: yes
- state: started
|