Tak dneska jsem se konečně odhodlal vyzkoušet si svůj první hosting s Ruby on Rails. „Rozhodl“ jsem se pro railshosting.cz, protože jako jediný co znám nabízí Ruby on Rails hosting na zkoušku zdarma (na 2 měsíce).
Během pár hodin po registraci jsem obdržel email se všemi potřebnými informacemi pro zprovoznění.
Do této chvíle to bylo všechno „vpoho“. Ale to mi nevydrželo dlouho. Teď přišla ta pro mě náročnější část (hlavně psychicky). Nejdřív to byla instalace Subversion a nahrání souborů do SVN na web (podle Screencastu na railshosting.cz). Poté následovala instalace Capistrana. Není na tom sice nic těžkého. Stačí v RubyGem Package Manageru zadat:
gem install -y capistrano
A je to. Jenže mi nikdo už neřekl (a já si nepřečetl), že mi Capistrano nebude fungovat na Ruby 1.8.6. Takže dalším krokem byla instalace Ruby 1.8.5. a následná reinstalace Capistrana.
Už jsem si říkal, že to bude všechno „OK“ a nejhorší mám za sebou, ale ne. Capistrano je totiž nově ve verzi 2.0. A v této verzi jsou bohužel velké změny. Screencasty za railshosting.cz byly rázem k ničemu. A navíc soubor pro zprovoznění projektu, který jsem od nich obdržel emailem byl pro Capistrano verze 1.X a né 2.0.
Řešení, ke kterému jsem po pár hodinách hledání na webu a komunikací s výbornou podporou railshosting.cz, došel je následující:
Aplikování Capistrana na aktuální projekt se nedělá pomocí:
cap --apply-to ./
Jak je vidět v Sceencastu, ale pomocí:
capify .
Obsah souboru deploy.rb, který obdržíte emailem je potřeba změnit na:
set :application, "NÁZEV_APLIKACE"
set :repository, "SVN_SERVER"
set :scm_username, "svn"
set :scm_password, "HESLO_K_SVN"
role :web, "SERVER"
role :app, "SERVER"
role :db, "SERVER", :primary => true
set :deploy_to, "/home/deployer/app/"
set :user, "deployer"
ssh_options[:port] = 5028
task :after_update_code, :roles => [:app, :db] do
# link database configuration
run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
end
desc "Stop the webserver on the old release and start the server for the new release"
namespace :deploy do
task :restart, :roles => :app do
run "/usr/local/etc/rc.d/mongrel_cluster.sh restart"
end
end
Kde slova psaná velkými písmeny jsou hodnoty z původního deploy.rb.
Poté stačí v konzoli zadat:
cap deploy:migrations
Zbylý postup je totožný s Sceencasty, až na příkazy pro Capistrano. Seznam příkazů vyvoláte zadáním „cap -T“.
Věřte, nebo ne, ale tohle mi zabralo většinu dnešního dne. Chtěl bych ještě tímhle poděkovat technické podpoře railshosting.cz, za ochotu pomoct a to i když nejsem (zatím) platící zákazník.
Jo a pokud vás zajímá, jakou aplikaci jsem se snažil celý den „rozchodit“, pak věřte, že jde o takovou malou „online kancelář“, kterou si programuju ve volném čase pro zábavu. Odkaz vám sem nedám, ale věřím, že když budete chtít tak to najdete (když se tak stane, tak uživatelské jméno i heslo je „demo“).
Tags: hosting, Ruby on Rails