mattermost #182

Merged
mgauthier merged 4 commits from mattermost into unstable 2024-06-12 20:26:29 +02:00
2 changed files with 31 additions and 31 deletions
Showing only changes of commit c6393508f4 - Show all commits

View file

@ -2,45 +2,45 @@
# tasks file for mattermost install # tasks file for mattermost install
- name: Install main system dependencies - name: Install main system dependencies
apt: ansible.builtin.apt:
name: "{{ mattermost_system_dep }}" name: "{{ mattermost_system_dep }}"
update_cache: yes update_cache: yes
- name: Add UNIX account - name: Add UNIX account
user: ansible.builtin.user:
name: "{{ mattermost_service }}" name: "{{ mattermost_service }}"
shell: /bin/bash shell: /bin/bash
home: "{{ mattermost_home_base }}/{{ mattermost_service }}" home: "{{ mattermost_home_base }}/{{ mattermost_service }}"
- name: Add PostgreSQL user - name: Add PostgreSQL user
postgresql_user: ansible.builtin.postgresql_user:
name: "{{ mattermost_db_user }}" name: "{{ mattermost_db_user }}"
password: "{{ mattermost_db_password }}" password: "{{ mattermost_db_password }}"
no_password_changes: true no_password_changes: true
become_user: postgres become_user: postgres
- name: Add PostgreSQL database - name: Add PostgreSQL database
postgresql_db: ansible.builtin.postgresql_db:
name: "{{ mattermost_db_name }}" name: "{{ mattermost_db_name }}"
owner: "{{ mattermost_db_user }}" owner: "{{ mattermost_db_user }}"
become_user: postgres become_user: postgres
- name: Unarchive mattermost archive - name: Unarchive mattermost archive
unarchive: ansible.builtin.unarchive:
src: "{{ mattermost_download_url }}" src: "{{ mattermost_download_url }}"
dest: ~/ dest: ~/
remote_src: yes remote_src: yes
become_user: "{{ mattermost_service }}" become_user: "{{ mattermost_service }}"
- name: Create the mattermost data dir if needed - name: Create the mattermost data dir if needed
file: ansible.builtin.file:
path: ~/mattermost/data path: ~/mattermost/data
state: directory state: directory
mode: '0750' mode: '0750'
become_user: "{{ mattermost_service }}" become_user: "{{ mattermost_service }}"
- name: Template mattermost conf file - name: Template mattermost conf file
template: ansible.builtin.template:
src: "config.json.j2" src: "config.json.j2"
dest: "~/mattermost/config/config.json" dest: "~/mattermost/config/config.json"
become_user: "{{ mattermost_service }}" become_user: "{{ mattermost_service }}"
@ -51,70 +51,70 @@
dest: "/etc/systemd/system/mattermost@.service" dest: "/etc/systemd/system/mattermost@.service"
- name: Start mattermost systemd unit - name: Start mattermost systemd unit
service: ansible.builtin.service:
name: "mattermost@{{ mattermost_service }}" name: "mattermost@{{ mattermost_service }}"
state: restarted state: restarted
- name: Template nginx snippet for Let's Encrypt/Certbot - name: Template nginx snippet for Let's Encrypt/Certbot
template: ansible.builtin.template:
src: "letsencrypt.conf.j2" src: "letsencrypt.conf.j2"
dest: "/etc/nginx/snippets/letsencrypt.conf" dest: "/etc/nginx/snippets/letsencrypt.conf"
- name: Check if SSL certificate is present and register result - name: Check if SSL certificate is present and register result
stat: ansible.builtin.stat:
path: "/etc/letsencrypt/live/{{ mattermost_domains |first }}/fullchain.pem" path: "/etc/letsencrypt/live/{{ mattermost_domains |first }}/fullchain.pem"
register: ssl register: ssl
- name: Generate certificate only if required (first time) - name: Generate certificate only if required (first time)
block: block:
- name: Template vhost without SSL for successfull LE challengce - name: Template vhost without SSL for successfull LE challengce
template: ansible.builtin.template:
src: "vhost.conf.j2" src: "vhost.conf.j2"
dest: "/etc/nginx/sites-available/{{ mattermost_service }}.conf" dest: "/etc/nginx/sites-available/{{ mattermost_service }}.conf"
- name: Enable temporary nginx vhost for mattermost - name: Enable temporary nginx vhost for mattermost
file: ansible.builtin.file:
src: "/etc/nginx/sites-available/{{ mattermost_service }}.conf" src: "/etc/nginx/sites-available/{{ mattermost_service }}.conf"
dest: "/etc/nginx/sites-enabled/{{ mattermost_service }}.conf" dest: "/etc/nginx/sites-enabled/{{ mattermost_service }}.conf"
state: link state: link
- name: Reload nginx conf - name: Reload nginx conf
service: ansible.builtin.service:
name: nginx name: nginx
state: reloaded state: reloaded
- name: Make sure /var/lib/letsencrypt exists and has correct permissions - name: Make sure /var/lib/letsencrypt exists and has correct permissions
file: ansible.builtin.file:
path: /var/lib/letsencrypt path: /var/lib/letsencrypt
state: directory state: directory
mode: '0755' mode: '0755'
- name: Generate certificate with certbot - name: Generate certificate with certbot
shell: certbot certonly --webroot --webroot-path /var/lib/letsencrypt --non-interactive --agree-tos --email {{ mattermost_certbot_admin_email }} -d {{ mattermost_domains |first }} ansible.builtin.shell: certbot certonly --webroot --webroot-path /var/lib/letsencrypt --non-interactive --agree-tos --email {{ mattermost_certbot_admin_email }} -d {{ mattermost_domains |first }}
- name: Create the ssl dir if needed - name: Create the ssl dir if needed
file: ansible.builtin.file:
path: /etc/nginx/ssl path: /etc/nginx/ssl
state: directory state: directory
mode: '0750' mode: '0750'
- name: Template ssl bloc for nginx vhost - name: Template ssl bloc for nginx vhost
template: ansible.builtin.template:
src: "ssl.conf.j2" src: "ssl.conf.j2"
dest: "/etc/nginx/ssl/{{ mattermost_domains |first }}.conf" dest: "/etc/nginx/ssl/{{ mattermost_domains |first }}.conf"
when: ssl.stat.exists != true when: ssl.stat.exists != true
- name: (Re)check if SSL certificate is present and register result - name: (Re)check if SSL certificate is present and register result
stat: ansible.builtin.stat:
path: "/etc/letsencrypt/live/{{ mattermost_domains |first }}/fullchain.pem" path: "/etc/letsencrypt/live/{{ mattermost_domains |first }}/fullchain.pem"
register: ssl register: ssl
- name: (Re)template conf file for nginx vhost with SSL - name: (Re)template conf file for nginx vhost with SSL
template: ansible.builtin.template:
src: "vhost.conf.j2" src: "vhost.conf.j2"
dest: "/etc/nginx/sites-available/{{ mattermost_service }}.conf" dest: "/etc/nginx/sites-available/{{ mattermost_service }}.conf"
- name: Enable nginx vhost for mattermost - name: Enable nginx vhost for mattermost
file: ansible.builtin.file:
src: "/etc/nginx/sites-available/{{ mattermost_service }}.conf" src: "/etc/nginx/sites-available/{{ mattermost_service }}.conf"
dest: "/etc/nginx/sites-enabled/{{ mattermost_service }}.conf" dest: "/etc/nginx/sites-enabled/{{ mattermost_service }}.conf"
state: link state: link
- name: Reload nginx conf - name: Reload nginx conf
service: ansible.builtin.service:
name: nginx name: nginx
state: reloaded state: reloaded

View file

@ -2,33 +2,33 @@
# tasks file for mattermost upgrade # tasks file for mattermost upgrade
- name: Start mattermost systemd unit - name: Start mattermost systemd unit
service: ansible.builtin.service:
name: "mattermost@{{ mattermost_service }}" name: "mattermost@{{ mattermost_service }}"
state: stopped state: stopped
- name: set current date and time as a fact - name: set current date and time as a fact
set_fact: backup_date="{{ ansible_date_time.iso8601_basic_short }}" ansible.builtin.set_fact: backup_date="{{ ansible_date_time.iso8601_basic_short }}"
- name: backup current mattermost files - name: backup current mattermost files
command: "mv ~/mattermost/ ~/mattermost_{{ mattermost_backup_date }}" ansible.builtin.command: "mv ~/mattermost/ ~/mattermost_{{ mattermost_backup_date }}"
become_user: "{{ mattermost_service }}" become_user: "{{ mattermost_service }}"
- name: Dump database to a file with compression - name: Dump database to a file with compression
postgresql_db: ansible.builtin.postgresql_db:
name: "{{ mattermost_db_name }}" name: "{{ mattermost_db_name }}"
state: dump state: dump
target: "~/{{ mattermost_db_name }}.sql.gz" target: "~/{{ mattermost_db_name }}.sql.gz"
become_user: postgres become_user: postgres
- name: Unarchive new mattermost archive - name: Unarchive new mattermost archive
unarchive: ansible.builtin.unarchive:
src: "{{ mattermost_download_url }}" src: "{{ mattermost_download_url }}"
dest: ~/ dest: ~/
remote_src: yes remote_src: yes
become_user: "{{ mattermost_service }}" become_user: "{{ mattermost_service }}"
- name: restore dirs from backup - name: restore dirs from backup
copy: ansible.builtin.copy:
src: "{{ item }}" src: "{{ item }}"
dest: ~/mattermost dest: ~/mattermost
remote_src: true remote_src: true
@ -41,21 +41,21 @@
become_user: "{{ mattermost_service }}" become_user: "{{ mattermost_service }}"
- name: Start mattermost systemd unit - name: Start mattermost systemd unit
service: ansible.builtin.service:
name: "mattermost@{{ mattermost_service }}" name: "mattermost@{{ mattermost_service }}"
state: restarted state: restarted
- name: Reload nginx conf - name: Reload nginx conf
service: ansible.builtin.service:
name: nginx name: nginx
state: reloaded state: reloaded
- name: Define variable to skip next task by default - name: Define variable to skip next task by default
set_fact: ansible.builtin.set_fact:
keep_db_dump: true keep_db_dump: true
- name: Remove database dump - name: Remove database dump
file: ansible.builtin.file:
path: "~/{{ mattermost_db_name }}.sql.gz" path: "~/{{ mattermost_db_name }}.sql.gz"
state: absent state: absent
become_user: postgres become_user: postgres