RocketChat.Server
Rocket.Chat

Déployez Rocket.Chat, la plateforme de chat web open source ultime, avec Ansible !
Notes
- La branche
master
a été mise à jour avecv2.0
et est maintenant le code le plus actuel du rôle (au lieu de la version compatible 1.9.) Pour avoir le dernier code, n'incluez aucune version etansible-galaxy
tirera la dernière version, ou vous pouvez inclureversion: master
pour rester à jour avec le développement. - Les utilisateurs de
v1.9
peuvent continuer à utiliser les balisesv1.9
etv1.9.0
, et une brancheansible_1.9
reste disponible, bien qu'il y ait peu ou pas de mises à jour à cet endroit.
Caractéristiques
Déploiement complet optionnel : Déployez entièrement Rocket.Chat, y compris MongoDB et un reverse proxy SSL Nginx. Ou, déployez Rocket.Chat et intégrez-le avec vos instances/de méthodes de déploiement MongoDB et/ou Nginx existantes.
Génération automatique de certificats SSL optionnelle : Générez automatiquement des certificats SSL pour la connectivité HTTPS via un reverse proxy Nginx. Ou, déployez vos propres certificats SSL !
Mises à jour automatiques optionnelles [nécessite Ansible 2.0] : Si une nouvelle version de Rocket.Chat est publiée, ou si vous souhaitez suivre le développement à des fins de test, mettez simplement à jour
rocket_chat_version
avec la version que vous souhaitez déployer (voir la page des versions de Rocket.Chat), réglezrocket_chat_automatic_upgrades
surtrue
et laissez ce rôle faire le reste ! Si un changement est apporté au code déployé sur votre serveur Rocket.Chat (soit en raison d'un changement à distance à la versionrocket_chat_version
que vous suivez, comme 'latest' ou 'develop', soit parce que vous avez défini une nouvellerocket_chat_version
à récupérer), ce rôle gérera la mise à jour et le redéploiement du service Rocket.Chat, en gardant vos données intactes. Remarque : Cette fonctionnalité nécessite Ansible 2.0. Voir comment obtenir la version 2.0 de ce rôle dans la section Installer à partir d'Ansible Galaxy
Plateformes supportées
Debian
- Stretch (9)
- Buster (10)
Ubuntu
- Bionic Beaver : 18.04 LTS
- Xenial : 16.04 LTS
- Trusty : 14.04 LTS
EL (RHEL/CentOS)
- 7
Si vous souhaitez voir votre distribution/système d'exploitation soutenu, veuillez signaler un problème !
Des problèmes ?
Veuillez vous assurer d'avoir lu la FAQ et toute la documentation avant de signaler un problème.
Variables de rôle
Toutes les variables ont des valeurs par défaut raisonnables définies dans defaults/main.yml
Valeurs par défaut
Nom | Valeur par défaut | Description |
---|---|---|
rocket_chat_automatic_upgrades |
false | Un booléen qui détermine si Rocket.Chat doit être mis à jour lors des changements du code source |
rocket_chat_upgrade_backup |
true | Un booléen qui détermine si la version actuelle de Rocket.Chat doit être sauvegardée lors de la mise à jour |
rocket_chat_upgrade_backup_path |
"{{ rocket_chat_application_path }}" |
Le chemin pour stocker la sauvegarde de Rocket.Chat lorsque rocket_chat_upgrade_backup est true |
rocket_chat_application_path |
/var/lib/rocket.chat |
Le chemin sur le système de fichiers pour déployer Rocket.Chat |
rocket_chat_version |
latest |
La version de Rocket.Chat à déployer ; voir la page des versions de Rocket.Chat pour les options disponibles |
rocket_chat_tarball_remote |
Voir defaults/main.yml |
L'URL distante pour récupérer l'archive tarball de Rocket.Chat (utilise rocket_chat_version ) |
rocket_chat_tarball_sha256sum |
Voir defaults/main.yml |
Le hachage SHA256 de l'archive tarball de Rocket.Chat récupérée |
rocket_chat_tarball_fetch_timeout |
100 | Le temps (en secondes) avant que la tentative de récupération de l'archive tarball de Rocket.Chat échoue |
rocket_chat_tarball_validate_remote_cert |
true | Un booléen qui détermine s'il faut valider les certificats SSL pour l'archive tarball de Rocket.Chat |
rocket_chat_service_user |
rocketchat |
Le nom de l'utilisateur qui exécutera le processus du serveur Rocket.Chat |
rocket_chat_service_group |
rocketchat |
Le nom du groupe principal pour l'utilisateur rocket_chat_service_user |
rocket_chat_service_host |
"{{ ansible_fqdn }}" |
Le FQDN du système Rocket.Chat |
rocket_chat_service_port |
3000 | Le port TCP sur lequel Rocket.Chat écoute |
rocket_chat_service_extra_instances |
[] |
Liste des numéros de port TCP pour des instances de service rocketchat supplémentaires pour gérer plus d'utilisateurs sur une machine |
rocket_chat_node_version |
4.5.0 |
La version de NodeJS à installer que n comprend |
rocket_chat_node_prefix |
/usr/local/n/versions/node/{{ rocket_chat_node_version }} |
Le chemin vers le répertoire binaire node que n installe |
rocket_chat_npm_dist |
/usr/bin/npm |
Le chemin vers le binaire npm d'origine, avant que n'installe des versions de Node |
rocket_chat_include_mongodb |
true | Un booléen qui détermine s'il faut déployer MongoDB |
rocket_chat_mongodb_keyserver |
keyserver.ubuntu.com | Le serveur de clés GPG à utiliser lors de l'importation de la clé du dépôt MongoDB |
rocket_chat_mongodb_gpg_key |
7F0CEB10 |
L'empreinte de clé GPG à importer pour le dépôt MongoDB |
rocket_chat_mongodb_user |
non utilisé par défaut | Nom d'utilisateur à utiliser lors de la connexion à MongoDB. Si vous définissez cela, vous devez également définir rocket_chat_mongodb_password , sinon aucun utilisateur/mot de passe n'est utilisé pour se connecter à MongoDB |
rocket_chat_mongodb_password |
non utilisé par défaut | Mot de passe à utiliser lors de la connexion à MongoDB. Si vous définissez cela, vous devez également définir rocket_chat_mongodb_user , sinon aucun utilisateur/mot de passe n'est utilisé pour se connecter à MongoDB |
rocket_chat_mongodb_server |
127.0.0.1 | L'IP/FQDN de l'hôte MongoDB |
rocket_chat_mongodb_port |
27017 | Le port TCP pour contacter l'hôte MongoDB |
rocket_chat_mongodb_database |
rocketchat | La base de données MongoDB à utiliser pour Rocket.Chat |
rocket_chat_mongodb_use_tls |
false | Si oui ou non utiliser TLS pour se connecter à la base de données MongoDB |
rocket_chat_mongodb_packages |
mongodb |
Le nom des paquets MongoDB à installer (diffère selon les distributions - voir vars/ ) |
rocket_chat_mongodb_config_template |
mongod.conf.j2 |
Le modèle /etc/mongod.conf à déployer |
rocket_chat_mongodb_org_pkgs |
false | true (Debian/Ubuntu) | Utiliser ou non des paquets de la communauté MongoDB.org |
rocket_chat_mongodb_org_version |
3.4 | Chaîne de version de paquets officiels à installer |
rocket_chat_mongodb_service_name |
mongod |
Le nom du service systemd et du fichier de configuration mongodb dans /etc |
rocket_chat_include_nginx |
true | Un booléen qui détermine s'il faut déployer Nginx |
rocket_chat_ssl_generate_certs |
true | Un booléen qui détermine s'il faut générer les certificats SSL Nginx |
rocket_chat_ssl_key_path |
/etc/nginx/rocket_chat.key |
Le chemin de destination pour la clé privée SSL Nginx |
rocket_chat_ssl_cert_path |
/etc/nginx/rocket_chat.crt |
Le chemin de destination pour le certificat SSL Nginx |
rocket_chat_ssl_deploy_data |
false | Un booléen qui détermine s'il faut déployer des données SSL personnalisées (fichiers cert/key) |
rocket_chat_ssl_key_file |
~ |
Si vous ne générez pas de certificats SSL, c'est le chemin vers la clé privée SSL Nginx sur le nœud de contrôle Ansible, à déployer |
rocket_chat_ssl_cert_file |
~ |
Si vous ne générez pas de certificats SSL, c'est le chemin vers le certificat SSL Nginx sur le nœud de contrôle Ansible, à déployer |
rocket_chat_nginx_enable_pfs |
true | Un booléen qui détermine s'il faut activer PFS lors du déploiement de Nginx |
rocket_chat_nginx_generate_pfs_key |
true | Un booléen qui détermine s'il faut générer un fichier de clé PFS |
rocket_chat_nginx_pfs_key_numbits |
2048 | Nombre de bits à passer à OpenSSL lors de la génération d'un fichier de clé PFS |
rocket_chat_nginx_pfs_key_path |
/etc/nginx/rocket_chat.pem |
Le chemin de destination pour le fichier de clé PFS Nginx |
rocket_chat_nginx_pfs_file |
~ |
Si vous ne générez pas de clé PFS, c'est le chemin vers la clé PFS Nginx sur le nœud de contrôle Ansible, à déployer |
rocket_chat_nginx_listen_ssl_port |
443 |
Le port SSL sur lequel Nginx écoute |
rocket_chat_nginx_listen_port |
80 |
Le port sur lequel Nginx écoute |
Certaines variables diffèrent entre les systèmes d'exploitation/distributions.
Celles-ci sont définies dans le répertoire vars/
, généralement dans un fichier nommé selon la distribution.
Variables RHEL/CentOS
Définies dans vars/RedHat.yml
Nom | Valeur par défaut | Description |
---|---|---|
rocket_chat_dep_packages |
- git | Une liste de dépendances Rocket.Chat à installer |
- GraphicsMagick | ||
- nodejs | ||
- npm | ||
- make | ||
rocket_chat_mongodb_packages |
- mongodb | Une liste de paquets du serveur MongoDB à installer |
- mongodb-server | ||
rocket_chat_mongodb_repl_lines |
'replSet=001-rs' |
La valeur pour le replica set de MongoDB |
rocket_chat_mongodb_fork |
true |
Un booléen qui détermine si le processus du serveur MongoDB doit être mis en arrière-plan |
rocket_chat_mongodb_pidfile_path |
/var/run/mongodb/mongodb.pid |
Le chemin vers le fichier pid du processus du serveur MongoDB |
rocket_chat_mongodb_logpath |
/var/log/mongodb/mongod.log |
Le chemin du fichier journal pour le serveur MongoDB |
rocket_chat_mongodb_unixsocketprefix |
/var/run/mongodb |
Le chemin pour le préfixe de socket UNIX de MongoDB |
rocket_chat_mongodb_dbpath |
/var/lib/mongodb |
Le chemin où MongoDB stockera ses bases de données |
rocket_chat_nginx_process_user |
nginx |
L'utilisateur qui sera utilisé pour lancer le processus du serveur Nginx |
Variables RHEL/CentOS 7
Définies dans vars/RedHat_7.yml
Nom | Valeur par défaut | Description |
---|---|---|
rocket_chat_service_update_command |
systemctl daemon-reload ; systemctl restart rocketchat |
La commande à utiliser pour informer le système de gestion des services lorsqu'un manifest de service a changé |
rocket_chat_service_template |
||
src |
rocketchat.service.j2 |
Le modèle source à déployer pour le manifest de service Rocket.Chat |
dest |
/usr/lib/systemd/system/rocketchat.service |
La destination pour déployer le manifest du service Rocket.Chat |
rocket_chat_tarball_validate_remote_cert |
false | Un booléen qui détermine s'il faut valider les certificats SSL pour l'archive tarball de Rocket.Chat |
Variables Debian
Définies dans vars/Debian.yml
Nom | Valeur par défaut | Description |
---|---|---|
rocket_chat_dep_packages |
- git | Une liste de dépendances Rocket.Chat à installer |
- graphicsmagick | ||
- nodejs | ||
- npm | ||
- make | ||
rocket_chat_mongodb_packages |
- mongodb-server | Une liste de paquets du serveur MongoDB à installer |
- mongodb-shell | ||
rocket_chat_mongodb_repl_lines |
replication: |
La valeur pour le replica set de MongoDB |
replSetName: "001-rs" |
||
rocket_chat_nginx_process_user |
www-data |
L'utilisateur qui sera utilisé pour lancer le processus du serveur Nginx |
Variables Debian 8
Définies dans vars/Debian_8.yml
Nom | Valeur par défaut | Description |
---|---|---|
rocket_chat_service_update_command |
systemctl daemon-reload ; systemctl restart rocketchat |
La commande à utiliser pour informer le système de gestion des services lorsqu'un manifest de service a changé |
rocket_chat_service_template |
||
src |
rocketchat.service.j2 |
Le modèle source à déployer pour le manifest de service Rocket.Chat |
dest |
/etc/systemd/system/rocketchat.service |
La destination pour déployer le manifest du service Rocket.Chat |
rocket_chat_mongodb_apt_repo |
deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main |
Le dépôt APT pour MongoDB |
Variables Ubuntu
Définies dans vars/Ubuntu.yml
Nom | Valeur par défaut | Description |
---|---|---|
rocket_chat_dep_packages |
- git | Une liste de dépendances Rocket.Chat à installer |
- graphicsmagick | ||
- nodejs | ||
- npm | ||
- make | ||
rocket_chat_mongodb_packages |
- mongodb-server | Une liste de paquets du serveur MongoDB à installer |
- mongodb-shell | ||
rocket_chat_mongodb_repl_lines |
replication: |
La valeur pour le replica set de MongoDB |
replSetName: "001-rs" |
||
rocket_chat_nginx_process_user |
www-data |
L'utilisateur qui sera utilisé pour lancer le processus du serveur Nginx |
Variables Ubuntu 16
Définies dans vars/Ubuntu_15.yml
Nom | Valeur par défaut | Description |
---|---|---|
rocket_chat_service_update_command |
systemctl daemon-reload ; systemctl restart rocketchat |
La commande à utiliser pour informer le système de gestion des services lorsqu'un manifest de service a changé |
rocket_chat_service_template |
||
src |
rocketchat.service.j2 |
Le modèle source à déployer pour le manifest de service Rocket.Chat |
dest |
/etc/systemd/system/rocketchat.service |
La destination pour déployer le manifest du service Rocket.Chat |
rocket_chat_mongodb_apt_repo |
deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main |
Le dépôt APT pour MongoDB |
Variables Ubuntu 14
Définies dans vars/Ubuntu_14.yml
Nom | Valeur par défaut | Description |
---|---|---|
rocket_chat_service_update_command |
initctl reload-configuration ; service rocketchat restart |
La commande à utiliser pour informer le système de gestion des services lorsqu'un manifest de service a changé |
rocket_chat_service_template |
||
src |
rocketchat_upstart.j2 |
Le modèle source à déployer pour le manifest de service Rocket.Chat |
dest |
/etc/init/rocketchat.conf |
La destination pour déployer le manifest du service Rocket.Chat |
rocket_chat_mongodb_apt_repo |
deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse |
Le dépôt APT pour MongoDB |
rocket_chat_tarball_validate_remote_cert |
false | Un booléen qui détermine s'il faut valider les certificats SSL pour l'archive tarball de Rocket.Chat |
Installez ce rôle à partir d'Ansible Galaxy
Ce rôle est disponible en téléchargement sur Ansible Galaxy.
Pour installer ce rôle et le suivre dans votre base de code Ansible, utilisez quelque chose de similaire à ce qui suit dans votre requirements.yml
:
- src: RocketChat.Server
version: v1.9.0
path: roles/external/
Remarque : vous devez spécifier version
comme v1.9.0
si vous utilisez toujours Ansible 1.9.4
Installer la version 2.0 d'Ansible de ce rôle
Avec la sortie d'Ansible 2.0, ce rôle est officiellement pris en charge avec quelques améliorations de performance et fonctionnalités supplémentaires (mises à jour automatiques, par exemple).
Pour utiliser la version 2.0 de ce rôle, vous pouvez l'installer en utilisant l'outil en ligne de commande ansible-galaxy
avec un fichier requirements.yml
(à la fois mentionné ci-dessus) pour spécifier la version que vous souhaitez utiliser.
Voici un exemple de fichier requirements.yml
pour installer via ansible-galaxy
qui récupérera le code Ansible 2.0 :
- src: RocketChat.Server
path: roles/external
Remarque : master
a été mis à jour sur v2.0 et est maintenant le code le plus actuel du rôle. Si vous souhaitez le dernier code, n'incluez aucune version et ansible-galaxy
tirera le dernier tag, ou vous pouvez inclure version: master
pour être toujours à jour.
Exemple de Playbook
Un playbook simple pour exécuter ce rôle sur tous les systèmes chat_servers
:
- hosts: chat_servers
roles:
- RocketChat.Server
Un playbook pour déployer Rocket.Chat sur chat_servers
mais exclure le déploiement de MongoDB et utiliser une instance externe. Autorise également les mises à jour automatiques de Rocket.Chat (Ansible 2.0 requis pour rocket_chat_automatic_upgrades
! Voir la section Installer à partir d'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
- Lors de ma tentative de déploiement à l'aide de ce rôle, cela échoue à la tâche
Récupérer l'archive tarball binaire de Rocket.Chat
Si le déploiement échoue avec un message similaire à celui-ci, c'est parce que le rôle n'a pas été mis à jour pour refléter le hachage SHA256 de la dernière archive tarball de Rocket.Chat
TASK [RocketChat.Server : Fetch the Rocket.Chat binary tarball] ****************
fatal: [chat1]: FAILED! => {"changed": false, "failed": true, "msg": "Le checksum pour /var/lib/rocket.chat/rocket.chat-latest.tgz ne correspondait pas à e6caca890c86f79595da14398dd3ab0c0d3222932d6a8a1b38c6e5082531acd2 ; il était 21ef5ee220671e5f514f240d1423514c5780d81d6ffba8720d19660079099925."}
Actuellement, la maintenance de cette variable est un processus manuel. En attendant, vous pouvez simplement définir la valeur de cette variable vous-même ; via host_vars
, group_vars
, vars
dans votre playbook, ou avec -e
lors de l'exécution de ansible-playbook
, etc.
Balises disponibles
Pour exécuter un ensemble spécifique de tâches, avec le drapeau --tags
, les balises disponibles sont :
vars
build
mongodb
repo
nginx
upgrade
service
Gestion du service Rocket.Chat
Ce rôle déploiera un service nommé rocketchat
.
Vous pouvez utiliser votre système de gestion de services natif pour démarrer/arrêter/recharger/redémarrer le service.
Tests via Vagrant
Pour tester ce rôle, vous trouverez un Vagrantfile
et un playbook provision.yml
dans le répertoire tests/
.
Ceci est, comme vous l'avez sans doute deviné, pour effectuer des déploiements de test via Vagrant.
Si vous souhaitez tester quelques modifications ou simplement voir comment ce rôle fonctionne / provisionner un petit serveur Rocket.Chat en local,
vous pouvez vous rendre dans tests/
et exécuter vagrant up
(à condition d'avoir Vagrant et VirtualBox installés).
Si vous regardez le Vagrantfile
, vous verrez qu'il y a un déploiement pour chaque plateforme actuellement supportée - il suffit de commenter celles que vous ne voulez pas déployer (n'oubliez pas leur configuration Ansible en bas non plus !).
Une fois le déploiement terminé, si vous souhaitez essayer Rocket.Chat, vous pouvez visiter http://localhost:4000
dans votre navigateur (le port 4000
varie ici, en fonction de la plateforme que vous déployez, voir la valeur forwarded_port
pour votre plateforme).
À faire
- Utiliser Let's Encrypt pour SSL
Licence
MIT
Problèmes / Contributions
N'hésitez pas à : Signaler un problème Contribuer
Deploy Rocket.Chat
ansible-galaxy install RocketChat.Server