- 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
|