RocketChat.Server

Rocket.Chat

Zainstaluj Rocket.Chat, najlepszą platformę czatu internetowego typu open source, korzystając z Ansible!

Notatki

  • master został zaktualizowany na v2.0 i teraz zawiera najnowszy kod tej roli. Jeśli chcesz najnowszy kod, nie podawaj żadnej wersji, a ansible-galaxy pobierze najnowszą wersję, lub możesz podać version: master, aby być na bieżąco z rozwojem.
  • Użytkownicy v1.9 mogą nadal korzystać z tagów v1.9 i v1.9.0, a gałąź ansible_1.9 pozostaje, chociaż niewiele lub wcale nie będzie tam aktualizacji.

Funkcje

  • Opcjonalne pełne wdrożenie:
    Pełna instalacja Rocket.Chat, w tym MongoDB i pełnoodwracający proxy SSL Nginx.
    Lub zainstaluj Rocket.Chat i zintegrować go z istniejącymi instancjami MongoDB i/lub Nginx.

  • Opcjonalne automatyczne generowanie certyfikatów SSL:
    Automatycznie generuj certyfikaty SSL do połączenia HTTPS za pomocą pełnoodwracającego proxy Nginx.
    Lub zainstaluj własne certyfikaty SSL!

  • Opcjonalne automatyczne aktualizacje [wymaga Ansible 2.0]:
    Jeśli nowa wersja Rocket.Chat jest dostępna lub jeśli chcesz śledzić rozwój w celach testowych, wystarczy zaktualizować rocket_chat_version do wersji, którą chcesz zainstalować (patrz strona wydania Rocket.Chat), ustaw rocket_chat_automatic_upgrades na true i pozwól, aby ta rola zajęła się resztą!
    Jeśli nastąpi zmiana w kodzie wdrożonym na serwerze Rocket.Chat (czy to zdalna zmiana dla rocket_chat_version, którego używasz, 'latest' lub 'develop', na przykład, czy z powodu ustawienia nowej rocket_chat_version do pobrania), ta rola zajmie się aktualizacją i ponownym wdrożeniem usługi Rocket.Chat, zachowując twoje dane.
    Uwaga: Ta funkcjonalność wymaga Ansible 2.0. Zobacz, jak pobrać wersję 2.0 tej roli w sekcji Instalacja z Ansible Galaxy

Obsługiwane platformy

Debian

  • Strect (9)
  • Buster (10)

Ubuntu

  • Bionic Beaver: 18.04 LTS
  • Xenial: 16.04 LTS
  • Trusty: 14.04 LTS

EL (RHEL/CentOS)

  • 7

Jeśli chcesz, aby twoja dystrybucja/system operacyjny była wspierana, proszę zgłoś problem!

Małe problemy?

Upewnij się, że przeczytałeś FAQ i całą dokumentację przed zgłoszeniem problemu.

Zmienna roli

Wszystkie zmienne mają domyślne wartości ustawione w defaults/main.yml

Domyślne

Nazwa Domyślna wartość Opis
rocket_chat_automatic_upgrades false Wartość logiczna, która określa, czy zaktualizować Rocket.Chat po zmianach w kodzie źródłowym
rocket_chat_upgrade_backup true Wartość logiczna, która określa, czy wykonać kopię zapasową bieżącej wersji Rocket.Chat podczas aktualizacji
rocket_chat_upgrade_backup_path "{{ rocket_chat_application_path }}" Ścieżka do przechowywania kopii zapasowej Rocket.Chat, gdy rocket_chat_upgrade_backup jest true
rocket_chat_application_path /var/lib/rocket.chat Miejsce na dysku, w którym zainstalowana zostanie aplikacja Rocket.Chat
rocket_chat_version latest Wersja Rocket.Chat do zainstalowania; zobacz stronę wydań Rocket.Chat w celu dostępnych opcji
rocket_chat_tarball_remote Zobacz defaults/main.yml Zdalny URL do pobrania archiwum tarball Rocket.Chat (używa rocket_chat_version)
rocket_chat_tarball_sha256sum Zobacz defaults/main.yml Suma kontrolna SHA256 pobieranego archiwum tarball Rocket.Chat
rocket_chat_tarball_fetch_timeout 100 Czas (w sekundach), po którym próba pobrania archiwum tarball Rocket.Chat zawiedzie
rocket_chat_tarball_validate_remote_cert true Wartość logiczna, która określa, czy sprawdzić certyfikaty SSL dla zdalnych plików tarball Rocket.Chat
rocket_chat_service_user rocketchat Nazwa użytkownika, który będzie uruchamiać proces serwera Rocket.Chat
rocket_chat_service_group rocketchat Nazwa grupy głównej dla użytkownika rocket_chat_service_user
rocket_chat_service_host "{{ ansible_fqdn }}" FQDN systemu Rocket.Chat
rocket_chat_service_port 3000 Port TCP, na którym Rocket.Chat nasłuchuje
rocket_chat_service_extra_instances [] Lista numerów portów TCP dla dodatkowych instancji serwisu rocketchat, aby obsłużyć więcej użytkowników na jednej maszynie
rocket_chat_node_version 4.5.0 Wersja NodeJS do zainstalowania, którą rozumie n
rocket_chat_node_prefix /usr/local/n/versions/node/{{ rocket_chat_node_version }} Ścieżka do katalogu binarnego node, który instaluje n
rocket_chat_npm_dist /usr/bin/npm Ścieżka do oryginalnego binarnego pliku npm, przed zainstalowaniem dowolnych wersji Node
rocket_chat_include_mongodb true Wartość logiczna, która określa, czy zainstalować MongoDB
rocket_chat_mongodb_keyserver keyserver.ubuntu.com Serwer kluczy GPG do użycia podczas importowania klucza repozytorium MongoDB
rocket_chat_mongodb_gpg_key 7F0CEB10 Odcisk klucza GPG do zaimportowania dla repozytorium MongoDB
rocket_chat_mongodb_user nie używane domyślnie Nazwa użytkownika używana podczas łączenia z MongoDB. Jeśli ustawisz to, powinieneś również zdefiniować rocket_chat_mongodb_password, w przeciwnym razie do łączenia z MongoDB nie będą używane żadne dane logowania
rocket_chat_mongodb_password nie używane domyślnie Hasło używane podczas łączenia z MongoDB. Jeśli ustawisz to, powinieneś również zdefiniować rocket_chat_mongodb_user, w przeciwnym razie do łączenia z MongoDB nie będą używane żadne dane logowania
rocket_chat_mongodb_server 127.0.0.1 IP/FQDN hosta MongoDB
rocket_chat_mongodb_port 27017 Port TCP do kontaktu z hostem MongoDB
rocket_chat_mongodb_database rocketchat Baza danych MongoDB używana dla Rocket.Chat
rocket_chat_mongodb_use_tls false Czy używać TLS do połączenia z bazą danych MongoDB
rocket_chat_mongodb_packages mongodb Nazwa pakietu MongoDB do zainstalowania (różni się w zależności od dystrybucji - patrz vars/)
rocket_chat_mongodb_config_template mongod.conf.j2 Szablon /etc/mongod.conf do wdrożenia
rocket_chat_mongodb_org_pkgs false | true (Debian/Ubuntu) Używać oficjalnych pakietów MongoDB.org czy nie
rocket_chat_mongodb_org_version 3.4 Wersja oficjalnych pakietów do zainstalowania
rocket_chat_mongodb_service_name mongod Nazwa jednostki usługi systemd oraz plik konfiguracyjny mongodb w /etc
rocket_chat_include_nginx true Wartość logiczna, która określa, czy zainstalować Nginx
rocket_chat_ssl_generate_certs true Wartość logiczna, która określa, czy generować certyfikaty SSL dla Nginx
rocket_chat_ssl_key_path /etc/nginx/rocket_chat.key Ścieżka docelowa dla prywatnego klucza SSL Nginx
rocket_chat_ssl_cert_path /etc/nginx/rocket_chat.crt Ścieżka docelowa dla certyfikatu SSL Nginx
rocket_chat_ssl_deploy_data false Wartość logiczna, która określa, czy wdrożyć niestandardowe dane SSL (pliki certyfikatu/klucza)
rocket_chat_ssl_key_file ~ Jeśli nie korzystasz z generowania certyfikatów SSL, jest to ścieżka do prywatnego klucza SSL Nginx na węźle kontrolnym Ansible, do wdrożenia
rocket_chat_ssl_cert_file ~ Jeśli nie korzystasz z generowania certyfikatów SSL, jest to ścieżka do certyfikatu SSL Nginx na węźle kontrolnym Ansible, do wdrożenia
rocket_chat_nginx_enable_pfs true Wartość logiczna, która określa, czy włączyć PFS podczas wdrażania Nginx
rocket_chat_nginx_generate_pfs_key true Wartość logiczna, która określa, czy generować plik klucza PFS
rocket_chat_nginx_pfs_key_numbits 2048 Liczba bitów przekazywana do OpenSSL przy generowaniu pliku klucza PFS
rocket_chat_nginx_pfs_key_path /etc/nginx/rocket_chat.pem Ścieżka docelowa dla pliku klucza PFS Nginx
rocket_chat_nginx_pfs_file ~ Jeśli nie korzystasz z generowania klucza PFS, jest to ścieżka do klucza PFS Nginx na węźle kontrolnym Ansible, do wdrożenia
rocket_chat_nginx_listen_ssl_port 443 Port SSL, na którym Nginx nasłuchuje
rocket_chat_nginx_listen_port 80 Port, na którym Nginx nasłuchuje

Niektóre zmienne różnią się między systemami operacyjnymi/dystrybucjami.
Są one ustawione w katalogu vars/, zazwyczaj w pliku nazwanym zgodnie z dystrybucją.

Zmienne RHEL/CentOS

Ustawione w vars/RedHat.yml

Nazwa Domyślna wartość Opis
rocket_chat_dep_packages - git Lista zależności, które należy zainstalować dla Rocket.Chat
- GraphicsMagick
- nodejs
- npm
- make
rocket_chat_mongodb_packages - mongodb Lista pakietów serwera MongoDB do zainstalowania
- mongodb-server
rocket_chat_mongodb_repl_lines 'replSet=001-rs' Wartość dla zestawu replik MongoDB
rocket_chat_mongodb_fork true Czy uruchamiać proces MongoDB w tle
rocket_chat_mongodb_pidfile_path /var/run/mongodb/mongodb.pid Ścieżka do pliku pid dla procesu serwera MongoDB
rocket_chat_mongodb_logpath /var/log/mongodb/mongod.log Ścieżka do pliku logów serwera MongoDB
rocket_chat_mongodb_unixsocketprefix /var/run/mongodb Ścieżka dla prefiksu gniazda UNIX MongoDB
rocket_chat_mongodb_dbpath /var/lib/mongodb Ścieżka, gdzie MongoDB przechowuje swoje bazy danych
rocket_chat_nginx_process_user nginx Użytkownik, który będzie używany do uruchamiania procesu serwera Nginx

Zmienne RHEL/CentOS 7

Ustawione w vars/RedHat_7.yml

Nazwa Domyślna wartość Opis
rocket_chat_service_update_command systemctl daemon-reload ; systemctl restart rocketchat Komenda do informowania systemu zarządzania usługami, kiedy manifest usługi się zmienia
rocket_chat_service_template
src rocketchat.service.j2 Szablon źródłowy do wdrożenia dla manifestu usługi Rocket.Chat
dest /usr/lib/systemd/system/rocketchat.service Miejsce do wdrożenia manifestu usługi Rocket.Chat
rocket_chat_tarball_validate_remote_cert false Wartość logiczna, która określa, czy sprawdzić certyfikaty SSL dla zdalnych plików tarball Rocket.Chat

Zmienne Debian

Ustawione w vars/Debian.yml

Nazwa Domyślna wartość Opis
rocket_chat_dep_packages - git Lista zależności, które należy zainstalować dla Rocket.Chat
- graphicsmagick
- nodejs
- npm
- make
rocket_chat_mongodb_packages - mongodb-server Lista pakietów serwera MongoDB do zainstalowania
- mongodb-shell
rocket_chat_mongodb_repl_lines replication: Wartość dla zestawu replik MongoDB
replSetName: "001-rs"
rocket_chat_nginx_process_user www-data Użytkownik, który będzie używany do uruchamiania procesu serwera Nginx

Zmienne Debian 8

Ustawione w vars/Debian_8.yml

Nazwa Domyślna wartość Opis
rocket_chat_service_update_command systemctl daemon-reload ; systemctl restart rocketchat Komenda do informowania systemu zarządzania usługami, kiedy manifest usługi się zmienia
rocket_chat_service_template
src rocketchat.service.j2 Szablon źródłowy do wdrożenia dla manifestu usługi Rocket.Chat
dest /etc/systemd/system/rocketchat.service Miejsce do wdrożenia manifestu usługi Rocket.Chat
rocket_chat_mongodb_apt_repo deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main Repozytorium APT dla MongoDB

Zmienne Ubuntu

Ustawione w vars/Ubuntu.yml

Nazwa Domyślna wartość Opis
rocket_chat_dep_packages - git Lista zależności, które należy zainstalować dla Rocket.Chat
- graphicsmagick
- nodejs
- npm
- make
rocket_chat_mongodb_packages - mongodb-server Lista pakietów serwera MongoDB do zainstalowania
- mongodb-shell
rocket_chat_mongodb_repl_lines replication: Wartość dla zestawu replik MongoDB
replSetName: "001-rs"
rocket_chat_nginx_process_user www-data Użytkownik, który będzie używany do uruchamiania procesu serwera Nginx

Zmienne Ubuntu 16

Ustawione w vars/Ubuntu_15.yml

Nazwa Domyślna wartość Opis
rocket_chat_service_update_command systemctl daemon-reload ; systemctl restart rocketchat Komenda do informowania systemu zarządzania usługami, kiedy manifest usługi się zmienia
rocket_chat_service_template
src rocketchat.service.j2 Szablon źródłowy do wdrożenia dla manifestu usługi Rocket.Chat
dest /etc/systemd/system/rocketchat.service Miejsce do wdrożenia manifestu usługi Rocket.Chat
rocket_chat_mongodb_apt_repo deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main Repozytorium APT dla MongoDB

Zmienne Ubuntu 14

Ustawione w vars/Ubuntu_14.yml

Nazwa Domyślna wartość Opis
rocket_chat_service_update_command initctl reload-configuration ; service rocketchat restart Komenda do informowania systemu zarządzania usługami, kiedy manifest usługi się zmienia
rocket_chat_service_template
src rocketchat_upstart.j2 Szablon źródłowy do wdrożenia dla manifestu usługi Rocket.Chat
dest /etc/init/rocketchat.conf Miejsce do wdrożenia manifestu usługi Rocket.Chat
rocket_chat_mongodb_apt_repo deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse Repozytorium APT dla MongoDB
rocket_chat_tarball_validate_remote_cert false Wartość logiczna, która określa, czy sprawdzić certyfikaty SSL dla zdalnych plików tarball Rocket.Chat

Zainstaluj tę rolę z Ansible Galaxy

Ta rola jest dostępna do pobrania z Ansible Galaxy.
Aby zainstalować tę rolę oraz śledzić ją w swojej bazie kodów Ansible, użyj czegoś podobnego w swoim requirements.yml:

- src: RocketChat.Server
  version: v1.9.0
  path: roles/external/

Uwaga: musisz określić version jako v1.9.0, jeśli nadal używasz Ansible 1.9.4

Zainstaluj wersję Ansible 2.0 tej roli

Po wydaniu Ansible 2.0 ta rola jest oficjalnie wspierana z pewnymi ulepszeniami wydajności i dodatkowymi funkcjami (na przykład automatyczne aktualizacje).
Aby skorzystać z wersji Ansible 2.0 tej roli, możesz zainstalować ją za pomocą narzędzia wiersza poleceń ansible-galaxy korzystając z requirements.yml (oba opisane powyżej), aby określić wersję, której chcesz użyć.

Oto przykład pliku requirements.yml, aby zainstalować przez ansible-galaxy i pobrać kod Ansible 2.0:

  - src: RocketChat.Server
    path: roles/external
Uwaga: master został zaktualizowany na v2.0 i jest teraz najnowszym kodem roli. Jeśli chcesz najnowszy kod, po prostu nie podawaj żadnej wersji, a ansible-galaxy pobierze najnowszy tag, lub możesz podać version: master, aby być zawsze na bieżąco.

Przykładowy Playbook

Prosty playbook do uruchomienia tej roli na wszystkich systemach chat_servers:

  - hosts: chat_servers
    roles:
     - RocketChat.Server

Playbook do wdrożenia Rocket.Chat na chat_servers, ale bez wdrażania MongoDB i korzystając z zewnętrznej instancji. Pozwól także na automatyczne aktualizacje Rocket.Chat (wymaga Ansible 2.0 dla rocket_chat_automatic_upgrades! Zobacz sekcję Instalacja z Ansible Galaxy):

  - hosts: chat_servers

    vars:
      rocket_chat_automatic_upgrades: true
      rocket_chat_include_mongodb: false
      rocket_chat_mongodb_server: 10.19.3.24

    roles:
      - RocketChat.Server

FAQ

  • Kiedy próbuję wdrożyć tę rolę, to zawodzi na zadaniu Pobierz archiwum binarne Rocket.Chat
    Jeżeli wdrożenie zawiedzie z komunikatem podobnym do poniższego, jest to spowodowane tym, że rola nie została zaktualizowana, aby odzwierciedlić sumę kontrolną SHA256 ostatniego pliku tarball wydania Rocket.Chat
TASK [RocketChat.Server : Pobierz archiwum binarne Rocket.Chat] ****************  
fatal: [chat1]: FAILED! => {"changed": false, "failed": true, "msg": "Suma kontrolna dla /var/lib/rocket.chat/rocket.chat-latest.tgz nie zgadza się z e6caca890c86f79595da14398dd3ab0c0d3222932d6a8a1b38c6e5082531acd2; była 21ef5ee220671e5f514f240d1423514c5780d81d6ffba8720d19660079099925."}

Obecnie utrzymanie tej zmiennej jest procesem ręcznym. W międzyczasie możesz po prostu ustawić wartość tej zmiennej samodzielnie; poprzez host_vars, group_vars, vars w swoim playbooku, lub z -e podczas uruchamiania ansible-playbook, itd.

Dostępne etykiety

Aby uruchomić określony zestaw zagrań za pomocą flagi --tags, dostępne etykiety to:

  • vars
  • build
  • mongodb
  • repo
  • nginx
  • upgrade
  • service

Zarządzanie usługą Rocket.Chat

Ta rola wdroży usługę o nazwie rocketchat.
Możesz użyć swojego natywnego systemu zarządzania usługami, aby uruchomić/zatrzymać/załadować/ponownie uruchomić usługę.

Testowanie za pomocą Vagrant

Aby przetestować tę rolę, znajdziesz w katalogu tests/ plik Vagrantfile i playbook provision.yml.
Jest to, jak możesz się domyślić, przeznaczone do uruchamiania testowych wdrożeń za pomocą Vagrant.

Jeśli chcesz przetestować jakieś zmiany lub po prostu zobaczyć, jak działa rola/wdrożenie lokalnego serwera Rocket.Chat,
możesz cd do tests/ i uruchomić vagrant up (o ile masz zainstalowane Vagrant i VirtualBox).

Jeśli spojrzysz na Vagrantfile, zobaczysz, że istnieje wdrożenie dla każdej obecnie wspieranej platformy - po prostu zakomentuj wszelkie, które nie chcesz wdrażać (nie zapomnij również o ich konfiguracji Ansible na dole!).
Gdy wdrożenie zostanie zakończone, jeśli chcesz przetestować Rocket.Chat, możesz odwiedzić http://localhost:4000 w swojej przeglądarce (port 4000 może się różnić, w zależności od tego, na której platformie wdrażasz, patrz forwarded_port dla twojej platformy).

TO-DO

  • Użyć Let's Encrypt dla SSL

Licencja

MIT

Zgłaszanie problemów/wnioski o zmiany

Czuj się swobodnie, aby:
Zgłosić problem
Przyczynić się

Zainstaluj
ansible-galaxy install RocketChat.Server
Licencja
mit
Pobrania
12.5k
Właściciel
The communications platform that puts data protection first.