RocketChat.Server

Rocket.Chat Ansible Galaxy Travis-CI

Déployez Rocket.Chat, la plateforme de chat web open source ultime, avec Ansible !

Notes

  • La branche master a été mise à jour avec v2.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 et ansible-galaxy tirera la dernière version, ou vous pouvez inclure version: master pour rester à jour avec le développement.
  • Les utilisateurs de v1.9 peuvent continuer à utiliser les balises v1.9 et v1.9.0, et une branche ansible_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églez rocket_chat_automatic_upgrades sur true 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 version rocket_chat_version que vous suivez, comme 'latest' ou 'develop', soit parce que vous avez défini une nouvelle rocket_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

Installer
ansible-galaxy install RocketChat.Server
Licence
mit
Téléchargements
12.5k
Propriétaire
The communications platform that puts data protection first.