Utilisez Capifony pour déployer vos applications Symfony (French)

2013-08-24

  symfony    capifony    french 

Le déploiement automatisé est tellement utile et pratique avec l'arrivée des outils comme composer qu'il faut absolument l'utiliser pour déployer vos applications Symfony.

Je vais vous montrer qu'il est également très simple de configurer Capifony pour déployer votre projet. En avant !

Installation

Commencez par installer Capifony en utilisant RubyGems :


gem install capifony

Vous n'avez maintenant plus qu'à écrire deux petits fichiers pour déployer votre application en utilisant Capifony.

Configuration

Le premier est le fichier Capfile permettant de charger un fichier de configuration en ruby que nous appelerons deploy.rb. Voici l'arborescence :


|-- app
|   |-- config
|   |   |-- deploy.rb # Project configuration file
|-- Capfile # Capistrano file loading the deploy.rb file

Voici notre fichier Capfile :


load 'deploy' if respond_to?(:namespace)

require 'capifony_symfony2'
load 'app/config/deploy'

Plutôt simple. Ecrivons maintenant notre fichier deploy.rb par étape :


# Application settings
set :application,             "your application name"
set :domain,                  "domain.com"

set :app_path,                "app"
set :web_path,                "web"

set :repository,              "your@server.com:/repository.git"
set :scm,                     :git

set :keep_releases,           3
set :use_sudo,                false

# Be more or less verbose by commenting/uncommenting the following lines
#logger.level = Logger::IMPORTANT
#logger.level = Logger::INFO
#logger.level = Logger::DEBUG
#logger.level = Logger::TRACE
logger.level = Logger::MAX_LEVEL

Définissez vos variables de configuration, à savoir le nom de votre application, nom de domaine de votre application, répertoires et l'URL de votre repository.

Vous pouvez également définir le nombre de releases que vous souhaitez garder lorsque vous lancerez la commande cap [stage] deploy:cleanup et pleins d'autres variables à retrouver sur la documentation de Capifony.

Nous allons maintenant ajouter une tâche qui sera jouée après le "deploy:setup" qui permet d'uploader le fichier parameters_stage.yml correspondant à l'environnement choisi :


# Upload parameters file corresponding to environment stage
after "deploy:setup" do
    run "if [ ! -d #{deploy_to}/shared/app/config ]; then mkdir -p #{deploy_to}/shared/app/config; fi"

    upload(
        '%s/parameters_%s.yml' % [File.dirname(__FILE__), fetch(:stage)],
        '%s/shared/app/config/parameters.yml' % fetch(:deploy_to)
    )
end

Définissez vos différents environnements

Enfin, définissez un bloc par environnement, par exemple ici, pour l'environnement de production :


# Configure production instance
desc "Deploy to production instance"
task :production do
    set :stage,                "production"
    set :branch,               "master"

    set :deploy_to,            "/path/to/your/web/directory"

    role :app,                 "user@domain.com", :promary => true
    role :web,                 "user@domain.com"
end

Voilà, vous pouvez désormais déployer votre application Symfony sur plusieurs environnements. N'hésitez pas à consulter les documentations officielles pour plus d'information.

Comments