Plugin for Vlad the Deployer with extensions for Nginx, RVM, Airbrake, Monit and more.
The easiest way to use this gem is using Bundler and including it in your Gemfile:
gem 'vlad', :require => false gem 'vlad-extras', :require => false
Then, require the gems in your Rakefile like this:
begin require 'vlad' require 'vlad-extras' Vlad.load # takes an options hash depending on your setup rescue LoadError puts 'Could not load Vlad' end
Using the recipes
By loading vlad-extras you get the following default extra recipes:
Setup: A more flexible way to define the tasks for the server setup.
Deploy: A more flexible way to define the tasks for a full deployment cycle.
Copy: Copies files and directories to the remote server via scp.
Assets: Tasks for cleaning and precompiling the assets.
Database: The standard Rails database tasks plus cloning the remote database into the local database.
Other recipes can be used by defining them when you load Vlad (note that the name of the key does not matter, for the extra recipes it is more like a description, the value is the recipe file name):
Vlad.load(:web => :nginx, :monitoring => :monit, :queue => :delayed_job)
Or you can simply require the files inside your deploy.rb (the load call basically does the same):
require 'vlad/monit' require 'vlad/delayed_job'
An overview of the recipes incuded in this gem:
Nginx: Basic tasks for starting/stopping. Add it like this:
RVM: Wrapper tasks for
rvm rvmrc trust
Monit: Basic control tasks.
ThinkingSphinx: Basic control tasks.
DelayedJob: Basic control tasks.
Sidekiq: Basic control tasks.
Custom permissions: Tasks for you paranoid sysadmins to enforce custom permissions.
Note on Patches/Pull Requests
- Fork the project.
- Make your feature addition or bug fix.
- Commit, do not mess with Rakefile, Gemspec or version. (if you want to have your own version that is fine, but bump version in a commit by itself so it can be ignored when pulling in the other changes)
- Send a pull request.
- Danil Pismenny
Copyright (c) 2010-2012 Dennis Reimann. See LICENSE for details.