InfoGrab DocsInfoGrab Docs

RHEL에 Mattermost 배포

요약

이 Mattermost 배포에는 다음 단계가 포함됩니다: PostgreSQL 데이터베이스 설치, 데이터베이스 준비, Mattermost 서버 다운로드, 서버 설치, 서버 설정, 서버 업데이트. 데이터베이스 준비 문서를 따라 Mattermost를 위한 PostgreSQL 데이터베이스를 설정합니다.

최소 시스템 요구 사항:

    • 운영 체제: Enterprise Linux 7+, Oracle Linux 6+, Oracle Linux 7+
    • 하드웨어: vCPU/코어 1개, RAM 2GB (최대 1,000명 사용자 지원)
    • 데이터베이스: PostgreSQL v14+
  • 네트워크:
      • 애플리케이션 80/443, TLS, TCP 인바운드
      • 관리자 콘솔 8065, TLS, TCP 인바운드
      • SMTP 포트 10025, TCP/UDP 아웃바운드

이 Mattermost 배포에는 다음 단계가 포함됩니다: PostgreSQL 데이터베이스 설치, 데이터베이스 준비, Mattermost 서버 다운로드, 서버 설치, 서버 설정, 서버 업데이트.

Step 1: PostgreSQL 데이터베이스 설치 또는 데이터베이스 연결 자격 증명 확보#

  • PostgreSQL 설치 문서를 따라 동일한 서버에 PostgreSQL을 로컬로 설치합니다.
  • 외부 PostgreSQL 데이터베이스 서버를 사용합니다. 호스트명, 포트, 데이터베이스 이름, 사용자 이름, 비밀번호를 포함한 연결 자격 증명이 준비되어 있는지 확인하세요.
  • 관리형 데이터베이스 서비스를 사용합니다.

Step 2: 데이터베이스 준비#

데이터베이스 준비 문서를 따라 Mattermost를 위한 PostgreSQL 데이터베이스를 설정합니다.

Step 3: 최신 Mattermost 서버 tarball 다운로드#

터미널 창에서 Mattermost 서버를 호스팅할 시스템에 SSH로 접속합니다. wget을 사용하여 다음 명령 중 하나로 설치할 Mattermost 서버 릴리즈를 다운로드합니다. 필요에 따라 링크에서 amd64를 적절한 아키텍처(예: ARM 기반 시스템의 경우 arm64)로 교체하세요.

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

이전 릴리즈를 찾고 있다면 Enterprise 및 Team Edition 릴리즈는 버전 아카이브 문서에서 확인할 수 있습니다.

Step 4: Mattermost 서버 설치#

  1. Mattermost 서버를 설치하기 전에 모든 저장소를 업데이트하고, 필요한 경우 다음 명령을 실행하여 기존 패키지를 업데이트하는 것을 권장합니다:
  2. sudo dnf update
    sudo dnf upgrade
  3. 업데이트 및 필요한 시스템 재부팅이 완료되면, tarball을 추출하고 사용자 및 그룹을 생성하며 파일/폴더 권한을 설정하여 Mattermost 서버를 설치합니다.
  4. a. 먼저 tarball을 추출합니다:

    tar -xvzf mattermost*.gz
    
    b. 전체 폴더를 ``/opt`` 디렉터리(또는 원하는 경로)로 이동합니다:
    
      
    sudo mv mattermost /opt
    
    c. 기본 스토리지 폴더를 생성합니다. 기본적으로 Mattermost 서버는 ``/opt/mattermost/data``를 파일 폴더로 사용합니다. 설정 중 시스템 콘솔에서 변경할 수 있습니다(S3와 같은 대안적인 스토리지 사용 포함):
    sudo mkdir /opt/mattermost/data</code></pre>
    <div class="admonition note"><div class="admonition-title">Note

사용자 지정 경로를 선택하는 경우, 이후 모든 단계에서 해당 경로를 사용하세요.`

  • mattermost라는 사용자 및 그룹을 설정합니다:
  • sudo useradd --system --user-group mattermost
    Note

    사용자 지정 사용자 이름과 그룹 이름을 선택하는 경우, 이후 모든 단계에서 해당 이름을 사용하세요.

  • 설치의 파일 및 폴더 권한을 설정합니다:
  • sudo chown -R mattermost:mattermost /opt/mattermost
  • mattermost 그룹에 애플리케이션 폴더에 대한 쓰기 권한을 부여합니다:
  • sudo chmod -R g+w /opt/mattermost
    
    이제 시스템에 최신 Mattermost 서버 버전이 설치되었습니다. Mattermost 서버의 시작 및 중지는 ``systemd``를 사용하여 수행됩니다.
  • systemd 유닛 파일을 생성합니다:
  • sudo touch /lib/systemd/system/mattermost.service
  • root 사용자로 /lib/systemd/system/mattermost.service의 systemd 유닛 파일을 편집하여 다음 줄을 추가합니다:
  • [Unit]
    Description=Mattermost
    After=network.target
    
    [Service]
    Type=notify
    ExecStart=/opt/mattermost/bin/mattermost
    TimeoutStartSec=3600
    KillMode=mixed
    Restart=always
    RestartSec=10
    WorkingDirectory=/opt/mattermost
    User=mattermost
    Group=mattermost
    LimitNOFILE=49152
    
    [Install]
    WantedBy=multi-user.target
  • 파일을 저장하고 sudo systemctl daemon-reload를 사용하여 systemd를 리로드합니다. Mattermost 서버가 설치되었으며 이제 설정할 준비가 되었습니다.
  • Step 5: 서버 설정#

    Mattermost 서버를 시작하기 전에 구성 파일을 편집해야 합니다. 기본 구성 파일은 /opt/mattermost/config/config.json에 있습니다. 변경하기 전에 이 기본 구성을 백업하는 것을 권장합니다:

    sudo cp /opt/mattermost/config/config.json /opt/mattermost/config/config.defaults.json

    이 파일에서 다음 속성을 구성합니다:

    * SqlSettings 아래에서 DriverName"postgres"로 설정합니다. 이것이 모든 Mattermost 설치에 권장되는 기본 데이터베이스입니다.

    * SqlSettings 아래에서 DataSource"postgres://mmuser:<mmuser-password>@<host-name-or-IP>:5432/mattermost?sslmode=disable&connect_timeout=10"으로 설정하고 mmuser, <mmuser-password>, <host-name-or-IP>mattermost를 사용 중인 데이터베이스 이름으로 교체합니다.

    * ServiceSettings 아래에서 "SiteURL"을 설정합니다: Mattermost 애플리케이션의 도메인 이름(예: https://mattermost.example.com).

    Note

    SupportSettings 아래에서 "SupportEmail"을 설정하여 지원 이메일을 구성하는 것을 권장합니다. 이것은 사용자가 도움이 필요할 때 연락할 이메일 주소입니다.

    config.json 구성 파일을 수정한 후 Mattermost 서버를 시작할 수 있습니다:

    sudo systemctl start mattermost

    Mattermost가 실행 중인지 확인합니다: curl http://localhost:8065. Mattermost 서버에서 반환된 HTML이 표시되어야 합니다.

    요구 사항에 따라 마지막 단계로 sudo systemctl enable mattermost.service를 실행하면 시스템 부팅 시 Mattermost가 자동으로 시작됩니다. 이전 단계 후 Mattermost 시작 시 오류가 발생하지 않으면 설정이 완료된 것입니다. 오류가 발생했다면 계속 진행하세요.

    강화된 RHEL 환경#

    강화된 RHEL 시스템에 Mattermost를 배포할 때 추가 보안 구성이 필요할 수 있습니다. 아래에서 사용 중인 보안 도구에 해당하는 탭을 선택하세요:

    SELinux가 기본적으로 강제(enforcing) 모드로 활성화된 RHEL9에서 Mattermost를 배포할 때는 추가 구성이 필요합니다.

    SELinux는 액세스 제어 보안 정책을 제공하는 보안 모듈입니다. RHEL 및 CentOS 시스템에서 기본적으로 활성화되어 있습니다. SELinux는 파일, 디렉터리, 포트에 대한 접근을 차단할 수 있으며, 이로 인해 Mattermost 시작 시 문제가 발생할 수 있습니다. 이러한 문제를 해결하려면 Mattermost 바이너리와 디렉터리에 적절한 SELinux 컨텍스트를 설정하고, Mattermost가 포트에 바인딩할 수 있도록 허용해야 합니다.

    sestatus 명령을 실행하여 SELinux가 활성화되어 있고 강제 모드인지 확인합니다. enforcing이라면 올바르게 구성해야 합니다.

    /opt/mattermost/bin에 대한 bin 컨텍스트 설정#

    SELinux는 바이너리에 대한 보안 컨텍스트를 적용합니다. Mattermost 바이너리를 안전한 것으로 레이블 지정하려면 다음 SELinux 컨텍스트로 설정해야 합니다.

    sudo semanage fcontext -a -t bin_t "/opt/mattermost/bin(/.*)?"
      sudo restorecon -RF /opt/mattermost/bin
    
    이제 다음 명령으로 Mattermost를 다시 시작해 보세요:
    
    
    sudo systemctl start mattermost
    
    오류가 없다면 Mattermost가 실행 중인지 확인합니다: curl ``http://localhost:8065``. Mattermost 서버에서 반환된 HTML이 표시되어야 합니다. 설정이 완료되었습니다!
    
    Mattermost 시작 시 오류가 발생하면 계속 진행하기 전에 ``/opt/mattermost/logs``에 파일이 있는지 확인합니다. 해당 디렉터리에 ``mattermost.log``가 있다면 ``config.json``의 구성 문제일 가능성이 높습니다. 계속하기 전에 이전 단계를 다시 확인하세요.
    
    /opt/mattermost에 대해 다른 컨텍스트 시도
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    SELinux는 파일 및 디렉터리에 대한 보안 컨텍스트를 적용합니다. Mattermost 디렉터리를 안전한 것으로 레이블 지정하려면 적절한 SELinux 컨텍스트를 설정해야 합니다.
    
    1. ``ls -Z /opt/mattermost``를 실행하여 현재 컨텍스트를 확인합니다. ``drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 mattermost``와 같은 내용이 반환되면 ``default_t``는 SELinux가 이 디렉터리의 용도를 알지 못한다는 것을 나타냅니다.
    2. ``sudo semanage fcontext -a -t httpd_sys_content_t "/opt/mattermost(/.*)?"``를 실행하여 웹 서비스나 애플리케이션과 호환되는 SELinux 유형을 할당해 안전한 컨텍스트를 설정합니다. 일반적으로 파일 제공에 사용되는 ``httpd_sys_content_t``가 많이 쓰입니다. 디렉터리와 그 내용을 재귀적으로 일치시켜야 합니다. ``sudo restorecon -R /opt/mattermost``를 실행하여 변경 사항을 적용합니다.
    
    Mattermost가 포트에 바인딩할 수 있도록 허용
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    Mattermost에 특정 포트(예: 8065)가 필요한 경우, Mattermost가 해당 포트에 바인딩할 수 있도록 SELinux가 허용하는지 확인합니다. ``sudo semanage port -l | grep 8065`` 명령을 실행하고, 포트가 목록에 없으면 ``sudo semanage port -a -t http_port_t -p tcp 8065``를 실행하여 추가합니다. 이때 ``8065``를 필요한 포트로 교체하세요.
    
    커스텀 정책 처리
    ^^^^^^^^^^^^^^^^^^^^^^
    
    Mattermost에 SELinux가 차단하는 작업이 필요한 경우 커스텀 정책을 생성해야 합니다.
    
    1. 먼저 ``sudo ausearch -m avc -ts recent``를 실행하거나 감사 로그(``sudo cat /var/log/audit/audit.log | grep denied``)를 확인하여 로그에서 SELinux 거부 사항을 확인합니다.
    
    2. 필요한 경우 ``audit2allow``를 설치하여 정책을 자동으로 생성하는 정책 모듈을 만듭니다.
    sudo yum install -y policycoreutils-python-utils
    sudo grep mattermost /var/log/audit/audit.log | audit2allow -M mattermost_policy
    sudo semodule -i mattermost_policy.pp
    구성 테스트
    ^^^^^^^^^^^^^^^^^^^^^^
    ``sudo systemctl restart mattermost``를 실행하여 Mattermost를 재시작하고 구성이 예상대로 작동하는지 확인합니다. 실패하는 경우 로그를 다시 확인하여 다른 SELinux 관련 문제를 파악하세요.
    테스트 목적으로 Mattermost를 빠르게 작동시켜야 하나요?
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    - ``sudo setenforce 0`` 명령을 실행하여 SELinux를 permissive(허용) 모드로 변경할 수 있습니다. 이 모드에서는 정책이 적용되지 않고 로그만 기록됩니다.
    - 이 명령은 SELinux 모드를 "permissive"로 변경합니다. permissive 모드에서는 정책이 적용되지 않으며, 위반 사항이 차단되는 대신 기록됩니다. 이는 SELinux 정책 관련 문제를 디버깅하고 트러블슈팅하는 데 유용할 수 있습니다.
    - 컨텍스트가 필요한 대로 작동하면 ``sudo setenforce 1`` 명령을 실행하여 강제(enforcing) 모드를 다시 활성화하세요.
    추가 리소스
    ^^^^^^^^^^^^^^^^^^^^^^^
    - `SELinux 사용자 및 관리자 가이드 <https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/index>`_
    - `SELinux 프로젝트 위키 <https://github.com/SELinuxProject/selinux>`_
    - `SELinux 소개 <https://github.blog/developer-skills/programming-languages-and-frameworks/introduction-to-selinux/>`_
    - `시스템 관리자를 위한 SELinux 가이드: 주요 질문 42가지 <https://opensource.com/article/18/7/sysadmin-guide-selinux>`_
    - `SELinux 마스터하기: Linux 보안 종합 가이드 <https://srivastavayushmaan1347.medium.com/mastering-selinux-a-comprehensive-guide-to-linux-security-8bed9976da88>`_</code></pre>
    <div class="tabs-container" data-tabs><div class="tabs-nav"><button class="tab-button active" data-tab-index="0">firewalld</button>

    firewalld가 활성화된 RHEL 시스템에 Mattermost를 배포할 때는 Mattermost 서버에 대한 접근을 허용하도록 방화벽 규칙을 구성해야 합니다.

    Firewalld는 RHEL 시스템의 기본 방화벽 관리 도구로, 네트워크 영역을 지원하는 동적으로 관리되는 방화벽을 제공합니다. 기본적으로 Mattermost의 포트(8065)로 들어오는 연결을 차단할 수 있습니다.

    firewalld 실행 여부 확인#

    sudo systemctl status firewalld
    
    firewalld가 활성 상태이면 Mattermost 트래픽을 허용하도록 구성합니다.
    
    Mattermost 서버를 위한 firewalld 구성
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    1. Mattermost 서버를 위해 포트 8065를 엽니다:
    
      
    sudo firewall-cmd --permanent --add-port=8065/tcp
    
    2. 동일한 서버에서 리버스 프록시(예: nginx 또는 Apache)를 사용하는 경우 HTTP 및 HTTPS 포트도 엽니다:
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    3. 변경 사항을 적용하려면 firewalld를 리로드합니다:sudo firewall-cmd --reload
    4. 구성을 확인합니다:sudo firewall-cmd --list-all
    출력에서 포트 8065/tcp(선택적으로 http/https 서비스)를 확인할 수 있어야 합니다.
    
    Note

    Mattermost에 사용자 지정 포트를 사용하는 경우 ``8065``를 구성된 포트 번호로 교체하세요. ``--permanent`` 플래그는 시스템 재부팅 후에도 규칙이 유지되도록 합니다. Mattermost Calls를 위한 firewalld 구성(선택 사항) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Mattermost Calls 플러그인 또는 독립형 rtcd 서비스를 배포하는 경우 추가 포트를 열어야 합니다. Calls 아키텍처 및 배포 모드에 대한 자세한 내용은 <a href="https://docs.mattermost.com/administration-guide/configure/calls-deployment-guide" target="_blank" rel="noopener noreferrer" class="doc-ref">Calls 배포 가이드</a> 문서를 참조하세요. 통합 Calls 플러그인(Mattermost와 함께 실행되는 경우):sudo firewall-cmd --permanent --add-port=8443/udp sudo firewall-cmd --permanent --add-port=8443/tcp sudo firewall-cmd --reload 독립형 rtcd 서비스(추가 API 포트가 필요한 경우):sudo firewall-cmd --permanent --add-port=8443/udp sudo firewall-cmd --permanent --add-port=8443/tcp sudo firewall-cmd --permanent --add-port=8045/tcp sudo firewall-cmd --reload

    Note

    - 포트 8443(UDP/TCP)은 RTC 미디어 트래픽(오디오/비디오/화면 공유)에 사용됩니다 - 포트 8045(TCP)는 Mattermost와 rtcd 서비스 간의 API 통신에 사용됩니다 - RTC용 TCP 지원에는 Calls v0.17+ 및 rtcd v0.11+가 필요합니다 - 사용자 지정 포트를 사용하는 경우 기본 포트 번호를 구성된 값으로 교체하세요</code></pre> <div class="tabs-container" data-tabs><div class="tabs-nav"><button class="tab-button active" data-tab-index="0">fapolicyd</button>

    fapolicyd가 활성화된 RHEL 시스템에 Mattermost를 배포할 때 Mattermost 로그에서 "operation not permitted" 오류가 발생할 수 있습니다.

    Fapolicyd(File Access Policy Daemon)는 신뢰도를 기반으로 파일에 대한 접근 권한을 결정하는 사용자 공간 데몬입니다. 승인되지 않은 바이너리의 실행을 방지하기 위해 보안 환경에서 일반적으로 활성화됩니다. 기본적으로 fapolicyd는 Mattermost 바이너리 및 플러그인의 실행을 차단할 수 있습니다.

    fapolicyd 문제 트러블슈팅#

    1. Mattermost 로그에서 "operation not permitted" 오류가 표시되면 먼저 fapolicyd를 일시적으로 중지하여 원인인지 확인합니다:
    sudo systemctl stop fapolicyd
    
    2. Mattermost 배포를 테스트합니다. 이제 정상적으로 작동한다면 fapolicyd가 Mattermost 실행을 차단하고 있는 것이므로 올바르게 구성해야 합니다.
    
    3. fapolicyd를 디버그 모드로 시작하여 거부되는 항목을 확인합니다:
    
      
    sudo fapolicyd --debug
    
    4. 출력에서 거부 메시지를 찾습니다. 다음과 유사한 형태입니다:
    rule=15 dec=deny_audit perm=execute auid=-1 pid=19735
    exe=/opt/mattermost/bin/mattermost : path=/opt/mattermost/plugins/focalboard/server/dist/plugin-linux-amd64
    ftype=application/x-executable trust=0
    실행을 거부하는 규칙 번호를 확인하세요. 규칙 파일은 이 규칙보다 앞선 번호로 지정해야 합니다.
    Mattermost를 허용하도록 fapolicyd 구성
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    1. Mattermost용 규칙 파일을 생성합니다. 명명 규칙이 중요합니다. Mattermost를 거부하는 규칙보다 앞서야 합니다. 기본 fapolicyd 구성을 사용하는 경우 ``80``이 적합합니다:sudo touch /etc/fapolicyd/rules.d/80-mattermost.rules
    2. 파일에 허용 규칙을 추가합니다:sudo vi /etc/fapolicyd/rules.d/80-mattermost.rules
    Mattermost 실행을 허용하는 다음 규칙을 추가합니다:allow perm=execute exe=/usr/bin/sudo trust=1 : dir=/opt/mattermost/ all trust=0
    allow perm=execute exe=/opt/mattermost/bin/mattermost : dir=/opt/mattermost all trust=0
    allow perm=execute exe=/usr/lib/systemd/systemd trust=1 : dir=/opt/mattermost/ all trust=0
    3. 규칙이 유효하고 적용될 수 있는지 확인합니다:sudo fagenrules --check
    출력에서 "Rules have changed and should be updated"가 표시되어야 합니다.
    4. 새 규칙을 로드합니다:sudo fagenrules --load
    5. fapolicyd 서비스를 재시작합니다:sudo systemctl restart fapolicyd
    6. Mattermost를 재시작하여 올바르게 작동하는지 확인합니다:sudo systemctl restart mattermost
    7. Mattermost가 오류 없이 실행되고 있는지 확인합니다:curl http://localhost:8065
    sudo systemctl status mattermost
    
    Note

    - 규칙 파일 번호 지정이 중요합니다. 규칙은 순서대로 처리되며, 허용 규칙은 거부 규칙보다 앞서야 합니다. 이 단계를 따른 후에도 거부 사항이 계속 발생하면 디버그 출력에서 거부 규칙 번호를 확인하고 규칙 파일 번호가 더 낮은지 확인하세요. - Playbooks나 Calls 플러그인처럼 바이너리를 실행하는 플러그인이 있는 경우, 위의 fapolicyd 규칙은 ``/opt/mattermost`` 디렉터리 내의 모든 바이너리 실행을 허용합니다. 더 제한적인 규칙이 필요한 경우 각 플러그인 바이너리에 대한 특정 규칙을 만들 수 있습니다. rtcd 서비스를 위한 fapolicyd 구성(선택 사항) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Mattermost Calls를 위한 독립형 rtcd 서비스를 배포하는 경우 rtcd 바이너리에 대한 별도의 fapolicyd 규칙이 필요합니다. rtcd 서비스는 Mattermost와 별도로 배포되어 자체 바이너리를 실행합니다. rtcd를 언제, 왜 사용해야 하는지에 대한 자세한 내용은 <a href="https://docs.mattermost.com/administration-guide/configure/calls-deployment-guide" target="_blank" rel="noopener noreferrer" class="doc-ref">Calls 배포 가이드</a> 문서를 참조하세요. 1. rtcd용 규칙 파일을 생성합니다. 명명 규칙이 중요합니다. 거부 규칙보다 앞서야 합니다(일반적으로 80이 적합합니다):sudo touch /etc/fapolicyd/rules.d/80-rtcd.rules 2. rtcd에 대한 허용 규칙을 추가합니다:sudo vi /etc/fapolicyd/rules.d/80-rtcd.rules 다음 규칙을 추가합니다(rtcd 설치 디렉터리에 따라 경로를 조정하세요):allow perm=execute exe=/usr/bin/sudo trust=1 : dir=/opt/rtcd/ all trust=0 allow perm=execute exe=/opt/rtcd/bin/rtcd : dir=/opt/rtcd all trust=0 allow perm=execute exe=/usr/lib/systemd/systemd trust=1 : dir=/opt/rtcd/ all trust=0 3. 규칙이 유효하고 적용될 수 있는지 확인합니다:sudo fagenrules --check 출력에서 "Rules have changed and should be updated"가 표시되어야 합니다. 4. 새 규칙을 로드합니다:sudo fagenrules --load 5. fapolicyd와 rtcd 서비스를 재시작합니다:sudo systemctl restart fapolicyd sudo systemctl restart rtcd 6. rtcd가 오류 없이 실행되고 있는지 확인합니다:sudo systemctl status rtcd

    Note

    - 위의 경로는 rtcd가 ``/opt/rtcd/``에 설치되어 있다고 가정합니다. 실제 rtcd 설치 디렉터리에 따라 경로를 조정하세요. - 이 단계를 따른 후에도 거부 사항이 계속 발생하면 ``sudo fapolicyd --debug``를 실행하여 거부되는 특정 경로를 확인하고 그에 맞게 규칙을 조정하세요. - 설치 및 구성에 대한 자세한 내용은 <a href="https://docs.mattermost.com/administration-guide/configure/calls-rtcd-setup" target="_blank" rel="noopener noreferrer" class="doc-ref">RTCD 설정 및 구성</a> 문서를 참조하세요. 추가 리소스 ^^^^^^^^^^^^^^^^^^^^^^^ - `Mattermost와 fapolicyd <https://support.mattermost.com/hc/en-us/articles/12167526545172-Mattermost-and-fapolicyd>`_ 지원 문서</code></pre> <h3 id="step-6-서버-업데이트">Step 6: 서버 업데이트</h3> <p>tarball을 사용하는 경우 Mattermost 서버 설치를 업데이트하려면 여러 수동 단계가 필요합니다. 자세한 내용은 <a href="/docs/mattermost/upgrade/server/" class="doc-ref">Mattermost 서버 업그레이드</a> 문서를 참조하세요.

    Mattermost 제거#

    Mattermost 서버를 제거하려면 Mattermost 서버를 중지하고 중요한 파일을 모두 백업한 다음 다음 명령을 실행합니다:

    sudo rm /opt/mattermost
    Note

    구성에 따라 /opt/mattermost에 백업해야 할 여러 중요한 폴더가 있습니다. config, logs, plugins, client/plugins, data 폴더입니다. rm 명령을 실행하기 전에 이 위치들을 반드시 백업할 것을 강력히 권장합니다.

    Mattermost systemd 유닛 파일과 애플리케이션 실행을 위해 생성한 사용자/그룹도 제거할 수 있습니다.

    RHEL에 Mattermost 배포

    Mattermost v11.8
    원문 보기
    요약

    이 Mattermost 배포에는 다음 단계가 포함됩니다: PostgreSQL 데이터베이스 설치, 데이터베이스 준비, Mattermost 서버 다운로드, 서버 설치, 서버 설정, 서버 업데이트. 데이터베이스 준비 문서를 따라 Mattermost를 위한 PostgreSQL 데이터베이스를 설정합니다.

    최소 시스템 요구 사항:

      • 운영 체제: Enterprise Linux 7+, Oracle Linux 6+, Oracle Linux 7+
      • 하드웨어: vCPU/코어 1개, RAM 2GB (최대 1,000명 사용자 지원)
      • 데이터베이스: PostgreSQL v14+
    • 네트워크:
        • 애플리케이션 80/443, TLS, TCP 인바운드
        • 관리자 콘솔 8065, TLS, TCP 인바운드
        • SMTP 포트 10025, TCP/UDP 아웃바운드

    이 Mattermost 배포에는 다음 단계가 포함됩니다: PostgreSQL 데이터베이스 설치, 데이터베이스 준비, Mattermost 서버 다운로드, 서버 설치, 서버 설정, 서버 업데이트.

    Step 1: PostgreSQL 데이터베이스 설치 또는 데이터베이스 연결 자격 증명 확보#

    • PostgreSQL 설치 문서를 따라 동일한 서버에 PostgreSQL을 로컬로 설치합니다.
    • 외부 PostgreSQL 데이터베이스 서버를 사용합니다. 호스트명, 포트, 데이터베이스 이름, 사용자 이름, 비밀번호를 포함한 연결 자격 증명이 준비되어 있는지 확인하세요.
    • 관리형 데이터베이스 서비스를 사용합니다.

    Step 2: 데이터베이스 준비#

    데이터베이스 준비 문서를 따라 Mattermost를 위한 PostgreSQL 데이터베이스를 설정합니다.

    Step 3: 최신 Mattermost 서버 tarball 다운로드#

    터미널 창에서 Mattermost 서버를 호스팅할 시스템에 SSH로 접속합니다. wget을 사용하여 다음 명령 중 하나로 설치할 Mattermost 서버 릴리즈를 다운로드합니다. 필요에 따라 링크에서 amd64를 적절한 아키텍처(예: ARM 기반 시스템의 경우 arm64)로 교체하세요.

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

    이전 릴리즈를 찾고 있다면 Enterprise 및 Team Edition 릴리즈는 버전 아카이브 문서에서 확인할 수 있습니다.

    Step 4: Mattermost 서버 설치#

    1. Mattermost 서버를 설치하기 전에 모든 저장소를 업데이트하고, 필요한 경우 다음 명령을 실행하여 기존 패키지를 업데이트하는 것을 권장합니다:
    2. sudo dnf update
      sudo dnf upgrade
    3. 업데이트 및 필요한 시스템 재부팅이 완료되면, tarball을 추출하고 사용자 및 그룹을 생성하며 파일/폴더 권한을 설정하여 Mattermost 서버를 설치합니다.
    4. a. 먼저 tarball을 추출합니다:

      tar -xvzf mattermost*.gz
      
      b. 전체 폴더를 ``/opt`` 디렉터리(또는 원하는 경로)로 이동합니다:
      
        
      sudo mv mattermost /opt
      
      c. 기본 스토리지 폴더를 생성합니다. 기본적으로 Mattermost 서버는 ``/opt/mattermost/data``를 파일 폴더로 사용합니다. 설정 중 시스템 콘솔에서 변경할 수 있습니다(S3와 같은 대안적인 스토리지 사용 포함):
      sudo mkdir /opt/mattermost/data</code></pre>
      <div class="admonition note"><div class="admonition-title">Note

    사용자 지정 경로를 선택하는 경우, 이후 모든 단계에서 해당 경로를 사용하세요.`

  • mattermost라는 사용자 및 그룹을 설정합니다:
  • sudo useradd --system --user-group mattermost
    Note

    사용자 지정 사용자 이름과 그룹 이름을 선택하는 경우, 이후 모든 단계에서 해당 이름을 사용하세요.

  • 설치의 파일 및 폴더 권한을 설정합니다:
  • sudo chown -R mattermost:mattermost /opt/mattermost
  • mattermost 그룹에 애플리케이션 폴더에 대한 쓰기 권한을 부여합니다:
  • sudo chmod -R g+w /opt/mattermost
    
    이제 시스템에 최신 Mattermost 서버 버전이 설치되었습니다. Mattermost 서버의 시작 및 중지는 ``systemd``를 사용하여 수행됩니다.
  • systemd 유닛 파일을 생성합니다:
  • sudo touch /lib/systemd/system/mattermost.service
  • root 사용자로 /lib/systemd/system/mattermost.service의 systemd 유닛 파일을 편집하여 다음 줄을 추가합니다:
  • [Unit]
    Description=Mattermost
    After=network.target
    
    [Service]
    Type=notify
    ExecStart=/opt/mattermost/bin/mattermost
    TimeoutStartSec=3600
    KillMode=mixed
    Restart=always
    RestartSec=10
    WorkingDirectory=/opt/mattermost
    User=mattermost
    Group=mattermost
    LimitNOFILE=49152
    
    [Install]
    WantedBy=multi-user.target
  • 파일을 저장하고 sudo systemctl daemon-reload를 사용하여 systemd를 리로드합니다. Mattermost 서버가 설치되었으며 이제 설정할 준비가 되었습니다.
  • Step 5: 서버 설정#

    Mattermost 서버를 시작하기 전에 구성 파일을 편집해야 합니다. 기본 구성 파일은 /opt/mattermost/config/config.json에 있습니다. 변경하기 전에 이 기본 구성을 백업하는 것을 권장합니다:

    sudo cp /opt/mattermost/config/config.json /opt/mattermost/config/config.defaults.json

    이 파일에서 다음 속성을 구성합니다:

    * SqlSettings 아래에서 DriverName"postgres"로 설정합니다. 이것이 모든 Mattermost 설치에 권장되는 기본 데이터베이스입니다.

    * SqlSettings 아래에서 DataSource"postgres://mmuser:<mmuser-password>@<host-name-or-IP>:5432/mattermost?sslmode=disable&connect_timeout=10"으로 설정하고 mmuser, <mmuser-password>, <host-name-or-IP>mattermost를 사용 중인 데이터베이스 이름으로 교체합니다.

    * ServiceSettings 아래에서 "SiteURL"을 설정합니다: Mattermost 애플리케이션의 도메인 이름(예: https://mattermost.example.com).

    Note

    SupportSettings 아래에서 "SupportEmail"을 설정하여 지원 이메일을 구성하는 것을 권장합니다. 이것은 사용자가 도움이 필요할 때 연락할 이메일 주소입니다.

    config.json 구성 파일을 수정한 후 Mattermost 서버를 시작할 수 있습니다:

    sudo systemctl start mattermost

    Mattermost가 실행 중인지 확인합니다: curl http://localhost:8065. Mattermost 서버에서 반환된 HTML이 표시되어야 합니다.

    요구 사항에 따라 마지막 단계로 sudo systemctl enable mattermost.service를 실행하면 시스템 부팅 시 Mattermost가 자동으로 시작됩니다. 이전 단계 후 Mattermost 시작 시 오류가 발생하지 않으면 설정이 완료된 것입니다. 오류가 발생했다면 계속 진행하세요.

    강화된 RHEL 환경#

    강화된 RHEL 시스템에 Mattermost를 배포할 때 추가 보안 구성이 필요할 수 있습니다. 아래에서 사용 중인 보안 도구에 해당하는 탭을 선택하세요:

    SELinux가 기본적으로 강제(enforcing) 모드로 활성화된 RHEL9에서 Mattermost를 배포할 때는 추가 구성이 필요합니다.

    SELinux는 액세스 제어 보안 정책을 제공하는 보안 모듈입니다. RHEL 및 CentOS 시스템에서 기본적으로 활성화되어 있습니다. SELinux는 파일, 디렉터리, 포트에 대한 접근을 차단할 수 있으며, 이로 인해 Mattermost 시작 시 문제가 발생할 수 있습니다. 이러한 문제를 해결하려면 Mattermost 바이너리와 디렉터리에 적절한 SELinux 컨텍스트를 설정하고, Mattermost가 포트에 바인딩할 수 있도록 허용해야 합니다.

    sestatus 명령을 실행하여 SELinux가 활성화되어 있고 강제 모드인지 확인합니다. enforcing이라면 올바르게 구성해야 합니다.

    /opt/mattermost/bin에 대한 bin 컨텍스트 설정#

    SELinux는 바이너리에 대한 보안 컨텍스트를 적용합니다. Mattermost 바이너리를 안전한 것으로 레이블 지정하려면 다음 SELinux 컨텍스트로 설정해야 합니다.

    sudo semanage fcontext -a -t bin_t "/opt/mattermost/bin(/.*)?"
      sudo restorecon -RF /opt/mattermost/bin
    
    이제 다음 명령으로 Mattermost를 다시 시작해 보세요:
    
    
    sudo systemctl start mattermost
    
    오류가 없다면 Mattermost가 실행 중인지 확인합니다: curl ``http://localhost:8065``. Mattermost 서버에서 반환된 HTML이 표시되어야 합니다. 설정이 완료되었습니다!
    
    Mattermost 시작 시 오류가 발생하면 계속 진행하기 전에 ``/opt/mattermost/logs``에 파일이 있는지 확인합니다. 해당 디렉터리에 ``mattermost.log``가 있다면 ``config.json``의 구성 문제일 가능성이 높습니다. 계속하기 전에 이전 단계를 다시 확인하세요.
    
    /opt/mattermost에 대해 다른 컨텍스트 시도
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    SELinux는 파일 및 디렉터리에 대한 보안 컨텍스트를 적용합니다. Mattermost 디렉터리를 안전한 것으로 레이블 지정하려면 적절한 SELinux 컨텍스트를 설정해야 합니다.
    
    1. ``ls -Z /opt/mattermost``를 실행하여 현재 컨텍스트를 확인합니다. ``drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 mattermost``와 같은 내용이 반환되면 ``default_t``는 SELinux가 이 디렉터리의 용도를 알지 못한다는 것을 나타냅니다.
    2. ``sudo semanage fcontext -a -t httpd_sys_content_t "/opt/mattermost(/.*)?"``를 실행하여 웹 서비스나 애플리케이션과 호환되는 SELinux 유형을 할당해 안전한 컨텍스트를 설정합니다. 일반적으로 파일 제공에 사용되는 ``httpd_sys_content_t``가 많이 쓰입니다. 디렉터리와 그 내용을 재귀적으로 일치시켜야 합니다. ``sudo restorecon -R /opt/mattermost``를 실행하여 변경 사항을 적용합니다.
    
    Mattermost가 포트에 바인딩할 수 있도록 허용
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    Mattermost에 특정 포트(예: 8065)가 필요한 경우, Mattermost가 해당 포트에 바인딩할 수 있도록 SELinux가 허용하는지 확인합니다. ``sudo semanage port -l | grep 8065`` 명령을 실행하고, 포트가 목록에 없으면 ``sudo semanage port -a -t http_port_t -p tcp 8065``를 실행하여 추가합니다. 이때 ``8065``를 필요한 포트로 교체하세요.
    
    커스텀 정책 처리
    ^^^^^^^^^^^^^^^^^^^^^^
    
    Mattermost에 SELinux가 차단하는 작업이 필요한 경우 커스텀 정책을 생성해야 합니다.
    
    1. 먼저 ``sudo ausearch -m avc -ts recent``를 실행하거나 감사 로그(``sudo cat /var/log/audit/audit.log | grep denied``)를 확인하여 로그에서 SELinux 거부 사항을 확인합니다.
    
    2. 필요한 경우 ``audit2allow``를 설치하여 정책을 자동으로 생성하는 정책 모듈을 만듭니다.
    sudo yum install -y policycoreutils-python-utils
    sudo grep mattermost /var/log/audit/audit.log | audit2allow -M mattermost_policy
    sudo semodule -i mattermost_policy.pp
    구성 테스트
    ^^^^^^^^^^^^^^^^^^^^^^
    ``sudo systemctl restart mattermost``를 실행하여 Mattermost를 재시작하고 구성이 예상대로 작동하는지 확인합니다. 실패하는 경우 로그를 다시 확인하여 다른 SELinux 관련 문제를 파악하세요.
    테스트 목적으로 Mattermost를 빠르게 작동시켜야 하나요?
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    - ``sudo setenforce 0`` 명령을 실행하여 SELinux를 permissive(허용) 모드로 변경할 수 있습니다. 이 모드에서는 정책이 적용되지 않고 로그만 기록됩니다.
    - 이 명령은 SELinux 모드를 "permissive"로 변경합니다. permissive 모드에서는 정책이 적용되지 않으며, 위반 사항이 차단되는 대신 기록됩니다. 이는 SELinux 정책 관련 문제를 디버깅하고 트러블슈팅하는 데 유용할 수 있습니다.
    - 컨텍스트가 필요한 대로 작동하면 ``sudo setenforce 1`` 명령을 실행하여 강제(enforcing) 모드를 다시 활성화하세요.
    추가 리소스
    ^^^^^^^^^^^^^^^^^^^^^^^
    - `SELinux 사용자 및 관리자 가이드 <https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/index>`_
    - `SELinux 프로젝트 위키 <https://github.com/SELinuxProject/selinux>`_
    - `SELinux 소개 <https://github.blog/developer-skills/programming-languages-and-frameworks/introduction-to-selinux/>`_
    - `시스템 관리자를 위한 SELinux 가이드: 주요 질문 42가지 <https://opensource.com/article/18/7/sysadmin-guide-selinux>`_
    - `SELinux 마스터하기: Linux 보안 종합 가이드 <https://srivastavayushmaan1347.medium.com/mastering-selinux-a-comprehensive-guide-to-linux-security-8bed9976da88>`_</code></pre>
    <div class="tabs-container" data-tabs><div class="tabs-nav"><button class="tab-button active" data-tab-index="0">firewalld</button>

    firewalld가 활성화된 RHEL 시스템에 Mattermost를 배포할 때는 Mattermost 서버에 대한 접근을 허용하도록 방화벽 규칙을 구성해야 합니다.

    Firewalld는 RHEL 시스템의 기본 방화벽 관리 도구로, 네트워크 영역을 지원하는 동적으로 관리되는 방화벽을 제공합니다. 기본적으로 Mattermost의 포트(8065)로 들어오는 연결을 차단할 수 있습니다.

    firewalld 실행 여부 확인#

    sudo systemctl status firewalld
    
    firewalld가 활성 상태이면 Mattermost 트래픽을 허용하도록 구성합니다.
    
    Mattermost 서버를 위한 firewalld 구성
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    1. Mattermost 서버를 위해 포트 8065를 엽니다:
    
      
    sudo firewall-cmd --permanent --add-port=8065/tcp
    
    2. 동일한 서버에서 리버스 프록시(예: nginx 또는 Apache)를 사용하는 경우 HTTP 및 HTTPS 포트도 엽니다:
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    3. 변경 사항을 적용하려면 firewalld를 리로드합니다:sudo firewall-cmd --reload
    4. 구성을 확인합니다:sudo firewall-cmd --list-all
    출력에서 포트 8065/tcp(선택적으로 http/https 서비스)를 확인할 수 있어야 합니다.
    
    Note

    Mattermost에 사용자 지정 포트를 사용하는 경우 ``8065``를 구성된 포트 번호로 교체하세요. ``--permanent`` 플래그는 시스템 재부팅 후에도 규칙이 유지되도록 합니다. Mattermost Calls를 위한 firewalld 구성(선택 사항) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Mattermost Calls 플러그인 또는 독립형 rtcd 서비스를 배포하는 경우 추가 포트를 열어야 합니다. Calls 아키텍처 및 배포 모드에 대한 자세한 내용은 <a href="https://docs.mattermost.com/administration-guide/configure/calls-deployment-guide" target="_blank" rel="noopener noreferrer" class="doc-ref">Calls 배포 가이드</a> 문서를 참조하세요. 통합 Calls 플러그인(Mattermost와 함께 실행되는 경우):sudo firewall-cmd --permanent --add-port=8443/udp sudo firewall-cmd --permanent --add-port=8443/tcp sudo firewall-cmd --reload 독립형 rtcd 서비스(추가 API 포트가 필요한 경우):sudo firewall-cmd --permanent --add-port=8443/udp sudo firewall-cmd --permanent --add-port=8443/tcp sudo firewall-cmd --permanent --add-port=8045/tcp sudo firewall-cmd --reload

    Note

    - 포트 8443(UDP/TCP)은 RTC 미디어 트래픽(오디오/비디오/화면 공유)에 사용됩니다 - 포트 8045(TCP)는 Mattermost와 rtcd 서비스 간의 API 통신에 사용됩니다 - RTC용 TCP 지원에는 Calls v0.17+ 및 rtcd v0.11+가 필요합니다 - 사용자 지정 포트를 사용하는 경우 기본 포트 번호를 구성된 값으로 교체하세요</code></pre> <div class="tabs-container" data-tabs><div class="tabs-nav"><button class="tab-button active" data-tab-index="0">fapolicyd</button>

    fapolicyd가 활성화된 RHEL 시스템에 Mattermost를 배포할 때 Mattermost 로그에서 "operation not permitted" 오류가 발생할 수 있습니다.

    Fapolicyd(File Access Policy Daemon)는 신뢰도를 기반으로 파일에 대한 접근 권한을 결정하는 사용자 공간 데몬입니다. 승인되지 않은 바이너리의 실행을 방지하기 위해 보안 환경에서 일반적으로 활성화됩니다. 기본적으로 fapolicyd는 Mattermost 바이너리 및 플러그인의 실행을 차단할 수 있습니다.

    fapolicyd 문제 트러블슈팅#

    1. Mattermost 로그에서 "operation not permitted" 오류가 표시되면 먼저 fapolicyd를 일시적으로 중지하여 원인인지 확인합니다:
    sudo systemctl stop fapolicyd
    
    2. Mattermost 배포를 테스트합니다. 이제 정상적으로 작동한다면 fapolicyd가 Mattermost 실행을 차단하고 있는 것이므로 올바르게 구성해야 합니다.
    
    3. fapolicyd를 디버그 모드로 시작하여 거부되는 항목을 확인합니다:
    
      
    sudo fapolicyd --debug
    
    4. 출력에서 거부 메시지를 찾습니다. 다음과 유사한 형태입니다:
    rule=15 dec=deny_audit perm=execute auid=-1 pid=19735
    exe=/opt/mattermost/bin/mattermost : path=/opt/mattermost/plugins/focalboard/server/dist/plugin-linux-amd64
    ftype=application/x-executable trust=0
    실행을 거부하는 규칙 번호를 확인하세요. 규칙 파일은 이 규칙보다 앞선 번호로 지정해야 합니다.
    Mattermost를 허용하도록 fapolicyd 구성
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    1. Mattermost용 규칙 파일을 생성합니다. 명명 규칙이 중요합니다. Mattermost를 거부하는 규칙보다 앞서야 합니다. 기본 fapolicyd 구성을 사용하는 경우 ``80``이 적합합니다:sudo touch /etc/fapolicyd/rules.d/80-mattermost.rules
    2. 파일에 허용 규칙을 추가합니다:sudo vi /etc/fapolicyd/rules.d/80-mattermost.rules
    Mattermost 실행을 허용하는 다음 규칙을 추가합니다:allow perm=execute exe=/usr/bin/sudo trust=1 : dir=/opt/mattermost/ all trust=0
    allow perm=execute exe=/opt/mattermost/bin/mattermost : dir=/opt/mattermost all trust=0
    allow perm=execute exe=/usr/lib/systemd/systemd trust=1 : dir=/opt/mattermost/ all trust=0
    3. 규칙이 유효하고 적용될 수 있는지 확인합니다:sudo fagenrules --check
    출력에서 "Rules have changed and should be updated"가 표시되어야 합니다.
    4. 새 규칙을 로드합니다:sudo fagenrules --load
    5. fapolicyd 서비스를 재시작합니다:sudo systemctl restart fapolicyd
    6. Mattermost를 재시작하여 올바르게 작동하는지 확인합니다:sudo systemctl restart mattermost
    7. Mattermost가 오류 없이 실행되고 있는지 확인합니다:curl http://localhost:8065
    sudo systemctl status mattermost
    
    Note

    - 규칙 파일 번호 지정이 중요합니다. 규칙은 순서대로 처리되며, 허용 규칙은 거부 규칙보다 앞서야 합니다. 이 단계를 따른 후에도 거부 사항이 계속 발생하면 디버그 출력에서 거부 규칙 번호를 확인하고 규칙 파일 번호가 더 낮은지 확인하세요. - Playbooks나 Calls 플러그인처럼 바이너리를 실행하는 플러그인이 있는 경우, 위의 fapolicyd 규칙은 ``/opt/mattermost`` 디렉터리 내의 모든 바이너리 실행을 허용합니다. 더 제한적인 규칙이 필요한 경우 각 플러그인 바이너리에 대한 특정 규칙을 만들 수 있습니다. rtcd 서비스를 위한 fapolicyd 구성(선택 사항) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Mattermost Calls를 위한 독립형 rtcd 서비스를 배포하는 경우 rtcd 바이너리에 대한 별도의 fapolicyd 규칙이 필요합니다. rtcd 서비스는 Mattermost와 별도로 배포되어 자체 바이너리를 실행합니다. rtcd를 언제, 왜 사용해야 하는지에 대한 자세한 내용은 <a href="https://docs.mattermost.com/administration-guide/configure/calls-deployment-guide" target="_blank" rel="noopener noreferrer" class="doc-ref">Calls 배포 가이드</a> 문서를 참조하세요. 1. rtcd용 규칙 파일을 생성합니다. 명명 규칙이 중요합니다. 거부 규칙보다 앞서야 합니다(일반적으로 80이 적합합니다):sudo touch /etc/fapolicyd/rules.d/80-rtcd.rules 2. rtcd에 대한 허용 규칙을 추가합니다:sudo vi /etc/fapolicyd/rules.d/80-rtcd.rules 다음 규칙을 추가합니다(rtcd 설치 디렉터리에 따라 경로를 조정하세요):allow perm=execute exe=/usr/bin/sudo trust=1 : dir=/opt/rtcd/ all trust=0 allow perm=execute exe=/opt/rtcd/bin/rtcd : dir=/opt/rtcd all trust=0 allow perm=execute exe=/usr/lib/systemd/systemd trust=1 : dir=/opt/rtcd/ all trust=0 3. 규칙이 유효하고 적용될 수 있는지 확인합니다:sudo fagenrules --check 출력에서 "Rules have changed and should be updated"가 표시되어야 합니다. 4. 새 규칙을 로드합니다:sudo fagenrules --load 5. fapolicyd와 rtcd 서비스를 재시작합니다:sudo systemctl restart fapolicyd sudo systemctl restart rtcd 6. rtcd가 오류 없이 실행되고 있는지 확인합니다:sudo systemctl status rtcd

    Note

    - 위의 경로는 rtcd가 ``/opt/rtcd/``에 설치되어 있다고 가정합니다. 실제 rtcd 설치 디렉터리에 따라 경로를 조정하세요. - 이 단계를 따른 후에도 거부 사항이 계속 발생하면 ``sudo fapolicyd --debug``를 실행하여 거부되는 특정 경로를 확인하고 그에 맞게 규칙을 조정하세요. - 설치 및 구성에 대한 자세한 내용은 <a href="https://docs.mattermost.com/administration-guide/configure/calls-rtcd-setup" target="_blank" rel="noopener noreferrer" class="doc-ref">RTCD 설정 및 구성</a> 문서를 참조하세요. 추가 리소스 ^^^^^^^^^^^^^^^^^^^^^^^ - `Mattermost와 fapolicyd <https://support.mattermost.com/hc/en-us/articles/12167526545172-Mattermost-and-fapolicyd>`_ 지원 문서</code></pre> <h3 id="step-6-서버-업데이트">Step 6: 서버 업데이트</h3> <p>tarball을 사용하는 경우 Mattermost 서버 설치를 업데이트하려면 여러 수동 단계가 필요합니다. 자세한 내용은 <a href="/docs/mattermost/upgrade/server/" class="doc-ref">Mattermost 서버 업그레이드</a> 문서를 참조하세요.

    Mattermost 제거#

    Mattermost 서버를 제거하려면 Mattermost 서버를 중지하고 중요한 파일을 모두 백업한 다음 다음 명령을 실행합니다:

    sudo rm /opt/mattermost
    Note

    구성에 따라 /opt/mattermost에 백업해야 할 여러 중요한 폴더가 있습니다. config, logs, plugins, client/plugins, data 폴더입니다. rm 명령을 실행하기 전에 이 위치들을 반드시 백업할 것을 강력히 권장합니다.

    Mattermost systemd 유닛 파일과 애플리케이션 실행을 위해 생성한 사용자/그룹도 제거할 수 있습니다.