Dear all,
I'm having troubles deploying my first raisl application from my
MacBook to my Ubuntu 6.10 linux box.
Here is the error message I get when doing cap cold_deploy:
cap setup
* executing task setup
* executing "umask 02 &&\n mkdir -p /var/www/faresearch /var/www/
faresearch/releases /var/www/faresearch/shared /var/www/faresearch/
shared/system &&\n mkdir -p /var/www/faresearch/shared/log &&\n
mkdir -p /var/www/faresearch/shared/pids"
servers: ["192.168.1.4"]
Password:
[192.168.1.4] executing command
command finished
nicolas-hinzes-computer:~/Documents/Mezzoo.com/faresearch Nick$ cap
cold_deploy
* executing task cold_deploy
* executing task update
** transaction: start
* executing task update_code
* querying latest revision...
* executing "if [[ ! -d /var/www/faresearch/releases/
20070225214903 ]]; then\n svn co --no-auth-cache -q -r1
http://192.168.1.4/svn/faresearch/trunk /var/www/faresearch/releases/
20070225214903 &&\n (test -e /var/www/faresearch/
revisions.log || (touch /var/www/faresearch/revisions.log && chmod
666 /var/www/faresearch/revisions.log)) && echo `date +\"%Y-%m-%d %H:
%M:%S\"` $USER 1 20070225214903 >> /var/www/faresearch/revisions.log;
\n fi"
servers: ["192.168.1.4"]
Password:
[192.168.1.4] executing command
command finished
* executing task set_permissions
* executing "chmod -R g+w /var/www/faresearch/releases/
20070225214903"
servers: ["192.168.1.4"]
[192.168.1.4] executing command
command finished
* executing "rm -rf /var/www/faresearch/releases/20070225214903/log /
var/www/faresearch/releases/20070225214903/public/system &&\n ln -
nfs /var/www/faresearch/shared/log /var/www/faresearch/releases/
20070225214903/log &&\n ln -nfs /var/www/faresearch/shared/system /
var/www/faresearch/releases/20070225214903/public/system"
servers: ["192.168.1.4"]
[192.168.1.4] executing command
** [out :: 192.168.1.4] ln: creating symbolic link `/var/www/
faresearch/releases/20070225214903/public/system' to `/var/www/
faresearch/shared/system': No such file or directory
command finished
*** [set_permissions] transaction: rollback
* [set_permissions] rolling back
* [update_code] rolling back
* executing "rm -rf /var/www/faresearch/releases/20070225214903"
servers: ["192.168.1.4"]
[192.168.1.4] executing command
command finished
command "rm -rf /var/www/faresearch/releases/20070225214903/log /var/
www/faresearch/releases/20070225214903/public/system &&\\\n ln -
nfs /var/www/faresearch/shared/log /var/www/faresearch/releases/
20070225214903/log &&\\\n ln -nfs /var/www/faresearch/shared/
system /var/www/faresearch/releases/20070225214903/public/system"
failed on 192.168.1.4
Here is my deploy.rb:
require 'mongrel_cluster/recipes'
# This defines a deployment "recipe" that you can feed to capistrano
# (http://manuals.rubyonrails.com/read/book/17). It allows you to
automate
# (among other things) the deployment of your application.
#
=============================================================================
# REQUIRED VARIABLES
#
=============================================================================
# You must always specify the application and repository for every
recipe. The
# repository must be the URL of the repository you want this recipe to
# correspond to. The deploy_to path must be the path on each machine
that will
# form the root of the application path.
set :application, "faresearch"
set :repository, "http://192.168.1.4/svn/#{application}/trunk"
#
=============================================================================
# ROLES
#
=============================================================================
# You can define any number of roles, each of which contains any
number of
# machines. Roles might include such things as :web, or :app, or :db,
defining
# what the purpose of each machine is. You can also specify options
that can
# be used to single out a specific subset of boxes in a particular
role, like
# :primary => true.
role :web, "192.168.1.4"
role :app, "192.168.1.4"
role :db, "192.168.1.4", :primary => true
#
=============================================================================
# OPTIONAL VARIABLES
#
=============================================================================
set :deploy_to, "/var/www/faresearch" # defaults to "/u/apps/
#{application}"
set :mongrel_conf, "#{current_path}/config/mongrel_cluster.yml"
set :user, "root" # defaults to the currently logged in
user
# set :scm, :darcs # defaults to :subversion
# set :svn, "/path/to/svn" # defaults to searching the PATH
# set :darcs, "/path/to/darcs" # defaults to searching the PATH
# set :cvs, "/path/to/cvs" # defaults to searching the PATH
# set :gateway, "gate.host.com" # default to no gateway
#
=============================================================================
# SSH OPTIONS
#
=============================================================================
# ssh_options[:keys] = %w(/path/to/my/key /path/to/another/key)
# ssh_options[:port] = 25
#
=============================================================================
# TASKS
#
=============================================================================
# Define tasks that run on all (or only some) of the machines. You can
specify
# a role (or set of roles) that each task should be executed on. You
can also
# narrow the set of servers to a subset of a role by specifying
options, which
# must match the options given for the servers to select
(like :primary => true)
desc <<DESC
An imaginary backup task. (Execute the 'show_tasks' task to display
all
available tasks.)
DESC
task :backup, :roles => :db, :only => { :primary => true } do
# the on_rollback handler is only executed if this task is executed
within
# a transaction (see below), AND it or a subsequent task fails.
on_rollback { delete "/tmp/dump.sql" }
run "mysqldump -u theuser -p thedatabase > /tmp/dump.sql" do |ch,
stream, out|
ch.send_data "thepassword\n" if out =~ /^Enter password:/
end
end
# Tasks may take advantage of several different helper methods to
interact
# with the remote server(s). These are:
#
# * run(command, options={}, &block): execute the given command on all
servers
# associated with the current task, in parallel. The block, if
given, should
# accept three parameters: the communication channel, a symbol
identifying the
# type of stream (:err or :out), and the data. The block is invoked
for all
# output from the command, allowing you to inspect output and act
# accordingly.
# * sudo(command, options={}, &block): same as run, but it executes
the command
# via sudo.
# * delete(path, options={}): deletes the given file or directory from
all
# associated servers. If :recursive => true is given in the options,
the
# delete uses "rm -rf" instead of "rm -f".
# * put(buffer, path, options={}): creates or overwrites a file at
"path" on
# all associated servers, populating it with the contents of
"buffer". You
# can specify :mode as an integer value, which will be used to set
the mode
# on the file.
# * render(template, options={}) or render(options={}): renders the
given
# template and returns a string. Alternatively, if the :template key
is given,
# it will be treated as the contents of the template to render. Any
other keys
# are treated as local variables, which are made available to the
(ERb)
# template.
desc "Demonstrates the various helper methods available to recipes."
task :helper_demo do
# "setup" is a standard task which sets up the directory structure
on the
# remote servers. It is a good idea to run the "setup" task at least
once
# at the beginning of your app's lifetime (it is non-destructive).
setup
buffer = render("maintenance.rhtml", :deadline => ENV['UNTIL'])
put buffer, "#{shared_path}/system/maintenance.html", :mode => 0644
sudo "killall -USR1 dispatch.fcgi"
run "#{release_path}/script/spin"
delete "#{shared_path}/system/maintenance.html"
end
# You can use "transaction" to indicate that if any of the tasks
within it fail,
# all should be rolled back (for each task that specifies an
on_rollback
# handler).
desc "A task demonstrating the use of transactions."
task :long_deploy do
transaction do
update_code
disable_web
symlink
migrate
end
restart
enable_web
end
Here is my mongrel_cluster.yml:
---
cwd: /var/www/faresearch/current
port: "8000"
environment: production
pid_file: log/mongrel.pid
servers: 2
---
Any help would be greatly appreciated.
Thanks
--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---