Tato rake úloha je náhradou za mnou obvykle používaný shell script upload jenž častou používám v jednotlivých projektech pro distribuci na server. Je to velmi jednoduchá úloha, provádějící prosté nahrání aplikace na server. Neřeší věci kolem restartu/reloadu aplikačního serveru, neřeší migrace databází. Prostě jen nahraje aplikaci.
Parametry jsou uvedeny na začátku úlohy. Musíme upravit ruser, což je uživatel jenž má právo se přihlásit pomocí ssh na server rserver. Aplikaci pak nahráváme na serveru do adresáře rdir.
desc "Upload application to a production server"
task :upload do
rexcl = '--exclude "*~" --exclude tmp/ --exclude log/'
ropts = '-avPe ssh -C --delete --delete-after'
ruser = 'root'
rserver = 'app.example.com'
rdir = '/usr/local/share/aplikace'
puts "Uploading application"
system "echo $PWD"
system "rsync #{ropts} #{rexcl} ./ #{ruser}@#{rserver}:#{rdir}"
end