Итак, при очередном деплое на FreeBSD было решено добиться автоматизированной взаимности от Capistrano в неожиданной конфигурации.
Для того, что бы использовать разные версии руби (1.9.3 например) мне пришлось использовать вместо удобного Passenger неудобный Unicorn.
Для отладки использован multistage в виде строки
require 'capistrano/ext/multistage'
в deploy.rb
и в виде конфигов в config/deploy/xxxxxx.rb для каждого случая (у меня staging, aws, colo)
баг возник неожиданно, капистрано не распознавал deploy_to, что решил stackoverflow http://stackoverflow.com/questions/8213376/capistrano-multistage-deploying-to-wrong-directory
каждый файл должен содержать
set(:deploy_to){ "/var/www/#{application}" }
set(:releases_path) { File.join(deploy_to, version_dir) }
set(:shared_path) { File.join(deploy_to, shared_dir) }
set(:current_path) { File.join(deploy_to, current_dir) }
set(:release_path) { File.join(releases_path, release_name) }
а конструкция
set :deploy_to, "/var/www/#{application}" попросту не работала :(
======================================================================
Запуск на colo (FreeBSD) закончился удачно, но авторизация OAuth слетала с известной SSL багой, которая вылечилась скачиванием ca-bundle.crt в config приложения, и с указанием на нее в config/initializers/device.rb
config.omniauth :google_oauth2, "xxxxx", "yyyyyyyyyy", { :access_type => "offline", :approval_prompt => "", :client_options => { :ssl => { :ca_file => "#{Rails.root}/config/ca-bundle.crt" }}}
======================================================================
к Апачу unicorn подключили как балансер по http, через unix socket Unicorn с апачем не работает
что описано здесь http://stackoverflow.com/questions/5780886/proxy-apache-load-balancers-to-a-unix-socket-instead-of-a-port
<VirtualHost *:80>
ServerName itservice
DocumentRoot /www/itservice/current/public
<Proxy balancer://unicornservers>
BalancerMember http://127.0.0.1:9000
</Proxy>
ProxyRequests Off
ProxyPass /assets/ !
ProxyPass / balancer://unicornservers/
ProxyPassReverse / balancer://unicornservers/
ProxyPreserveHost on
</VirtualHost>
set(:releases_path){File.join(deploy_to, version_dir)}set(:shared_path){File.join(deploy_to, shared_dir)}set(:current_path){File.join(deploy_to, current_dir)}set(:release_path){File.join(releases_path, release_name)}
Комментариев нет:
Отправить комментарий