Déploiement » Historique » Révision 2
Révision 1 (Jonathan Schaeffer, 26/08/2014 10:20) → Révision 2/3 (Jonathan Schaeffer, 26/08/2014 10:27)
h1. Prérequis du serveur h2. Système Linux. Les extraits de commande sont faits sous Debian. h3. Utilisateur dédié Pour tourner le service dans un environnement protégé et isolé, il est fortement recommandé de créer un utilisateur système dédié pour l'application. <pre> useradd assistat -m -U </pre> h3. Environnement Ruby et Rails On va faire un environnement ruby complet pour cet utilisateur, avec RVM. Installation de RVM, en tant qu'utilisateur @assistats@ : <pre> apt-get install curl \curl -sSL https://get.rvm.io | bash rvm install 2.1 rvm --default use 2.1 </pre> Installation de rails : <pre> gem install rails </pre> h3. Librairies nécessaires Pour installer l'interfaçage entre rails et postgresql, on a besoin d'une librairie de développement : apt-get install libpq-dev h2. Services h3. Postgresql Préparer un environnement postgresql, avec une base de donnée et un utilisateurs possédant la base et le droits de créer des tables. Par la suite, la base s'appellera @assistatsdb@ et l'utilisateur @assistats_web@ h3. Node.js Lancer un serveur Rails demande également de pouvoir exécuter du javascript côté serveur. Pour cela, on install node.js depuis une source externe (tel ([[https://github.com/joyent/node/wiki/installing-node.js-via-package-manager|tel que décrit dans la doc node.js https://github.com/joyent/node/wiki/installing-node.js-via-package-manager), node.js]]), en tant que root : <pre> curl -sL https://deb.nodesource.com/setup | bash - </pre> h3. Apache2 Installation d'Apache2 : <pre> apt-get install apache2 </pre> h3. Phusion Passenger Passenger est installé avec les paquets officiels du dépôt de Phusion : <pre> apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7 echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger wheezy main" > /etc/apt/sources.list.d/passenger.list apt-get update && apt-get install libapache2-mod-passenger passenger-install-apache2-module </pre> h1. Déploiement h2. Récupération de l'application <pre> su - assistats git clone git://tucuxi.univ-brest.fr/assistats cd assistats bundle install </pre> h2. Configuration Configurer l'accès à la base de données dans le fichier @config/database.yml@ <pre> production: adapter: postgresql database: assistatsdb host: localhost username: assistats_web password: xXXXXXxxxXX encoding: utf8 </pre> h3. Secret Génération d'un secret pour rails : rake secret On colle la sortie dans le fichier @config/secrets.yml@ h3. Base de données Création du schéma <pre> RAILS_ENV=production rake db:migrate </pre> h3. Assets <pre> RAILS_ENV=production rake assets:precompile </pre> h2. Conifguration Apache2 Dans le fichier de configuration d'apache, on ajoute dans le virtualhost souhaité la config suivante : <pre> Alias /assistats /var/www/assistats/public <Location /assistats> PassengerBaseURI /assistats PassengerAppRoot /var/www/assistats PassengerRuby /home/assistat/.rvm/gems/ruby-2.1.2/wrappers/ruby # RailsEnv production </location> <Directory /var/www/assistats/public> Allow from all Options -MultiViews </Directory> </pre> et un lien symbolique : @/var/www/assistats -> /home/assistat/assistats@