Distributor is a software developed with Rails for uploading and syncing files from a central server to remote locations.
- inicio automático de delayed_job con varios procesos (-n 10) con monit
- Traducir mensajes FLASH que faltan
- Barra de Progreso cuando se carga archivo
- Barra de Progreso cuando se activa servidor
- Mejorar el Look del correo enviado
Distributor esta certificado para ser ejecutado en sistemas operativos Red Hat Linux 6 o similares como CentOS y Oracle Linux.
La instalación del S.O. queda fuera del alcance de esta guía, pero Distributor espera que la configuración del Sistema Operativo:
- Permita acceso HTTP/S hacia Internet, para instalación de dependencias.
- Tenga configurado el repositorio EPEL - http://fedoraproject.org/wiki/EPEL/es
- Configurar el repositorio de NODEJS
rpm -ivh http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm
- Se haya instalado el paquete puppet
- Configurar SELinux en modo permissive
Se debe descargar el archivo zip y luego descomprimirlo. La carpeta resultante tendrá dos directorios:
-
distributor/ : es el directorio de la aplicación y su contenido debe ser copiado, con rsync, en /var/www/distributor. El usuario y grupo apache deben ser propietarios del directorio, y
-
puppet/ : que contiene la configuración automática y su contenido debe ser copiado en /etc/puppet
Se debe copiar el contenido del directorio puppet en el directorio /etc/puppet. El directorio /etc/puppet debería tener el siguiente contenido:
$ ls /etc/puppet/
auth.conf manifests modules puppet.conf
Posteriormente se debe aplicar la configuración del Sistema Operativo ejecutando:
$ puppet apply /etc/puppet/manifests/default.pp
Este proceso puede demorar varios minutos, lo cual depende de la velocidad de acceso a Internet y la potencia del equipo.
Dentro del directorio de la aplicación (/var/www/distributor), se debe ejecutar el comando bundle
$ bundle install
La configuración del servidor de correo se realiza en el archivo config/initializers/smtp_config.rb, se puede usar como base el archivo config/initializers/smtp_config.rb.example. Es necesario configurar al menos los siguientes parámetros:
- Hostname del Servidor donde se instaló Distributor
- Nombre/IP servidor de correos,
- Puerto
Distributor::Application.config.action_mailer.default_url_options = { :host => "distributor.example.com" }
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "mail.example.com",
:port => 587,
:domain => "example.com",
:user_name => "[email protected]",
:password => "super pass"
}
Después modificar la dirección de correo del emisor de los correos editando el archivo config/initializers/devise.rb
config.mailer_sender = "[email protected]"
La configuración se realiza en el archivo config/database.yml
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: distributor_production
pool: 5
username: distributor
password:
socket: /var/lib/mysql/mysql.sock
Más información sobre las opciones de configuración en http://bit.ly/JaFK4o
Luego se debe crear la base de datos, pare ello ejecutar el siguiente comando desde el directorio raíz de la aplicación.
$ RAILS_ENV=production rake db:setup
Desde el directorio raíz de la aplicación ejecutar el siguiente comando y seguir las instrucciones
$ RAILS_ENV=production rake distributor:build_admin
Desde el directorio raíz de la aplicación ejecutar el siguiente comando, el cual creará llaves SSH para la conexión con los servidores de sincronización. NO usar passphrases
$ RAILS_ENV=production rake distributor:create_ssh_key
Se deben compilar los archivos CSS y Javascript, para ello ejecutar
$ RAILS_ENV=production rake assets:clean
$ RAILS_ENV=production rake assets:precompile
Este es el demonio que se encarga de realizar las tareas de sincronización:
$ RAILS_ENV=production script/delayed_job -n 10 start