RocketChat.Server
Rocket.Chat
Zainstaluj Rocket.Chat, najlepszą platformę czatu internetowego typu open source, korzystając z Ansible!
Notatki
master
został zaktualizowany nav2.0
i teraz zawiera najnowszy kod tej roli. Jeśli chcesz najnowszy kod, nie podawaj żadnej wersji, aansible-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ówv1.9
iv1.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), ustawrocket_chat_automatic_upgrades
natrue
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 dlarocket_chat_version
, którego używasz, 'latest' lub 'develop', na przykład, czy z powodu ustawienia nowejrocket_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ę
ansible-galaxy install RocketChat.Server