Cách cài đặt và cấu hình Mattermost trên CentOS 8

theanh

Administrator
Nhân viên
Mattermost là hệ thống nhắn tin cá»™ng tác nhóm doanh nghiệp miá»…n phÃ, mã nguồn mở và tá»± lưu trữ. Nó được viết bằng Golang và React, và sá» dụng MySQL/MariaDB/PostgreSQL lÃm cÆ¡ sở dữ liệu phụ trợ. Nó cung cấp máy khách để bÃn cho Windows, macOS và Linux và ứng dụng di động cho iOS và Android Nó rất giống vá»›i Slack và táºp hợp tất cả các giao tiếp nhóm cá»§a bạn vÃo má»™t nÆ¡i. Nó cung cấp các tÃnh năng rất hữu Ãch bao gồm nhắn tin má»™t-má»™t và nhóm, chia sẻ tệp, cuá»™c gọi video, biểu tượng cảm xúc tùy chỉnh, webhooks & lệnh và nhiều tÃnh năng khác.

Trong hướng dẫn nÃy, chúng tôi sẽ chỉ cho bạn cách cÃi đặt Mattermost trên CentOS 8.

Điều kiện tiên quyết​

  • Máy chá»§ chạy CentOS 8.
  • Máºt khẩu gốc được định cấu hình trên máy chá»§ cá»§a bạn.

CÃi đặt và định cấu hình cÆ¡ sở dữ liệu MariaDB​

Mattermost sá» dụng MariaDB/MySQL lÃm cÆ¡ sở dữ liệu phụ trợ. Vì váºy MariaDB phải được cÃi đặt trên máy chá»§ cá»§a bạn. Nếu chưa cÃi đặt, bạn có thể cÃi đặt bằng lệnh sau:
Mã:
dnf install mariadb-server -y
Sau khi cÃi đặt, hãy khởi động dịch vụ MariaDB và cho phép dịch vụ nÃy khởi động sau khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl start mariadb
 systemctl enable mariadb
Theo mặc định, MariaDB không được bảo máºt và máºt khẩu gốc không được đặt trong CentOS 8. Vì váºy, bạn có thể đặt máºt khẩu bằng lệnh sau:
Mã:
mysql_secure_installation
Trả lời tất cả các câu hỏi như được hiển thị bên dưới:
Mã:
Nháºp máºt khẩu hiện tại cho root (nháºp nếu không):Đặt máºt khẩu root? [C/N] CMáºt khẩu má»›i:Nháºp lại máºt khẩu má»›i:Xóa người dùng ẩn danh? [C/N] CKhông cho phép root đăng nháºp từ xa? [C/N] CXóa cÆ¡ sở dữ liệu thá» nghiệm và quyền truy cáºp vÃo cÆ¡ sở dữ liệu đó? [C/N] CTải lại bảng đặc quyền ngay bây giờ? [C/N] CSau khi hoÃn tất, hãy đăng nháºp vÃo MariaDB bằng người dùng root:
mysql -u root -p
Cung cấp máºt khẩu root cá»§a bạn rồi tạo cÆ¡ sở dữ liệu và người dùng cho Mattermost bằng lệnh sau:
Mã:
MariaDB [(none)]> CREATE DATABASE mattermostdb;
 MariaDB [(none)]> CẤP TẤT CẢ CÁC QUYỀN TRÊN mattermostdb.* CHO mattermost@localhost ĐƯỢC XÁC ĐỊNH BỞI 'password';
Tiếp theo, xóa các quyền và thoát khỏi shell MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> XÓA CÁC QUYỀN;
 MariaDB [(none)]> THOÁT;
Sau khi hoÃn tất, bạn có thể tiến hÃnh bước tiếp theo.

CÃi đặt Mattermost​

Đầu tiên, bạn sẽ cần tạo một người dùng riêng để chạy Mattermost. Bạn có thể tạo nó bằng lệnh sau:
Mã:
useradd -d /opt/mattermost -U -M mattermost
Tiếp theo, tải xuống phiên bản Mattermost mới nhất bằng lệnh sau:
Mã:
wget https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz
Sau khi tải xuống hoÃn tất, giải nén tệp đã tải xuống bằng lệnh sau:
Mã:
tar -xvzf mattermost-5.21.0-linux-amd64.tar.gz
Tiếp theo, di chuyển thư mục đã giải nén đến /opt bằng lệnh sau:
Mã:
mv mattermost /opt/
Tiếp theo, tạo má»™t thư mục dữ liệu bên trong mattermost và cấp quyền thÃch hợp cho mattermost bằng lệnh sau:
Mã:
mkdir /opt/mattermost/data
 chown -R mattermost:mattermost /opt/mattermost
 chmod -R g+w /opt/mattermost
Sau khi hoÃn tất, bạn có thể tiến hÃnh bước tiếp theo.

Cấu hình Mattermost​

Tiếp theo, bạn sẽ cần định nghÄ©a cÆ¡ sở dữ liệu cá»§a mình trong Mattermost. Bạn có thể thá»±c hiện bằng cách chỉnh sá»a tệp config.json:
Mã:
nano /opt/mattermost/config/config.json
Thay đổi các dòng sau theo cÃi đặt cÆ¡ sở dữ liệu cá»§a bạn:
Mã:
"SqlSettings": { "DriverName": "mysql", "DataSource": "mattermost:password@tcp(localhost:3306)/mattermostdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
Lưu và đóng tệp khi bạn hoÃn tất. Sau đó, thay đổi thư mục thÃnh /opt/mattermost và khởi động máy chá»§ Mattermost bằng lệnh sau:
Mã:
cd /opt/mattermost
 sudo -u mattermost bin/mattermost
Sau khi máy chá»§ được khởi động thÃnh công, bạn sẽ nháºn được kết quả sau:
Mã:
{"level":"info","ts":1585379681.8383002,"caller":"utils/i18n.go:83","msg":"Đã tải bản dịch hệ thống","for locale":"en","from locale":"/opt/mattermost/i18n/en.json"}{"level":"info","ts":1585379681.83874,"caller":"app/server_app_adapters.go:58","msg":"Máy chá»§ Ä‘ang khởi tạo..."}{"level":"info","ts":1585379681.8470004,"caller":"sqlstore/supplier.go:221","msg":"Ping SQL","database":"master"}{"level":"info","ts":1585379684.7858346,"caller":"sqlstore/upgrade.go:112","msg":"Phiên bản lược đồ cÆ¡ sở dữ liệu đã được đặt","version":"5.21.0"}{"level":"error","ts":1585379690.8182986,"caller":"app/server_app_adapters.go:129","msg":"SiteURL phải được đặt. Má»™t số tÃnh năng sẽ hoạt động không đúng nếu SiteURL không được đặt. Xem tÃi liệu để biết chi tiết: http://about.mattermost.com/default-site-url"}{"level":"info","ts":1585379690.821083,"caller":"app/license.go:39","msg":"Giấy phép chìa khóa từ https://mattermost.com là bắt buá»™c để mở khóa các tÃnh năng doanh nghiệp."}
Tiếp theo, nhấn CTRL + C để dừng máy chủ Mattermost.

Tạo tệp dịch vụ Systemd cho Mattermost​

Tiếp theo, bạn sẽ cần tạo tệp dịch vụ systemd để quản lý dịch vụ Mattermost. Bạn có thể tạo nó bằng lệnh sau:
Mã:
nano /etc/systemd/system/mattermost.service
Thêm các dòng sau:
Mã:
[Unit]Description=MattermostAfter=syslog.target network.target mariadb.service[Service]Type=notifyWorkingDirectory=/opt/mattermostUser=mattermostExecStart=/opt/mattermost/bin/mattermostPIDFile=/var/run/mattermost.pidTimeoutStartSec=3600LimitNOFILE=49152[Install]WantedBy=multi-user.target
Lưu và đóng tệp khi bạn hoÃn tất. Sau đó, tải lại daemon systemd bằng lệnh sau:
Mã:
systemctl daemon-reload
Tiếp theo, khởi động dịch vụ Mattermost và cho phép nó khởi động sau khi hệ thống khởi động lại bằng lệnh sau:
Mã:
systemctl start mattermost
 systemctl enable mattermost
Bạn cũng có thể xác minh trạng thái của dịch vụ Mattermost bằng lệnh sau:
Mã:
systemctl status mattermost
Bạn sẽ nháºn được kết quả đầu ra sau:
Mã:
? mattermost.service - Mattermost Đã tải: đã tải (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled) Đang hoạt động: Ä‘ang hoạt động (Ä‘ang chạy) kể từ Sat 2020-03-28 03:17:07 EDT; 14 giây trước PID chÃnh: 15204 (mattermost) Nhiệm vụ: 21 (giá»›i hạn: 25028) Bá»™ nhá»›: 120,8M CGroup: /system.slice/mattermost.service ??15204 /opt/mattermost/bin/mattermost ??15214 plugins/com.mattermost.nps/server/dist/plugin-linux-amd6428-03 03:17:07 centos8 mattermost[15204]: {"level":"info","ts":1585379827.1131086,"caller":"app/server.go:247","msg":"Đang in công việc hiện tại>28-03 03:17:07 centos8 mattermost[15204]: {"level":"info","ts":1585379827.1131282,"caller":"app/server.go:248","msg":"Loaded config","source">
Lúc nÃy, máy chá»§ Mattermost Ä‘ang chạy và lắng nghe trên cổng 8065. Bạn có thể kiểm tra bằng lệnh sau:
Mã:
netstat -antup | grep 8065
Bạn sẽ nháºn được kết quả sau:
Mã:
tcp6 0 0 :::8065 :::* LISTEN 15204/mattermost

Cấu hình Nginx lÃm Proxy ngược cho Mattermost​

Bạn nên cÃi đặt và cấu hình Nginx lÃm proxy ngược để có hiệu suất tốt hÆ¡n và security.

Trước tiên, hãy cÃi đặt máy chá»§ web Nginx bằng lệnh sau:
Mã:
dnf install nginx -y
Sau khi cÃi đặt máy chá»§ web Nginx, hãy khởi động dịch vụ Nginx và cho phép nó khởi động sau khi hệ thống khởi động lại bằng lệnh sau:
Mã:
systemctl start nginx
 systemctl enable nginx
Tiếp theo, hãy tạo tệp máy chủ ảo Nginx mới cho Mattermost bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/mattermost.conf
Thêm các dòng sau:
Mã:
upstream mattermost { server 127.0.0.1:8065; keepalive 32;}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.example.com; location ~ /api/v[0-9]+/(users/)?websocket$ { proxy_set_header Nâng cấp $http_upgrade; proxy_set_header Kết nối "nâng cấp"; client_max_body_size 50M; proxy_set_header Máy chủ $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 Tùy chọn X-Frame SAMEORIGIN; proxy_buffers 256 16k; proxy_buffer_size 16k; client_body_timeout 60; send_timeout 300; lingering_timeout 5; proxy_connect_timeout 90; proxy_send_timeout 300; proxy_read_timeout 90 giây; proxy_pass http://mattermost; } vị trà / { client_max_body_size 50M; proxy_set_header Kết nối ""; proxy_set_header Máy chủ $http_host; proxy_set_header X-IP thực $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 600 giây; proxy_cache mattermost_cache; proxy_cache_revalidate on; proxy_cache_min_uses 2; proxy_cache_use_stale timeout; proxy_cache_lock on; proxy_http_version 1.1; proxy_pass http://mattermost; }}
Lưu và đóng tệp khi bạn hoÃn tất. Sau đó, hãy kiểm tra Nginx xem có lá»—i cú pháp nÃo không bằng lệnh sau:
Mã:
nginx -t
Bạn sẽ nháºn được kết quả sau:
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thÃnh công
Cuối cùng, hãy khởi động lại dịch vụ Nginx để áp dụng các thay đổi:
Mã:
systemctl restart nginx
Tại thời Ä‘iểm nÃy, máy chá»§ web Nginx được cấu hình để phục vụ Mattermost. Bây giờ bạn có thể tiến hÃnh bước tiếp theo.

Cấu hình SELinux và Firewalld​

Theo mặc định, SELinux được báºt trong CentOS 8. Bạn nên tắt nó cho Mattermost. Bạn có thể vô hiệu hóa nó bằng cách chỉnh sá»a tệp /etc/selinux/config:
Mã:
nano /etc/selinux/config
Tìm dòng sau:
Mã:
SELINUX=enforcing
Và thay thế bằng dòng sau:
Mã:
SELINUX=permissive
Lưu và đóng tệp khi bạn hoÃn tất. Sau đó, khởi động lại hệ thống cá»§a bạn để áp dụng các thay đổi.

Tiếp theo, bạn sẽ cần cho phép cổng 80 thông qua firewalld. Bạn có thể cho phép bằng lệnh sau:
Mã:
firewall-cmd --add-service=http --permanent
Tiếp theo, tải lại firewalld để áp dụng các thay đổi:
Mã:
firewall-cmd --reload

Truy cáºp Giao diện web Mattermost​

Bây giờ, hãy mở trình duyệt web cá»§a bạn và nháºp URL http://mattermost.example.com. Bạn sẽ thấy trang tạo người dùng Mattermost:



Cung cấp địa chỉ email, tên người dùng, máºt khẩu cá»§a bạn và nhấp vÃo nút Tạo TÃi khoản. Bạn sẽ thấy trang sau:



Tiếp theo, hãy nhấp vÃo Tạo nhóm má»›i để tạo nhóm cá»§a bạn. Bạn sẽ thấy trang sau:



Cung cấp tên nhóm cá»§a bạn và nhấp vÃo nút Tiếp theo. Bạn sẽ thấy trang sau:



Cung cấp URL nhóm cá»§a bạn và nhấp vÃo HoÃn tất để hoÃn tất quá trình cÃi đặt. Bạn sẽ thấy bảng Ä‘iều khiển Mattermost trong trang sau:


Kết luáºn​

Xin chúc mừng! Bạn đã cÃi đặt và cấu hình Mattermost thÃnh công trên máy chá»§ CentOS 8. Bây giờ bạn có thể tạo nhóm cho tổ chức cá»§a mình và bắt đầu cá»™ng tác vá»›i nhóm cá»§a mình.
 
Back
Bên trên