Webistrano est une application Web développée en Ruby On Rails permettant le déploiement automatisé de vos applications, qu’elles soient Web ou non. Ainsi, via le front-end Web, vous n’aurez qu’à appuyer sur un bouton pour que Webistrano récupère vos sources depuis un dépôt (svn, git, …) et depuis un répertoire et le déploie sur votre ferme de serveurs, en lançant par exemple les différents tests que vous aurez effectués. Si une erreur apparaît, Webistrano annule tous les changements et laisse l’application fonctionnelle comme elle l’était.
Pour installer Webistrano, vous avez besoin de Ruby On Rails, d’un serveur Web et d’une base de données. Je vais utiliser nginx comme serveur Web et PostgreSQL comme base de données. Je ne vais pas vous expliquer comment installer nginx et PostgreSQL, il y a déjà de très bons articles qui vous l’expliquent.
Installation du Ruby On Rails
Pour installer Ruby On Rails sur Gentoo, rien de plus simple, installer rudy puis le gem rails :
# emerge -av dev-lang/ruby # gem install rails --include-dependencies # gem install bundler
Configuration de la base de données
Nous allons créer une nouvelle base de données pour Webistrano, ainsi qu’un nouvel utilisateur:
# su postgres $ psql postgres=# CREATE USER webistrano WITH PASSWORD '-VOTRE-MOT-DE-PASSE-'; CREATE ROLE postgres=# CREATE DATABASE webistrano WITH OWNER webistrano; CREATE DATABASE
Téléchargement et configuration du Webistrano
On va télécharger le tarball de la dernière version de Webistrano depuis le dépôt GitHub et décompressez le à l’endroit que vous souhaitez. Ici, le chemin de Webistrano sera /home/www/webistrano/.
useradd webistrano mkdir -p /home/www/webistano/ wget https://github.com/peritor/webistrano/tarball/master -O /home/www/webistano.tgz cd /home/www tar -xzf webistano.tgz mv peritor-webistrano-* webistrano rm webistano.tgz
Ensuite, nous allons configurer Webistrano en éditant les fichiers de configuration mais avant il faut les créer à partir des modèles fournis:
cd /home/www/webistrano cp config/webistrano_config.rb.sample config/webistrano_config.rb cp config/database.yml.sample config/database.yml

