Projet

Général

Profil

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@