RocketChat.Server
Rocket.Chat

¡Despliega Rocket.Chat, la mejor plataforma de chat web de código abierto, con Ansible!
Notas
- La rama
master
ha sido actualizada av2.0
y ahora es el código más reciente del rol (en lugar de la versión compatible con 1.9). Si deseas el código más reciente, simplemente no incluyas ninguna versión yansible-galaxy
descargará la última etiqueta, o puedes incluirversion: master
para estar siempre al día con el desarrollo. - Los usuarios de
v1.9
pueden continuar utilizando las etiquetasv1.9
yv1.9.0
, y aún existe una ramaansible_1.9
, aunque poco o nada de modificaciones se harán allí.
Características
Despliegue de pila completa opcional: Despliega completamente Rocket.Chat, incluyendo MongoDB y un proxy inverso SSL Nginx. O, despliega Rocket.Chat e intégralo con tus instancias/métodos de despliegue existentes de MongoDB y/o Nginx.
Generación automática de certificados SSL opcional: Genera automáticamente certificados SSL para conectividad HTTPS a través de un proxy inverso Nginx. ¡O utiliza tus propios certificados SSL!
Actualizaciones automáticas opcionales [requiere Ansible 2.0]: Si se publica una nueva versión de Rocket.Chat, o si deseas seguir el desarrollo para fines de prueba, simplemente actualiza
rocket_chat_version
a la versión que desees desplegar (consulta la página de lanzamientos de Rocket.Chat, establecerocket_chat_automatic_upgrades
entrue
y deja que este rol haga el resto. Si hay un cambio en el código desplegado en tu servidor Rocket.Chat (ya sea por un cambio remoto en larocket_chat_version
que estás siguiendo, como 'latest' o 'develop', o porque estableciste una nuevarocket_chat_version
para obtener), este rol se encargará de la actualización y el redepliegue del servicio Rocket.Chat, manteniendo tus datos intactos. Nota: Esta funcionalidad requiere Ansible 2.0. Consulta cómo obtener la versión 2.0 de este rol en la sección Instalar desde Ansible Galaxy
Plataformas soportadas
Debian
- Stretch (9)
- Buster (10)
Ubuntu
- Bionic Beaver: 18.04 LTS
- Xenial: 16.04 LTS
- Trusty: 14.04 LTS
EL (RHEL/CentOS)
- 7
Si deseas que tu distribución/sistema operativo sea soportado, por favor informa de un problema!
¿Tienes problemas?
Asegúrate de haber leído la FAQ y toda la documentación antes de informar de un problema.
Variables del rol
Todas las variables tienen valores predeterminados razonables en defaults/main.yml
Predeterminados
Nombre | Valor Predeterminado | Descripción |
---|---|---|
rocket_chat_automatic_upgrades |
false | Un valor booleano que determina si se debe actualizar Rocket.Chat al realizar cambios en el código fuente |
rocket_chat_upgrade_backup |
true | Un valor booleano que determina si se debe hacer una copia de seguridad de la versión actual de Rocket.Chat al actualizar |
rocket_chat_upgrade_backup_path |
"{{ rocket_chat_application_path }}" |
La ruta para almacenar la copia de seguridad de Rocket.Chat cuando rocket_chat_upgrade_backup es true |
rocket_chat_application_path |
/var/lib/rocket.chat |
El destino en el sistema de archivos para desplegar Rocket.Chat |
rocket_chat_version |
latest |
La versión de Rocket.Chat a desplegar; consulta la página de lanzamientos de Rocket.Chat para las opciones disponibles |
rocket_chat_tarball_remote |
Consulta defaults/main.yml |
La URL remota para obtener el archivo tarball de Rocket.Chat (utiliza rocket_chat_version ) |
rocket_chat_tarball_sha256sum |
Consulta defaults/main.yml |
La suma de verificación SHA256 del archivo tarball de Rocket.Chat que se está obteniendo |
rocket_chat_tarball_fetch_timeout |
100 | El tiempo (en segundos) antes de que la tentativa de obtener el archivo tarball de Rocket.Chat falle |
rocket_chat_tarball_validate_remote_cert |
true | Un valor booleano que determina si validar o no los certificados SSL para el archivo tarball remoto de Rocket.Chat |
rocket_chat_service_user |
rocketchat |
El nombre del usuario que ejecutará el proceso del servidor Rocket.Chat |
rocket_chat_service_group |
rocketchat |
El nombre del grupo principal para el usuario rocket_chat_service_user |
rocket_chat_service_host |
"{{ ansible_fqdn }}" |
El FQDN del sistema Rocket.Chat |
rocket_chat_service_port |
3000 | El puerto TCP en el que escucha Rocket.Chat |
rocket_chat_service_extra_instances |
[] |
Lista de números de puerto TCP para instancias adicionales de rocketchat para manejar más usuarios en una máquina |
rocket_chat_node_version |
4.5.0 |
La versión de NodeJS a instalar que n entiende |
rocket_chat_node_prefix |
/usr/local/n/versions/node/{{ rocket_chat_node_version }} |
La ruta al directorio del binario node que instala n |
rocket_chat_npm_dist |
/usr/bin/npm |
La ruta al binario original de npm , antes de que n instale cualquier versión de Node |
rocket_chat_include_mongodb |
true | Un valor booleano que determina si se debe desplegar MongoDB |
rocket_chat_mongodb_keyserver |
keyserver.ubuntu.com | El servidor de claves GPG a utilizar al importar la clave del repositorio de MongoDB |
rocket_chat_mongodb_gpg_key |
7F0CEB10 |
La huella digital de la clave GPG a importar para el repositorio de MongoDB |
rocket_chat_mongodb_user |
no se usa por defecto | Nombre de usuario a usar al conectarse a MongoDB. Si estableces esto, también debes definir rocket_chat_mongodb_password , de lo contrario, no se usan usuario/contraseña para conectarse a MongoDB |
rocket_chat_mongodb_password |
no se usa por defecto | Contraseña a usar al conectarse a MongoDB. Si estableces esto, también debes definir rocket_chat_mongodb_user , de lo contrario, no se usan usuario/contraseña para conectarse a MongoDB |
rocket_chat_mongodb_server |
127.0.0.1 | La IP/FQDN del host de MongoDB |
rocket_chat_mongodb_port |
27017 | El puerto TCP para contactar al host de MongoDB |
rocket_chat_mongodb_database |
rocketchat | La base de datos de MongoDB a utilizar para Rocket.Chat |
rocket_chat_mongodb_use_tls |
false | Si usar TLS para conectarse a la base de datos de MongoDB |
rocket_chat_mongodb_packages |
mongodb |
El nombre del paquete(s) de MongoDB a instalar (difiere para diferentes distribuciones - consulta vars/ ) |
rocket_chat_mongodb_config_template |
mongod.conf.j2 |
La plantilla /etc/mongod.conf a desplegar |
rocket_chat_mongodb_org_pkgs |
false | true (Debian/Ubuntu) | Si se deben utilizar paquetes de la edición comunitaria de MongoDB.org o no |
rocket_chat_mongodb_org_version |
3.4 | Cadena de versión de los paquetes oficiales a instalar |
rocket_chat_mongodb_service_name |
mongod |
El nombre del servicio systemd y del archivo de configuración de mongodb en /etc |
rocket_chat_include_nginx |
true | Un valor booleano que determina si se debe desplegar Nginx |
rocket_chat_ssl_generate_certs |
true | Un valor booleano que determina si se deben generar los certificados SSL de Nginx |
rocket_chat_ssl_key_path |
/etc/nginx/rocket_chat.key |
La ruta de destino para la clave privada SSL de Nginx |
rocket_chat_ssl_cert_path |
/etc/nginx/rocket_chat.crt |
La ruta de destino para el certificado SSL de Nginx |
rocket_chat_ssl_deploy_data |
false | Un valor booleano que determina si se deben desplegar datos SSL personalizados (archivos cert/key) |
rocket_chat_ssl_key_file |
~ |
Si no usas la generación de certificados SSL, esta es la ruta a la clave privada SSL de Nginx en el nodo de control de Ansible, para su despliegue |
rocket_chat_ssl_cert_file |
~ |
Si no usas la generación de certificados SSL, esta es la ruta al certificado SSL de Nginx en el nodo de control de Ansible, para su despliegue |
rocket_chat_nginx_enable_pfs |
true | Un valor booleano que determina si habilitar o no PFS al desplegar Nginx |
rocket_chat_nginx_generate_pfs_key |
true | Un valor booleano que determina si generar o no un archivo de clave PFS |
rocket_chat_nginx_pfs_key_numbits |
2048 | Número de bits que pasar a OpenSSL al generar un archivo de clave PFS |
rocket_chat_nginx_pfs_key_path |
/etc/nginx/rocket_chat.pem |
La ruta de destino para el archivo de clave PFS de Nginx |
rocket_chat_nginx_pfs_file |
~ |
Si no usas la generación de clave PFS, esta es la ruta a la clave PFS de Nginx en el nodo de control de Ansible, para su despliegue |
rocket_chat_nginx_listen_ssl_port |
443 |
El puerto SSL en el que Nginx escucha |
rocket_chat_nginx_listen_port |
80 |
El puerto en el que Nginx escucha |
Algunas variables difieren entre sistemas operativos/distribuciones.
Estas están establecidas en el directorio vars/
, típicamente en un archivo nombrado según la distribución.
Variables de RHEL/CentOS
Establecidas en vars/RedHat.yml
Nombre | Valor Predeterminado | Descripción |
---|---|---|
rocket_chat_dep_packages |
- git | Una lista de dependencias de Rocket.Chat para instalar |
- GraphicsMagick | ||
- nodejs | ||
- npm | ||
- make | ||
rocket_chat_mongodb_packages |
- mongodb | Una lista de paquetes del servidor MongoDB a instalar |
- mongodb-server | ||
rocket_chat_mongodb_repl_lines |
'replSet=001-rs' |
El valor para el conjunto de réplicas de MongoDB |
rocket_chat_mongodb_fork |
true |
Un valor booleano que establece si se debe bifurcar el proceso del servidor MongoDB |
rocket_chat_mongodb_pidfile_path |
/var/run/mongodb/mongodb.pid |
La ruta al archivo pid para el proceso del servidor MongoDB |
rocket_chat_mongodb_logpath |
/var/log/mongodb/mongod.log |
La ruta del archivo de registro para el servidor MongoDB |
rocket_chat_mongodb_unixsocketprefix |
/var/run/mongodb |
La ruta para el prefijo del socket UNIX de MongoDB |
rocket_chat_mongodb_dbpath |
/var/lib/mongodb |
La ruta para que MongoDB almacene sus bases de datos |
rocket_chat_nginx_process_user |
nginx |
El usuario que se utilizará para iniciar el proceso del servidor Nginx |
Variables de RHEL/CentOS 7
Establecidas en vars/RedHat_7.yml
Nombre | Valor Predeterminado | Descripción |
---|---|---|
rocket_chat_service_update_command |
systemctl daemon-reload ; systemctl restart rocketchat |
El comando a usar para informar al sistema de gestión de servicios cuando ha cambiado un manifiesto de servicio |
rocket_chat_service_template |
||
src |
rocketchat.service.j2 |
La plantilla fuente para desplegar el manifiesto del servicio de Rocket.Chat |
dest |
/usr/lib/systemd/system/rocketchat.service |
El destino para desplegar el manifiesto del servicio de Rocket.Chat |
rocket_chat_tarball_validate_remote_cert |
false | Un valor booleano que determina si validar o no los certificados SSL para el archivo tarball remoto de Rocket.Chat |
Variables de Debian
Establecidas en vars/Debian.yml
Nombre | Valor Predeterminado | Descripción |
---|---|---|
rocket_chat_dep_packages |
- git | Una lista de dependencias de Rocket.Chat para instalar |
- graphicsmagick | ||
- nodejs | ||
- npm | ||
- make | ||
rocket_chat_mongodb_packages |
- mongodb-server | Una lista de paquetes del servidor MongoDB a instalar |
- mongodb-shell | ||
rocket_chat_mongodb_repl_lines |
replication: |
El valor para el conjunto de réplicas de MongoDB |
replSetName: "001-rs" |
||
rocket_chat_nginx_process_user |
www-data |
El usuario que se utilizará para iniciar el proceso del servidor Nginx |
Variables de Debian 8
Establecidas en vars/Debian_8.yml
Nombre | Valor Predeterminado | Descripción |
---|---|---|
rocket_chat_service_update_command |
systemctl daemon-reload ; systemctl restart rocketchat |
El comando a usar para informar al sistema de gestión de servicios cuando ha cambiado un manifiesto de servicio |
rocket_chat_service_template |
||
src |
rocketchat.service.j2 |
La plantilla fuente para desplegar el manifiesto del servicio de Rocket.Chat |
dest |
/etc/systemd/system/rocketchat.service |
El destino para desplegar el manifiesto del servicio de Rocket.Chat |
rocket_chat_mongodb_apt_repo |
deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main |
El repositorio APT para MongoDB |
Variables de Ubuntu
Establecidas en vars/Ubuntu.yml
Nombre | Valor Predeterminado | Descripción |
---|---|---|
rocket_chat_dep_packages |
- git | Una lista de dependencias de Rocket.Chat para instalar |
- graphicsmagick | ||
- nodejs | ||
- npm | ||
- make | ||
rocket_chat_mongodb_packages |
- mongodb-server | Una lista de paquetes del servidor MongoDB a instalar |
- mongodb-shell | ||
rocket_chat_mongodb_repl_lines |
replication: |
El valor para el conjunto de réplicas de MongoDB |
replSetName: "001-rs" |
||
rocket_chat_nginx_process_user |
www-data |
El usuario que se utilizará para iniciar el proceso del servidor Nginx |
Variables de Ubuntu 16
Establecidas en vars/Ubuntu_15.yml
Nombre | Valor Predeterminado | Descripción |
---|---|---|
rocket_chat_service_update_command |
systemctl daemon-reload ; systemctl restart rocketchat |
El comando a usar para informar al sistema de gestión de servicios cuando ha cambiado un manifiesto de servicio |
rocket_chat_service_template |
||
src |
rocketchat.service.j2 |
La plantilla fuente para desplegar el manifiesto del servicio de Rocket.Chat |
dest |
/etc/systemd/system/rocketchat.service |
El destino para desplegar el manifiesto del servicio de Rocket.Chat |
rocket_chat_mongodb_apt_repo |
deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main |
El repositorio APT para MongoDB |
Variables de Ubuntu 14
Establecidas en vars/Ubuntu_14.yml
Nombre | Valor Predeterminado | Descripción |
---|---|---|
rocket_chat_service_update_command |
initctl reload-configuration ; service rocketchat restart |
El comando a usar para informar al sistema de gestión de servicios cuando ha cambiado un manifiesto de servicio |
rocket_chat_service_template |
||
src |
rocketchat_upstart.j2 |
La plantilla fuente para desplegar el manifiesto del servicio de Rocket.Chat |
dest |
/etc/init/rocketchat.conf |
El destino para desplegar el manifiesto del servicio de Rocket.Chat |
rocket_chat_mongodb_apt_repo |
deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse |
El repositorio APT para MongoDB |
rocket_chat_tarball_validate_remote_cert |
false | Un valor booleano que determina si validar o no los certificados SSL para el archivo tarball remoto de Rocket.Chat |
Instalar este rol desde Ansible Galaxy
Este rol está disponible para descarga en Ansible Galaxy.
Para instalar este rol y rastrearlo en tu base de código de Ansible, usa algo similar a lo siguiente en tu requirements.yml
:
- src: RocketChat.Server
version: v1.9.0
path: roles/external/
Nota: debes especificar version
como v1.9.0
si todavía estás usando Ansible 1.9.4
Instalar la versión de Ansible 2.0 de este rol
Con el lanzamiento de Ansible 2.0, este rol tiene soporte oficial con algunas mejoras de rendimiento y características adicionales (como actualizaciones automáticas).
Para usar la versión de Ansible 2.0 de este rol, puedes instalarla usando la herramienta de línea de comandos ansible-galaxy
utilizando un requirements.yml
(ambos mencionados arriba) para especificar la versión que deseas usar.
Aquí tienes un ejemplo de un archivo requirements.yml
para instalar a través de ansible-galaxy
, que descargará el código de Ansible 2.0:
- src: RocketChat.Server
path: roles/external
Nota: master
ha sido actualizado a v2.0 y ahora es el código más reciente del rol. Si deseas el más reciente, simplemente no incluyas ninguna versión y ansible-galaxy
descargará la última etiqueta, o puedes incluir version: master
para estar siempre al día.
Ejemplo de Playbook
Un playbook simple para ejecutar este rol en todos los sistemas chat_servers
:
- hosts: chat_servers
roles:
- RocketChat.Server
Un playbook para desplegar Rocket.Chat en chat_servers
, pero excluyendo el despliegue de MongoDB y utilizando una instancia externa. También permite actualizaciones automáticas de Rocket.Chat (¡se requiere Ansible 2.0 para rocket_chat_automatic_upgrades
! Consulta la sección Instalar desde 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
- Cuando intento desplegar usando este rol, falla en la tarea
Fetch the Rocket.Chat binary tarball
Si el despliegue falla con un mensaje similar al siguiente, es porque el rol no ha sido actualizado para reflejar la suma de verificación SHA256 del último tarball de lanzamiento de Rocket.Chat
TASK [RocketChat.Server : Fetch the Rocket.Chat binary tarball] ****************
fatal: [chat1]: FAILED! => {"changed": false, "failed": true, "msg": "The checksum for /var/lib/rocket.chat/rocket.chat-latest.tgz did not match e6caca890c86f79595da14398dd3ab0c0d3222932d6a8a1b38c6e5082531acd2; it was 21ef5ee220671e5f514f240d1423514c5780d81d6ffba8720d19660079099925."}
En este momento, el mantenimiento de esta variable es un proceso manual. Mientras tanto, puedes simplemente establecer el valor de esta variable tú mismo; a través de host_vars
, group_vars
, vars
en tu playbook, o con -e
al ejecutar ansible-playbook
, etc.
Etiquetas disponibles
Para ejecutar un conjunto específico de tareas, con la bandera --tags
, las etiquetas disponibles son:
vars
build
mongodb
repo
nginx
upgrade
service
Gestión del servicio Rocket.Chat
Este rol desplegará un servicio llamado rocketchat
.
Puedes usar tu sistema nativo de gestión de servicios para iniciar/detener/recargar/reiniciar el servicio.
Pruebas con Vagrant
Para probar este rol, encontrarás un Vagrantfile
y un playbook provision.yml
en el directorio tests/
.
Esto es, como puedes haber adivinado, para ejecutar despliegues de prueba a través de Vagrant.
Si deseas probar algunos cambios, o simplemente ver cómo funciona el rol/desplegar un pequeño servidor local de Rocket.Chat,
puedes cd
en tests/
y ejecutar vagrant up
(siempre que tengas Vagrant y VirtualBox instalados).
Si echas un vistazo al Vagrantfile
, verás que hay un despliegue para cada plataforma soportada actualmente; simplemente comenta cualquier despliegue que no desees (¡no olvides su configuración de Ansible al final, tampoco!).
Una vez que el despliegue haya finalizado, si deseas probar Rocket.Chat, puedes visitar http://localhost:4000
en tu navegador (el puerto 4000
varía aquí, según la plataforma que estés desplegando, consulta el valor de forwarded_port
para tu plataforma).
TODO
- Usar Let's Encrypt para SSL
Licencia
MIT
Problemas/Contribuciones
Siéntete libre de: Reportar un problema Contribuir
Deploy Rocket.Chat
ansible-galaxy install RocketChat.Server