Ricerca nel sito web

Come installare Mattermost su RHEL 7.1


introduzione

Mattermost è un cloud privato open source alternativo a Slack. Un sistema di messaggistica aziendale per web, PC e telefoni, rilasciato sotto licenza MIT.
In un tutorial precedente abbiamo parlato di come installarlo su Ubuntu 16.04.
Ora vediamo come installare e configurare Mattermost su una macchina RHEL 7.1 utilizzando MySQL come database.

Installa banca dati

Sul server scaricare MySQL 5.7 eseguendo il seguente comando:

wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

e installa il repository yum da quel file con:

yum localinstall mysql57-community-release-el7-9.noarch.rpm

Successivamente, installa MySQL:

yum install mysql-community-server

e avviarlo:

systemctl start mysqld

Dopo aver eseguito questo comando per la prima volta, MySQL genererà una password temporanea per l'account root. Per recuperarlo basta:

grep 'temporary password' /var/log/mysqld.log

Questo comando restituirà qualcosa del genere:

2017-03-02T08:21:27.969295Z 1 [Note] A temporary password is generated for root@localhost: Ed4SxpDyuH(y

Cambia la password di root. Per prima cosa accedi come root:

mysql -u root -p

Inserisci la password temporanea.
Successivamente, nella shell MySQL:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'my_new_root_strong_password';
mysql> EXIT;

Imposta MySQL per l'avvio automatico all'avvio:

chkconfig mysqld on

Avvia nuovamente la shell MySQL:

mysql -u root -p

Inserendo la nuova password di root, crea un utente per Mattermost e un nuovo database:

mysql> CREATE USER 'mmuser'@'localhost' IDENTIFIED BY 'mmuser_strong_password';
mysql> CREATE DATABASE mattermostdb;
mysql> GRANT ALL PRIVILEGES ON mattermostdb.* TO 'mmuser'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Installa Mattermost Server

Scarica l'ultima versione di Mattermost Server. Solo ad esempio, nel momento in cui scriviamo:

wget https://releases.mattermost.com/3.6.2/mattermost-3.6.2-linux-amd64.tar.gz

Estrai l'archivio e sposta la cartella "più importante" in

/opt
tar xf *.gz
mv mattermost /opt/

Crea una directory per i file di archiviazione:

mkdir /opt/mattermost/data

Assicurati che l'unità sia sufficientemente grande da contenere il numero previsto di file e immagini caricati su cui verranno archiviati

data

.
Successivamente, configura un utente e un gruppo, entrambi denominati "mattermost", e imposta la proprietà e le autorizzazioni:

useradd --system --user-group mattermost
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost

Configurare il driver del database tramite

/opt/mattermost/config/config.json

file. In esso, cerca le righe "DriverName" e "DataSource" e modifica come segue:

"DriverName": "mysql"
"DataSource": "mmuser:@tcp(localhost:3306)/mattermost?charset=utf8"
Save, exit, and test the Mattermost Server with the following command:
sudo -u mattermost /opt/mattermost/bin/platform

Se tutto funziona, dovrebbe essere visualizzato

 Server is listening on :8065

. Interrompilo con CTRL+C.

Crea un'unità systemd.

Crea un file systemd per Mattermost,

/etc/systemd/system/mattermost.service

e, in esso, incolla la seguente configurazione:

[Unit]
Description=Mattermost
After=syslog.target network.target postgresql-9.4.service

[Service]
Type=simple
WorkingDirectory=/opt/mattermost/bin
User=mattermost
ExecStart=/opt/mattermost/bin/platform
PIDFile=/var/spool/mattermost/pid/master.pid
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Rendilo eseguibile:

chmod 664 /etc/systemd/system/mattermost.service

E ricaricare i servizi:

systemctl daemon-reload

Abilita il servizio Mattermost:

chkconfig mattermost on

E avvialo con systemd:

systemctl start mattermost

Controlla se è in esecuzione visitando l'URL http://localhost:8065.

Installa e configura NGINX

Installazione

In un sistema di produzione, utilizzare un server proxy davanti a Mattermost Server. In questo caso, NGINX.
I principali vantaggi di questa operazione sono:

  • Terminazione SSL
  • Mappatura delle porte: da 80 a: 8065
  • Reindirizzamento da HTTP a HTTPS
  • Registri delle richieste standard

Per installare NGINX su RHEL 7.1, crea un file repository yum,

/etc/yum.repos.d/nginx.repo

, con il seguente contenuto:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/7.1/$basearch/
gpgcheck=0
enabled=1

Salva, esci e installa NGINX con yum:

yum install nginx.x86_64

Avvia NGINX e testalo:

systemctl start nginx
Configurazione

Per configurare NGINX come server proxy, creare il file

/etc/nginx/sites-available/mattermost

e passato:

upstream backend {
   server localhost:8065;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {
   listen 80;
   server_name    mattermost.mydomain.com;

   location /api/v3/users/websocket {
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       client_max_body_size 50M;
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_pass http://backend;
   }

   location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache mattermost_cache;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_pass http://backend;
   }
}

Rimuovere il file abilitato per il sito predefinito esistente con:

rm /etc/nginx/sites-enabled/default

e abilitare Mattermost:

ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/mattermost

Riavvia NGINX:

systemctl restart nginx

Conclusioni

Al termine di questo processo, il server dovrebbe essere attivo e funzionante. Con un browser web vai all'URL http://mattermost.mydomain.com e continua a configurare Mattermost inserendo un indirizzo email e creando un account.
È tutto! Il server è pronto per fungere da sistema di messaggistica!

Articoli correlati: