添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • GitLab 安装配置 - 狂飙 git.company.com
  • Jira 安装配置 - 狂飙 jira.company.com
  • Jenkins 安装配置 - 狂飙 ci.company.com
  • Mattermost 安装配置 - 狂飙 mattermost.company.com
  • 这一系列文章中的软件是在同一台机器上安装配置的,完整地记录了配置过程。解决了同时部署各种服务之间可能会产生的问题,最终将各种服务整合到一起。每个服务都配置使用域名访问,便于使用。

    账号系统未使用 LDAP,因此 Jira 与 GitLab 账号是独立的,Jenkins 与 Mattermost 使用 GitLab 账号登录。

  • RTX 腾迅出品,2015年之后就没有更新过,RTX for mac 经常崩溃、掉线,而且无法获取组织架构信息,导致无法找人。
  • 钉钉 阿里出品,可以打卡、考勤,官方还出了考勤机,与钉钉自动连接。
  • BearyChat 比较卡顿,搜索功能较差。
  • CentOS 7.6 1810
  • MySQL 5.7.25
  • Mattermost 5.8.0 2019/02/16
  • 官方提供了完整的安装流程,可以根据自己的实际情况决定如何安装。本文章记录了在实际环境中安装的全过程,仅供参考。

  • Installing Mattermost on RHEL 7.1 — Mattermost 5.8 documentation
  • MySQL

    rpm -ivh https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
    yum install -y mysql-server
    systemctl enable mysqld
    systemctl start mysqld
    

    设置 root 密码

    sudo grep 'temporary password' /var/log/mysqld.log
    mysql -uroot -p
    # 输入上面提示的密码
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourmysqlpassword';
    
  • MySQL :: A Quick Guide to Using the MySQL Yum Repository
  • 注意:密码必须设置地复杂,否则会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    创建 Mattermost 数据库

    mysql -u root -p
    mysql> create user 'mmuser'@'%' identified by 'yourmattermostpassword';
    mysql> create database mattermost;
    mysql> flush privileges;
    

    Mattermost 安装

    wget https://releases.mattermost.com/5.8.0/mattermost-5.8.0-linux-amd64.tar.gz
    tar -xvzf mattermost-5.8.0-linux-amd64.tar.gz
    sudo mv mattermost /opt
    mkdir /data/mattermost
    sudo useradd --system --user-group mattermost
    sudo chown -R mattermost:mattermost /opt/mattermost
    sudo chmod -R g+w /opt/mattermost
    

    配置 MySQL 以及根据需要决定是否修改文件保存目录

    vi /opt/mattermost/config/config.json

        "SqlSettings": {
            "DriverName": "mysql",
            "DataSource": "mmuser:yourmattermostpassword@tcp(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",
        "FileSettings": {
            "EnableFileAttachments": true,
            "EnableMobileUpload": true,
            "EnableMobileDownload": true,
            "MaxFileSize": 52428800,
            "DriverName": "local",
            "Directory": "/data/mattermost/",
    

    如果不使用默认的 8065 端口访问,而是使用后续介绍的 Nginx 绑定域名+80端口访问的话,此步可以跳过。

    firewall-cmd --permanent --new-service=mattermost
    firewall-cmd --permanent --service=mattermost --set-short="Mattermost Service Ports"
    firewall-cmd --permanent --service=mattermost --set-description="Mattermost service firewalld port exceptions"
    firewall-cmd --permanent --service=mattermost --add-port=8065/tcp
    firewall-cmd --zone=public --add-service=mattermost --permanent
    firewall-cmd --reload
    
    cd /opt/mattermost
    sudo -u mattermost ./bin/mattermost
    

    等待一会儿出现 Server is listening on :8065 字样后就可以按 Ctrl+C 停止运行,继续后面的操作。 这步最主要的作用是确定前面的配置是否正确,如果有异常,可以根据实际提示去修改配置。

    sudo vi /etc/systemd/system/mattermost.service

    [Unit]
    Description=Mattermost
    After=syslog.target network.target mysqld.service
    [Service]
    Type=notify
    WorkingDirectory=/opt/mattermost
    User=mattermost
    ExecStart=/opt/mattermost/bin/mattermost
    PIDFile=/var/spool/mattermost/pid/master.pid
    TimeoutStartSec=3600
    LimitNOFILE=49152
    [Install]
    WantedBy=multi-user.target
    

    配置自动启动

    sudo chmod 664 /etc/systemd/system/mattermost.service
    sudo systemctl daemon-reload
    sudo systemctl enable mattermost
    sudo systemctl start mattermost
    

    增加 A 记录 mattermost.company.com 这样访问时 URL 中不需要增加端口

    Nginx

    server 替换成 127.0.0.1server_name 替换为域名

    vi /etc/nginx/conf.d/mattermost.conf

    upstream backend {
       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.company.com;
       location ~ /api/v[0-9]+/(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;
           client_body_timeout 60;
           send_timeout 300;
           lingering_timeout 5;
           proxy_connect_timeout 90;
           proxy_send_timeout 300;
           proxy_read_timeout 90s;
           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_http_version 1.1;
           proxy_pass http://backend;
    

    systemctl restart nginx

    经过这样配置后就可以使用 http://mattermost.company.com 访问。

    Mattermost 站点网址

  • 打开 系统控制台 - Mattermost
  • 站点网址 修改为 http://mattermost.company.com,然后保存
  • 执行 systemctl restart mattermost 重启服务
  • GitLab OAuth 登录

    使用 GitLab 登录可以减少需要注册的账号数量,而且方便管理。

    GitLab

    在 GitLab 中添加应用时,一定要注意,URI 要添加两行

    http://mattermost.company.com/login/gitlab/complete
    http://mattermost.company.com/signup/gitlab/complete
    

    其次范围选择 api,否则无法登录。

    Mattermost

    将上一步产生的应用程序 ID 与密钥填写即可,然后输入 GitLab 地址,保存后注销后在登录界面点击 GitLab Login 按钮登录测试。

  • GitLab Single Sign-On — Mattermost 5.8 documentation
  • 可以在公司使用的企业邮箱内创建单独的管理账号,并且赋予多个别名,分别用于不同用途,如 Jenkins、GitLab、Jira、Mattermost 等等。

    然后查找企业邮箱对应的 SMTP 发件服务器客户端设置,填写到 系统控制台 - Mattermost,最后使用 测试连接 按钮发送测试邮件即可。

    注意:强烈建议使用 TLS 加密连接方式,增强安全性。

    WebHooks 通知

    Mattermost 中增加 Jenkins 用户,用于发送 Jenkins 打包通知。 需要将用户角色从成员改为团队管理员,这样才可以使用集成中的 WebHooks 功能。

  • Incoming Webhooks — Mattermost 5.8 documentation
  • Incoming Webhooks - Developers
  • Convert cURL command syntax to Python requests, Node.js, R, PHP, Strest, Go, JSON, and Rust code
  • 官方有 Android iOS macOS Windows Linux 客户端,覆盖全面。

  • Download - Mattermost Private Cloud Messaging
  • 打开客户端只需要填写服务器地址,然后使用 GitLab 登录即可。

    iOS 客户端登录后可以接收到 Mattermost 发送的消息,即使应用不在前台也不在内网也会收到消息对应的 iOS 通知,因为默认使用 Mattermost 官方的外网推送服务器发送消息。

    每个团队最多用户数建议根据实际情况由 50 改为更高的的 100

  • 成员和团队 - 系统控制台 - Mattermost
  • 建议 团队队友的名字显示: 改为 若存在昵称显示昵称,否则显示姓名,因为默认显示全名的话是按照名在前姓在后显示的,不符合国人习惯。这样需要所有人将昵称改为姓在前名在后的全名。

  • 成员和团队 - 系统控制台 - Mattermost
  • 关闭邮件注册功能

  • 邮件验证 - 系统控制台 - Mattermost
  •