mirror of
https://github.com/puma/puma.git
synced 2022-11-09 13:48:40 -05:00
cap 2 recipes
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@641 19e92222-5c0b-0410-8929-a290d50e31e9
This commit is contained in:
parent
370a88b2e4
commit
514135c040
2 changed files with 154 additions and 25 deletions
|
@ -14,15 +14,12 @@ mongrel_rails cluster::restart
|
|||
Stop cluster:
|
||||
mongrel_rails cluster::stop
|
||||
|
||||
Capistrano Recipe
|
||||
== Capistrano 1.0 Recipes
|
||||
|
||||
Add to config/deploy.rb:
|
||||
require 'mongrel_cluster/recipes'
|
||||
|
||||
Example usage:
|
||||
cap -a configure_mongrel_cluster
|
||||
|
||||
Variables
|
||||
Variables:
|
||||
mongrel_servers: Number of Mongrel servers to start.
|
||||
mongrel_port: Starting port to bind to.
|
||||
mongrel_address: Address to bind to.
|
||||
|
@ -39,9 +36,24 @@ restart_mongrel_cluster: Restart the Mongrel processes on the app server by star
|
|||
restart: Calls restart_mongrel_cluster to allow Mongrel to be used with the standard Capistrano deploy task.
|
||||
spinner: Calls start_mongrel_cluster to allow Mongrel to be used with the standard Capistrano cold_deploy task.
|
||||
|
||||
Supporting starting clusters on boot.
|
||||
== Capistrano 2.0 Recipes
|
||||
|
||||
Add to config/deploy.rb:
|
||||
require 'mongrel_cluster/recipes_2'
|
||||
|
||||
Capistrano 2.0 uses namespaced tasks. The new task names are:
|
||||
mongrel:cluster:configure Configure the cluster with variables.
|
||||
mongrel:cluster:start: Start Mongrel processes on the app server.
|
||||
mongrel:cluster:stop: Stop the Mongrel processes on the app server.
|
||||
mongrel:cluster:restart: Restart the Mongrel processes on the app server by starting and stopping mongrel_cluster.
|
||||
deploy:restart: Calls mongrel:cluster:restart to allow Mongrel to be used with the standard Capistrano deploy task.
|
||||
deploy:start: Calls mongrel:cluster:start to allow Mongrel to be used with the standard Capistrano deploy task.
|
||||
deploy:stop: Calls mongrel:cluster:stop to allow Mongrel to be used with the standard Capistrano deploy task.
|
||||
|
||||
== Starting clusters at boot
|
||||
|
||||
1. Create mongrel_cluster conf directory (/etc/mongrel_cluster).
|
||||
2. Assign ownership to your capistrano user.
|
||||
2. Assign ownership to your Capistrano user.
|
||||
3. Copy the init.d script from this gem's resouces directory /etc/init.d.
|
||||
4. chmod +x /etc/init.d/mongrel_cluster
|
||||
5. Add to init.d startup. On RHEL/CentOS use: /sbin/chkconfig --level 345 mongrel_cluster on
|
||||
|
|
117
projects/mongrel_cluster/lib/mongrel_cluster/recipes_2.rb
Normal file
117
projects/mongrel_cluster/lib/mongrel_cluster/recipes_2.rb
Normal file
|
@ -0,0 +1,117 @@
|
|||
Capistrano::Configuration.instance.load do
|
||||
set :mongrel_servers, 2
|
||||
set :mongrel_port, 8000
|
||||
set :mongrel_address, "127.0.0.1"
|
||||
set :mongrel_environment, "production"
|
||||
set :mongrel_conf, nil
|
||||
set :mongrel_user, nil
|
||||
set :mongrel_group, nil
|
||||
set :mongrel_prefix, nil
|
||||
set :mongrel_rails, 'mongrel_rails'
|
||||
set :mongrel_clean, false
|
||||
set :mongrel_pid_file, nil
|
||||
set :mongrel_log_file, nil
|
||||
set :mongrel_config_script, nil
|
||||
|
||||
namespace :mongrel do
|
||||
namespace :cluster do
|
||||
desc <<-DESC
|
||||
Configure Mongrel processes on the app server. This uses the :use_sudo
|
||||
variable to determine whether to use sudo or not. By default, :use_sudo is
|
||||
set to true.
|
||||
DESC
|
||||
task :configure, :roles => :app do
|
||||
set_conf
|
||||
|
||||
argv = []
|
||||
argv << "#{mongrel_rails} cluster::configure"
|
||||
argv << "-N #{mongrel_servers.to_s}"
|
||||
argv << "-p #{mongrel_port.to_s}"
|
||||
argv << "-e #{mongrel_environment}"
|
||||
argv << "-a #{mongrel_address}"
|
||||
argv << "-c #{current_path}"
|
||||
argv << "-C #{mongrel_conf}"
|
||||
argv << "-P #{mongrel_pid_file}" if mongrel_pid_file
|
||||
argv << "-l #{mongrel_log_file}" if mongrel_log_file
|
||||
argv << "--user #{mongrel_user}" if mongrel_user
|
||||
argv << "--group #{mongrel_group}" if mongrel_group
|
||||
argv << "--prefix #{mongrel_prefix}" if mongrel_prefix
|
||||
argv << "-S #{mongrel_config_script}" if mongrel_config_script
|
||||
cmd = argv.join " "
|
||||
send(run_method, cmd)
|
||||
end
|
||||
|
||||
desc <<-DESC
|
||||
Start Mongrel processes on the app server. This uses the :use_sudo variable to determine whether to use sudo or not. By default, :use_sudo is
|
||||
set to true.
|
||||
DESC
|
||||
task :start , :roles => :app do
|
||||
set_conf
|
||||
cmd = "#{mongrel_rails} cluster::start -C #{mongrel_conf}"
|
||||
cmd += " --clean" if mongrel_clean
|
||||
send(run_method, cmd)
|
||||
end
|
||||
|
||||
desc <<-DESC
|
||||
Restart the Mongrel processes on the app server by starting and stopping the cluster. This uses the :use_sudo
|
||||
variable to determine whether to use sudo or not. By default, :use_sudo is set to true.
|
||||
DESC
|
||||
task :restart , :roles => :app do
|
||||
set_conf
|
||||
cmd = "#{mongrel_rails} cluster::restart -C #{mongrel_conf}"
|
||||
cmd += " --clean" if mongrel_clean
|
||||
send(run_method, cmd)
|
||||
end
|
||||
|
||||
desc <<-DESC
|
||||
Stop the Mongrel processes on the app server. This uses the :use_sudo
|
||||
variable to determine whether to use sudo or not. By default, :use_sudo is
|
||||
set to true.
|
||||
DESC
|
||||
task :stop , :roles => :app do
|
||||
set_conf
|
||||
cmd = "#{mongrel_rails} cluster::stop -C #{mongrel_conf}"
|
||||
cmd += " --clean" if mongrel_clean
|
||||
send(run_method, cmd)
|
||||
end
|
||||
|
||||
desc <<-DESC
|
||||
Check the status of the Mongrel processes on the app server. This uses the :use_sudo
|
||||
variable to determine whether to use sudo or not. By default, :use_sudo is
|
||||
set to true.
|
||||
DESC
|
||||
task :status , :roles => :app do
|
||||
set_conf
|
||||
send(run_method, "#{mongrel_rails} cluster::status -C #{mongrel_conf}")
|
||||
end
|
||||
|
||||
def set_conf
|
||||
set :mongrel_conf, "/etc/mongrel_cluster/#{application}.yml" unless mongrel_conf
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
namespace :deploy do
|
||||
desc <<-DESC
|
||||
Restart the Mongrel processes on the app server by calling mongrel:cluster:restart.
|
||||
DESC
|
||||
task :restart, :roles => :app do
|
||||
mongrel.cluster.restart
|
||||
end
|
||||
|
||||
desc <<-DESC
|
||||
Start the Mongrel processes on the app server by calling mongrel:cluster:start.
|
||||
DESC
|
||||
task :start, :roles => :app do
|
||||
mongrel.cluster.start
|
||||
end
|
||||
|
||||
desc <<-DESC
|
||||
Stop the Mongrel processes on the app server by calling mongrel:cluster:stop.
|
||||
DESC
|
||||
task :stop, :roles => :app do
|
||||
mongrel.cluster.stop
|
||||
end
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in a new issue