What is the command you are trying to run? - Jamis
On Sep 27, 2007, at 5:56 PM, bukaki wrote:
I am actually having the same problem as the original author. I do have a file named Capfile in my top level. Below is my deploy.rb # 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 :user, "luke" set :application, "test" set :repository, "http://svn.sjsnetworking.com/test" #====================================================================== =======# 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, "sjsnetworking.com" role :app, "sjsnetworking.com" role :db, "sjsnetworking.com", :primary => true #====================================================================== =======# OPTIONAL VARIABLES #====================================================================== =======set :deploy_to, "/home/lukecampbell/domain" # defaults to "/u/apps/ #{application}" set :use_sudo, false set :checkout, "export" # set :user, "flippy" # defaults to the currently logged in user # set :scm, :darcs # defaults to :subversion set :svn, "/usr/bin/svn" # defaults to searching the PATH set :svn_username, Proc.new { "luke --password password" } # 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 desc "Restart the FCGI processes on the app server as a regular user." task :restart, :roles => :app do run "#{current_path}/script/process/reaper -- dispatcher=dispatch.fcgi" end On Sep 4, 10:54 pm, chris <[EMAIL PROTECTED]> wrote:No I don't have a Capfile. I was under the impression that was for 2.0 only, although I could very well be wrong. I am using 1.4.1. Although I ran the command again to find the previous error message and this time it worked. Not sure why. I am just getting some permission errors on the server for creating directories. Thanks for the help On Sep 4, 10:33 pm, "Jamis Buck" <[EMAIL PROTECTED]> wrote:ENV is a Hash instance, containing all defined environment variables. However, that's not really going to be the problem, since all it meansis that you don't have one of the (optional) environment variablesset. Rather, the error you are getting occurs when you don't have your roles configured correctly. Was what you pasted in your original email the entire contents of your config/deploy.rb? Do you have a file namedCapfile in your top-level project directory? If so, what does it contain?- JamisOn 9/4/07, chris <[EMAIL PROTECTED]> wrote:When running the cap setup command I am getting the following error:executing "umask 02 &&\n mkdir -p /u/apps/ /u/apps/releases / u/apps/shared /u/apps/shared/system &&\n mkdir -p /u/apps/shared/log && \n mkdir -p /u/apps/shared/pids" /usr/local/lib/ruby/gems/1.8/gems/capistrano-1.4.1/lib/capistrano/actor.rb:545:in `execute_on_servers': The setup task is only run forservers matching {:except=>{:no_release=>true}, :desc=>"Set up the expected application directory structure on all boxes"}, but no servers matched (RuntimeError)When looking at the Capistrano code it seems that it is unable to obtain any hosts in the following code block. I What is the ENV array?# /usr/local/lib/ruby/gems/1.8/gems/capistrano-1.4.1/lib/ capistrano/actor.rb :108 def environment_values(key, use_symbols = false)if variable = ENV[key.to_s.upcase] ### This is where it seems toobtain nothing, then being false values = variable.split(",") use_symbols ? values.collect { |e| e.to_sym } : values end endHere is what I have in my deploy.rb file: set :application, "softballsmart" set :domain, "pointytack.com" set :user, "chrisolsen" set :svn, "/svn-repos/#{application}/trunk" set :repository, "svn+ssh://[EMAIL PROTECTED]" set :rails_env, "production"role :web, domain role :app, domain role :db, domain, :primary => trueset :deploy_to, "/var/www/apps" ssh_options[:keys] = %w(/Users/chrisolsen/.ssh/id_dsa) ssh_options[:port] = 22I am assuming that something is missing or set incorrectly. Thanks for the help- Hide quoted text -- Show quoted text ---~--~---------~--~----~------------~-------~--~----~To unsubscribe from this group, send email to capistrano- [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/ group/capistrano-~----------~----~----~----~------~----~------~--~---
smime.p7s
Description: S/MIME cryptographic signature
