lest, just lest

Заметки о web-разработке, администрировании Linux и настройке Mac OS X

Развертывание сайта на Jekyll – Capistrano и Rsync

без комментариев

Jekyll представляет собой простой генератор статических сайтов. Он берет директорию с шаблонами и преобразует их с использованием Textile/Markdown и Liquid в обычные статические html-страницы, которые могут отдаваться напрямую через Apache, Nginx или любой другой web-сервер.

Многие уже привыкли разворачивать свои web-приложения с помощью Capistrano, запуская команду cap deploy. Поэтому удобно использовать такой же способ и для статического сайта, генерируемого при помощи Jekyll. Для этого необходимо создать Capfile в директории с Jekyll-сайтом:

server 'server domain or ip', :app
set :user, 'username'
set :deploy_to, '/path/to/site'

namespace :deploy do
  desc 'Deploy'
  task :default do
    build
    sync
  end

  desc 'Build _site locally'
  task :build do
    run_locally "jekyll --no-auto"
  end

  desc 'Remote sync _site'
  task :sync do
    local_site_path = File.join(File.dirname(File.expand_path(__FILE__)), '_site')
    find_servers(:except => {:no_release => true}).each do |server|
      run_locally "rsync -rlcv --delete #{local_site_path}/ #{user}@#{server}:#{deploy_to}/"
    end
  end
end

def run_locally(cmd)
  logger.trace "executing locally: #{cmd.inspect}" if logger
  system(cmd)
end

В первых 3-х строках нужно прописать информацию о сервере, логине пользователя и директории, в которую будет развернут сайт. Деплой происходит в 2 этапа:

  • генерация сайта в поддиректории _site командой jekyll --no-auto
  • синхронизация поддиректории _site и директории на сервере с помощью rsync.

Чтобы Capfile не включался в генерируемый сайт (директория _site), нужно исключить его, добавив в файл _config.yml (при необходимости создав этот файл в корне сайта):

exclude:
  - Capfile

Теперь достаточно запустить привычную команду:

cap deploy

и изменения будут залиты на сервер.

Related posts:

  1. Развертывание Symfony приложения с Capistrano и Subversion
  2. Capistrano и deploy проектов
  3. Cron и Ruby: использование Whenever
  4. Включение цветного вывода для Capistrano

Автор: lest

Январь 5, 2011 в 22:54

Опубликовано в development

Метки: , , ,

Leave a Reply