capone 0.0.5 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
data/README.md ADDED
@@ -0,0 +1,52 @@
1
+ # Capone
2
+
3
+ Capone is the set of Capistrano recipes that help me to deploy my
4
+ applications.
5
+
6
+ Capone by default uses Mongrel cluster (or Passenger) as an application
7
+ server, nginx as a web server, MySQL as a database server and git as a SCM.
8
+
9
+ The latest version of Capone was inspired by Rubaidh's
10
+ [Rubaidhstrano](http://github.com/rubaidh/rubaidhstrano) and some code has
11
+ been borrowed from its sources.
12
+
13
+ ## Installation
14
+
15
+ Capone could be installed either as a gem or as Rails plugin.
16
+
17
+ ### Gem (preferred)
18
+
19
+ Add to the end of your `config/environments/development.rb` file:
20
+
21
+ config.gem 'capone', :lib => false, :version => '>= 0.1.0'
22
+
23
+ ### Rails plugin
24
+
25
+ ./script/plugin install git://github.com/denis/capone.git
26
+
27
+ ## Example usage
28
+
29
+ To start using Capone you just need to add `require "capone"` to your
30
+ `config/deploy.rb` file (only if Capone is installed as a gem) and set some
31
+ variables:
32
+
33
+ require "capone"
34
+
35
+ set :application, "set your application name here"
36
+
37
+ set :repository, "set your repository location here"
38
+ set :host, "set your host here"
39
+
40
+ ## Features
41
+
42
+ In process...
43
+
44
+ ## Thanks
45
+
46
+ - Jamis Buck for [Capistrano](http://github.com/jamis/capistrano),
47
+ - Rubaidh Ltd for their awesome
48
+ [Rubaidhstrano](http://github.com/rubaidh/rubaidhstrano).
49
+
50
+ ## Copyright
51
+
52
+ Copyright (c) 2009 Denis Barushev. See LICENSE for details.
@@ -0,0 +1,6 @@
1
+ require "mongrel_cluster/recipes"
2
+
3
+ set :mongrel_conf, "#{deploy_to}/current/config/mongrel_cluster.yml"
4
+
5
+ depend :remote, :gem, "mongrel", ">=1.1.5"
6
+ depend :remote, :gem, "mongrel_cluster", ">=1.0.5"
@@ -0,0 +1,17 @@
1
+ namespace :deploy do
2
+ desc "Start application."
3
+ task :start, :roles => :app do
4
+ run "touch #{current_release}/tmp/restart.txt"
5
+ end
6
+
7
+ desc "Stop application."
8
+ task :stop, :roles => :app do
9
+ end
10
+
11
+ desc "Restart application."
12
+ task :restart, :roles => :app do
13
+ run "touch #{current_release}/tmp/restart.txt"
14
+ end
15
+ end
16
+
17
+ depend :remote, :gem, "passenger", ">=2.2.2"
@@ -0,0 +1,7 @@
1
+ on :load do
2
+ strategy = fetch(:daemon_strategy, :mongrel_cluster)
3
+
4
+ if [:passenger, :mongrel_cluster].include? strategy
5
+ load File.join(File.dirname(__FILE__), "daemon_strategies", "#{strategy}.rb")
6
+ end
7
+ end
data/recipes/db.rb ADDED
@@ -0,0 +1,98 @@
1
+ namespace :capone do
2
+ namespace :db do
3
+ desc <<-DESC
4
+ Create MySQL user and database using data from config/database.yml.
5
+ DESC
6
+ task :setup, :roles => :db, :only => { :primary => true } do
7
+ config = YAML::load(File.open("config/database.yml"))[rails_env]
8
+ root_password = Capistrano::CLI.password_prompt(prompt="Enter a root password for MySQL: ")
9
+
10
+ run "mysql --user='root' --password='#{root_password}' -e \"CREATE DATABASE IF NOT EXISTS #{config["database"]} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; GRANT ALL PRIVILEGES ON #{config["database"]}.* TO '#{config["username"]}'@'localhost' IDENTIFIED BY '#{config["password"]}' WITH GRANT OPTION;\""
11
+ end
12
+
13
+ desc <<-DESC
14
+ Load fixtures from db/fixtures to the database.
15
+ DESC
16
+ task :load_fixtures, :roles => :db, :only => { :primary => true } do
17
+ run "rake db:fixtures:load FIXTURES_PATH=db/fixtures RAILS_ENV=#{rails_env} -f #{release_path}/Rakefile"
18
+ end
19
+
20
+ desc <<-DESC
21
+ Dumps the database for the current environment into db/env-data.sql.bz2.
22
+ Any existing backup will be overwritten.
23
+ DESC
24
+ task :backup, :roles => :db, :only => { :primary => true } do
25
+ config = YAML::load(File.open("config/database.yml"))[rails_env]
26
+ case config["adapter"]
27
+ when "mysql"
28
+ cmd = ["mysqldump"]
29
+ cmd << "--host='#{config['host']}'" unless config["host"].nil?
30
+ cmd << "--user='#{config['username'].nil? ? 'root' : config['username']}'"
31
+ cmd << "--password='#{config['password']}'" unless config["password"].nil?
32
+ cmd << config["database"]
33
+ cmd << "| bzip2 > #{release_path}/db/#{rails_env}-data.sql.bz2"
34
+ run cmd.join(" ")
35
+ else
36
+ puts "Task not supported by '#{config['adapter']}'."
37
+ end
38
+ end
39
+
40
+ desc <<-DESC
41
+ Dumps the database for the current environment and take a local copy.
42
+ DESC
43
+ task :download_backup, :roles => :db, :only => { :primary => true } do
44
+ backup
45
+ get "#{latest_release}/db/#{rails_env}-data.sql.bz2", "db/#{rails_env}-data.sql.bz2"
46
+ end
47
+
48
+ desc <<-DESC
49
+ Loads an existing database dump into the current environment's database.
50
+ WARNING: this completely nukes the existing database! Use SOURCE_ENV to
51
+ specify which dump should be loaded. Defaults to 'production'."
52
+ DESC
53
+ task :load_backup do
54
+ run_locally "rake db:drop"
55
+ run_locally "rake db:create"
56
+
57
+ config = YAML::load(File.open("config/database.yml"))[rails_env]
58
+ case config["adapter"]
59
+ when "mysql"
60
+ cmd = ["bzcat db/production-data.sql.bz2 | mysql"]
61
+ cmd << "--host='#{config['host']}'" unless config["host"].nil?
62
+ cmd << "--user='#{config['username'].nil? ? 'root' : config['username']}'"
63
+ cmd << "--password='#{config['password']}'" unless config["password"].nil?
64
+ cmd << config["database"]
65
+ run_locally cmd.join(" ")
66
+ else
67
+ puts "Task not supported by '#{config['adapter']}'."
68
+ end
69
+ end
70
+
71
+ task :replicate do
72
+ download_backup
73
+ load_backup
74
+ end
75
+ end
76
+ end
77
+
78
+ on :load do
79
+ if fetch(:setup_database_after_deploy_setup, true)
80
+ after "deploy:setup", "capone:db:setup"
81
+ end
82
+ if fetch(:load_fixtures_to_database_after_deploy_cold, false)
83
+ after "deploy:cold", "capone:db:load_fixtures"
84
+ end
85
+
86
+ if fetch(:backup_database_before_migrations, false)
87
+ before "deploy:migrate", "capone:db:backup"
88
+ end
89
+
90
+ if fetch(:disable_web_during_migrations, false)
91
+ before "deploy:migrations", "deploy:web:disable"
92
+ after "deploy:migrations", "deploy:web:enable"
93
+ end
94
+ end
95
+
96
+ depend :remote, :command, "mysql"
97
+ depend :remote, :command, "mysqldump"
98
+ depend :remote, :command, "bzip2"
@@ -0,0 +1,30 @@
1
+ set :scm, :git
2
+ set :deploy_via, :remote_cache
3
+
4
+ set :rails_env, "production"
5
+
6
+ set(:deploy_to) { "/var/www/apps/#{application}" }
7
+
8
+ role(:app) { host }
9
+ role(:web) { host }
10
+ role(:db, :primary => true) { host }
11
+
12
+ set :use_sudo, false
13
+
14
+ # Needed for proper password prompts
15
+ default_run_options[:pty] = true
16
+
17
+ # You can redefine these variables in your config/deploy.rb
18
+
19
+ # set :daemon_strategy, :mongrel_cluster
20
+ # set :web_server, :nginx
21
+
22
+ # set :install_gems, true
23
+
24
+ # set :backup_database_before_migrations, false
25
+ # set :disable_web_during_migrations, false
26
+ # set :setup_database_after_deploy_setup, true
27
+ # set :load_fixtures_to_database_after_deploy_cold, false
28
+
29
+ # set :whenever, false
30
+ # set :delayed_job, false
@@ -0,0 +1,7 @@
1
+ on :load do
2
+ if fetch(:delayed_job, false)
3
+ after "deploy:stop", "delayed_job:stop"
4
+ after "deploy:start", "delayed_job:start"
5
+ after "deploy:restart", "delayed_job:restart"
6
+ end
7
+ end
data/recipes/gems.rb ADDED
@@ -0,0 +1,23 @@
1
+ namespace :capone do
2
+ namespace :gems do
3
+ desc <<-DESC
4
+ Install gems needed by application.
5
+ DESC
6
+ task :install, :roles => :app do
7
+ run "rake gems:install -f #{release_path}/Rakefile RAILS_ENV=#{rails_env}"
8
+ end
9
+
10
+ desc <<-DESC
11
+ Update installed gems.
12
+ DESC
13
+ task :update, :roles => :app do
14
+ sudo "gem update --no-rdoc --no-ri"
15
+ end
16
+ end
17
+ end
18
+
19
+ on :load do
20
+ if fetch(:install_gems, true)
21
+ after "deploy:update_code", "capone:gems:install"
22
+ end
23
+ end
data/recipes/nginx.rb CHANGED
@@ -3,7 +3,7 @@ namespace :capone do
3
3
  desc <<-DESC
4
4
  Enable virtual host.
5
5
  DESC
6
- task :enable_vhost do
6
+ task :enable_vhost, :roles => :web do
7
7
  sudo "ln -fs #{current_path}/config/nginx.conf /etc/nginx/sites-enabled/#{application}"
8
8
  sudo "/etc/init.d/nginx reload"
9
9
  end
@@ -11,16 +11,22 @@ namespace :capone do
11
11
  desc <<-DESC
12
12
  Disable virtual host.
13
13
  DESC
14
- task :disable_vhost do
14
+ task :disable_vhost, :roles => :web do
15
15
  sudo "rm /etc/nginx/sites-enabled/#{application}"
16
16
  sudo "/etc/init.d/nginx reload"
17
17
  end
18
18
 
19
19
  desc <<-DESC
20
- Reload nginx configuration if config file was changed.
20
+ Reload nginx configuration if the application nginx virtual host config file was changed.
21
21
  DESC
22
- task :reload_if_config_file_changed do
22
+ task :reload_if_config_file_changed, :roles => :web do
23
23
  run "bash -c \"if ! cmp #{previous_release}/config/nginx.conf #{current_path}/config/nginx.conf; then #{sudo} /etc/init.d/nginx reload; fi\""
24
24
  end
25
25
  end
26
26
  end
27
+
28
+ if fetch(:web_server, :nginx) == :nginx
29
+ before "deploy:start", "capone:nginx:enable_vhost"
30
+ after "deploy:stop", "capone:nginx:disable_vhost"
31
+ after "deploy:restart", "capone:nginx:reload_if_config_file_changed"
32
+ end
data/recipes/whenever.rb CHANGED
@@ -1,12 +1,16 @@
1
- # Original version of this file was excerpted from "Advanced Rails Recipes",
2
- # published by The Pragmatic Bookshelf.
3
- namespace :capone do
4
- namespace :whenever do
5
- desc <<-DESC
6
- Update the crontab file.
7
- DESC
8
- task :update_crontab, :roles => :db do
9
- run "cd #{release_path} && whenever --update-crontab #{application}"
10
- end
11
- end
12
- end
1
+ namespace :capone do
2
+ namespace :whenever do
3
+ desc <<-DESC
4
+ Update the crontab file with whenever.
5
+ DESC
6
+ task :update_crontab, :roles => :db do
7
+ run "cd #{release_path} && whenever --update-crontab #{application}"
8
+ end
9
+ end
10
+ end
11
+
12
+ on :load do
13
+ if fetch(:whenever, false)
14
+ after "deploy:symlink", "capone:whenever:update_crontab"
15
+ end
16
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Barushev
@@ -9,10 +9,19 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-06 00:00:00 +00:00
12
+ date: 2009-12-09 00:00:00 +00:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: capistrano
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.5.0
24
+ version:
16
25
  description:
17
26
  email: barushev@gmail.com
18
27
  executables: []
@@ -21,25 +30,20 @@ extensions: []
21
30
 
22
31
  extra_rdoc_files:
23
32
  - LICENSE
24
- - README.rdoc
33
+ - README.md
25
34
  files:
26
35
  - LICENSE
27
- - README.rdoc
28
- - Rakefile
36
+ - README.md
29
37
  - lib/capone.rb
30
- - recipes/backup.rb
31
- - recipes/deploy.rb
32
- - recipes/git.rb
33
- - recipes/install.rb
38
+ - recipes/daemon_strategies/mongrel_cluster.rb
39
+ - recipes/daemon_strategies/passenger.rb
40
+ - recipes/daemon_strategy.rb
41
+ - recipes/db.rb
42
+ - recipes/defaults.rb
43
+ - recipes/delayed_job.rb
44
+ - recipes/gems.rb
34
45
  - recipes/nginx.rb
35
- - recipes/update.rb
36
46
  - recipes/whenever.rb
37
- - tasks/capone_tasks.rake
38
- - templates/Capfile
39
- - templates/config/deploy.rb
40
- - templates/config/mongrel_cluster.yml.erb
41
- - templates/config/monitrc
42
- - templates/system/nginx.conf
43
47
  has_rdoc: true
44
48
  homepage: http://github.com/denis/capone
45
49
  licenses: []
data/README.rdoc DELETED
@@ -1,14 +0,0 @@
1
- = Capone
2
-
3
- Capone is the set of rake tasks and capistrano recipes that help to:
4
- * generate configs;
5
- * prepare servers for production use;
6
- * deploy applications;
7
- * maintain servers.
8
-
9
- Capone supports only Ubuntu 8.04 LTS as an OS, Mongrel as an application server,
10
- nginx as a web server, MySQL as a database server and Subversion or git as a SCM.
11
-
12
- == Copyright
13
-
14
- Copyright (c) 2009 Denis Barushev. See LICENSE for details.
data/Rakefile DELETED
@@ -1,55 +0,0 @@
1
- require 'rubygems'
2
- require 'rake'
3
-
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "capone"
8
- gem.summary = "Capone is the set of rake tasks and capistrano recipes."
9
- gem.email = "barushev@gmail.com"
10
- gem.homepage = "http://github.com/denis/capone"
11
- gem.authors = ["Denis Barushev"]
12
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
13
- gem.files = %w(LICENSE README.rdoc Rakefile) + Dir.glob("{lib,recipes,tasks,templates}/**/*")
14
- end
15
- rescue LoadError
16
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
17
- end
18
-
19
- require 'rake/testtask'
20
- Rake::TestTask.new(:test) do |test|
21
- test.libs << 'lib' << 'test'
22
- test.pattern = 'test/**/*_test.rb'
23
- test.verbose = true
24
- end
25
-
26
- begin
27
- require 'rcov/rcovtask'
28
- Rcov::RcovTask.new do |test|
29
- test.libs << 'test'
30
- test.pattern = 'test/**/*_test.rb'
31
- test.verbose = true
32
- end
33
- rescue LoadError
34
- task :rcov do
35
- abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
36
- end
37
- end
38
-
39
- task :test => :check_dependencies
40
-
41
- task :default => :test
42
-
43
- require 'rake/rdoctask'
44
- Rake::RDocTask.new do |rdoc|
45
- if File.exist?('VERSION')
46
- version = File.read('VERSION')
47
- else
48
- version = ""
49
- end
50
-
51
- rdoc.rdoc_dir = 'rdoc'
52
- rdoc.title = "capone #{version}"
53
- rdoc.rdoc_files.include('README*')
54
- rdoc.rdoc_files.include('lib/**/*.rb')
55
- end
data/recipes/backup.rb DELETED
@@ -1,17 +0,0 @@
1
- namespace :capone do
2
- namespace :backup do
3
- desc <<-DESC
4
- Backup all.
5
- DESC
6
- task :default do
7
- mysql
8
- end
9
-
10
- desc <<-DESC
11
- Backup MySQL database.
12
- DESC
13
- task :mysql, :roles => :db, :only => { :primary => true } do
14
- run "echo 'Not implemented yet.'"
15
- end
16
- end
17
- end
data/recipes/deploy.rb DELETED
@@ -1,27 +0,0 @@
1
- namespace :capone do
2
- namespace :deploy do
3
- desc <<-DESC
4
- Create MySQL user and database using data from config/database.yml.
5
- DESC
6
- task :setup_db, :roles => :db, :only => { :primary => true } do
7
- config = YAML::load(File.open("config/database.yml"))[rails_env]
8
- root_password = Capistrano::CLI.password_prompt(prompt="Enter a root password for MySQL: ")
9
-
10
- run "mysql -u root --password=#{root_password} -e \"CREATE DATABASE IF NOT EXISTS #{config["database"]} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; GRANT ALL PRIVILEGES ON #{config["database"]}.* TO '#{config["username"]}'@'localhost' IDENTIFIED BY '#{config["password"]}' WITH GRANT OPTION;\""
11
- end
12
-
13
- desc <<-DESC
14
- Install gems needed by application.
15
- DESC
16
- task :install_gems, :roles => :app do
17
- run "rake gems:install -f #{release_path}/Rakefile RAILS_ENV=#{rails_env}"
18
- end
19
-
20
- desc <<-DESC
21
- Load fixtures from db/fixtures to the database
22
- DESC
23
- task :load_fixtures, :roles => :db, :only => { :primary => true } do
24
- run "rake db:fixtures:load FIXTURES_PATH=db/fixtures RAILS_ENV=#{rails_env} -f #{release_path}/Rakefile"
25
- end
26
- end
27
- end
data/recipes/git.rb DELETED
@@ -1,14 +0,0 @@
1
- namespace :capone do
2
- namespace :git do
3
- desc <<-DESC
4
- Creates a remote repository and adds it as origin to the local repository.
5
- DESC
6
- task :remote do
7
- run "mkdir ~/git/#{application}.git && cd ~/git/#{application}.git && git --bare init"
8
-
9
- cmd = "git remote add origin #{repository} && git push origin master"
10
- puts cmd
11
- `#{cmd}`
12
- end
13
- end
14
- end
data/recipes/install.rb DELETED
@@ -1,105 +0,0 @@
1
- namespace :capone do
2
- namespace :install do
3
- desc <<-DESC
4
- Install all software for all servers.
5
- DESC
6
- task :default do
7
- update::software
8
- app
9
- web
10
- db
11
- end
12
-
13
- desc <<-DESC
14
- Install all software for app server.
15
- DESC
16
- task :app, :roles => :app do
17
- git
18
- ruby
19
- rubygems
20
- gems
21
- mongrel
22
- end
23
-
24
- desc <<-DESC
25
- Install all software for web server.
26
- DESC
27
- task :web, :roles => :web do
28
- nginx
29
- end
30
-
31
- desc <<-DESC
32
- Install all software for db server.
33
- DESC
34
- task :db, :roles => :db do
35
- mysql
36
- end
37
-
38
- desc <<-DESC
39
- Install Subversion.
40
- DESC
41
- task :subversion, :roles => :app do
42
- sudo "aptitude install -y subversion"
43
- end
44
-
45
- desc <<-DESC
46
- Install git.
47
- DESC
48
- task :git, :roles => :app do
49
- sudo "aptitude install -y git-core"
50
- end
51
-
52
- desc <<-DESC
53
- Install Ruby.
54
- DESC
55
- task :ruby, :roles => :app do
56
- sudo "aptitude install -y ruby ruby1.8-dev irb irb1.8 rdoc rdoc1.8 libopenssl-ruby1.8 libreadline-ruby1.8"
57
- end
58
-
59
- desc <<-DESC
60
- Install RubyGems.
61
- DESC
62
- task :rubygems, :roles => :app do
63
- sudo "aptitude install -y libgems-ruby1.8 rubygems"
64
- sudo "gem update --system --no-rdoc --no-ri"
65
- sudo "ln -fs /usr/bin/gem1.8 /usr/bin/gem"
66
- end
67
-
68
- desc <<-DESC
69
- Install common gems.
70
- DESC
71
- task :gems, :roles => :app do
72
- sudo "aptitude install -y build-essential libmysqlclient15-dev"
73
- sudo "gem install rake mysql --no-rdoc --no-ri"
74
- end
75
-
76
- desc <<-DESC
77
- Install Mongrel.
78
- DESC
79
- task :mongrel, :roles => :app do
80
- sudo "gem install mongrel mongrel_cluster --no-rdoc --no-ri"
81
-
82
- sudo "ln -sf /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d/mongrel_cluster"
83
- sudo "chmod +x /etc/init.d/mongrel_cluster"
84
- sudo "/usr/sbin/update-rc.d mongrel_cluster defaults"
85
- sudo "mkdir /etc/mongrel_cluster"
86
-
87
- sudo "mkdir -p -m 750 /var/www/apps"
88
- sudo "chown deploy:deploy /var/www/apps"
89
- end
90
-
91
- desc <<-DESC
92
- Install nginx.
93
- DESC
94
- task :nginx, :roles => :web do
95
- sudo "aptitude install -y nginx"
96
- end
97
-
98
- desc <<-DESC
99
- Install MySQL.
100
- DESC
101
- task :mysql, :roles => :db do
102
- sudo "aptitude install -y mysql-server"
103
- end
104
- end
105
- end
data/recipes/update.rb DELETED
@@ -1,26 +0,0 @@
1
- namespace :capone do
2
- namespace :update do
3
- desc <<-DESC
4
- Update all.
5
- DESC
6
- task :default do
7
- software
8
- gems
9
- end
10
-
11
- desc <<-DESC
12
- Update system software.
13
- DESC
14
- task :software do
15
- sudo "aptitude update"
16
- sudo "aptitude safe-upgrade -y"
17
- end
18
-
19
- desc <<-DESC
20
- Update installed gems.
21
- DESC
22
- task :gems do
23
- sudo "gem update --no-rdoc --no-ri"
24
- end
25
- end
26
- end
@@ -1,17 +0,0 @@
1
- desc "Init Capone"
2
- task :capone do
3
- puts "Generating configs..."
4
-
5
- files = ["Capfile", "config/deploy.rb"]
6
-
7
- for file in files do
8
- if File.exists? "#{RAILS_ROOT}/#{file}"
9
- puts "#{RAILS_ROOT}/#{file} already exists"
10
- else
11
- File.copy "#{RAILS_ROOT}/vendor/plugins/capone/templates/#{file}", "#{RAILS_ROOT}/#{file}"
12
- end
13
- end
14
- end
15
-
16
- namespace :capone do
17
- end
data/templates/Capfile DELETED
@@ -1,3 +0,0 @@
1
- load 'deploy' if respond_to?(:namespace) # cap2 differentiator
2
- Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
3
- load 'config/deploy'
@@ -1,29 +0,0 @@
1
- require "mongrel_cluster/recipes"
2
- require "capone"
3
-
4
- set :application, "set your application name here"
5
- set :repository, "someuser@somehost:git/#{application}.git"
6
- set :scm, :git
7
-
8
- set :user, "deploy"
9
- set :use_sudo, false
10
-
11
- set :deploy_to, "/var/www/apps/#{application}"
12
-
13
- set :mongrel_conf, "#{deploy_to}/current/config/mongrel_cluster.yml"
14
-
15
- set :rails_env, "production"
16
-
17
- role :app, "your app-server here"
18
- role :web, "your web-server here"
19
- role :db, "your db-server here", :primary => true
20
-
21
- after "deploy:setup", "capone:deploy:setup_db"
22
- after "deploy:update_code", "capone:deploy:install_gems"
23
- # after "deploy:cold", "capone:deploy:load_fixtures"
24
-
25
- before "deploy:start", "capone:nginx:enable_vhost"
26
- after "deploy:stop", "capone:nginx:disable_vhost"
27
- after "deploy:restart", "capone:nginx:reload_if_config_file_changed"
28
-
29
- # after "deploy:symlink", "capone:whenever:update_crontab"
@@ -1,18 +0,0 @@
1
- ---
2
- cwd: <%= @deploy_to %>/current
3
- <% if @mongrel_log_file %>
4
- log_file: <%= @mongrel_log_file %>
5
- <% end %>
6
- port: <%= @mongrel_port %>
7
- environment: <%= @mongrel_environment %>
8
- address: <%= @mongrel_address %>
9
- <% if @mongrel_pid_file %>
10
- pid_file: <%= @mongrel_pid_file %>
11
- <% end %>
12
- servers: <%= @mongrel_servers %>
13
- <% if @mongrel_user %>
14
- user: <%= @mongrel_user %>
15
- <% end %>
16
- <% if @mongrel_group %>
17
- group: <%= @mongrel_group %>
18
- <% end %>
@@ -1,57 +0,0 @@
1
- set daemon 60
2
- set logfile syslog facility log_daemon
3
- set mailserver localhost
4
- set mail-format { from: monit@localhost }
5
- set alert root@localhost
6
-
7
- check process sshd with pidfile /var/run/sshd.pid
8
- start program "/etc/init.d/ssh start"
9
- stop program "/etc/init.d/ssh stop"
10
- if failed port 22 protocol ssh then restart
11
- if 5 restarts within 5 cycles then timeout
12
-
13
- check process mysql with pidfile /var/run/mysqld/mysqld.pid
14
- group database
15
- start program = "/etc/init.d/mysql start"
16
- stop program = "/etc/init.d/mysql stop"
17
- if failed host 127.0.0.1 port 3306 then restart
18
- if 5 restarts within 5 cycles then timeout
19
-
20
- check process httpd with pidfile /usr/local/apache2/logs/httpd.pid
21
- group www-data
22
- start program "/usr/local/apache2/bin/apachectl start"
23
- stop program "/usr/local/apache2/bin/apachectl stop"
24
- if failed host localhost port 80 protocol http
25
- and request "/" then alert
26
- if cpu is greater than 60% for 2 cycles then alert
27
- if cpu > 80% for 5 cycles then restart
28
- if children > 250 then restart
29
- if loadavg(5min) greater than 10 for 8 cycles then alert
30
- if 3 restarts within 5 cycles then timeout
31
-
32
- check process mongrel_8000 with pidfile /var/rails/MYAPP/log/mongrel.8000.pid
33
- group root
34
- if failed host 127.0.0.1 port 8000 protocol http
35
- and request "/" then alert
36
- if cpu is greater than 60% for 2 cycles then alert
37
- if cpu > 80% for 5 cycles then restart
38
- if loadavg(5min) greater than 10 for 8 cycles then restart
39
- if 3 restarts within 5 cycles then timeout
40
-
41
- check process mongrel_8001 with pidfile /var/rails/MYAPP/log/mongrel.8001.pid
42
- group root
43
- if failed host 127.0.0.1 port 8001 protocol http
44
- and request "/" then alert
45
- if cpu is greater than 60% for 2 cycles then alert
46
- if cpu > 80% for 5 cycles then alert
47
- if loadavg(5min) greater than 10 for 8 cycles then alert
48
- if 3 restarts within 5 cycles then timeout
49
-
50
- check process postfix with pidfile /var/spool/postfix/pid/master.pid
51
- group mail
52
- start program = "/etc/init.d/postfix start"
53
- stop program = "/etc/init.d/postfix stop"
54
- if failed port 25 protocol smtp then restart
55
- if 5 restarts within 5 cycles then timeout
56
-
57
-
@@ -1,58 +0,0 @@
1
- # User and group to run as
2
- user www-data;
3
-
4
- # Number of nginx worker processes
5
- worker_processes 4;
6
-
7
- # Path to main error log file
8
- error_log /var/log/nginx/error.log;
9
-
10
- # Path to the pid-file
11
- pid /var/run/nginx.pid;
12
-
13
- events {
14
- # max_clients = worker_processes * worker_connections
15
- worker_connections 1024;
16
- }
17
-
18
- http {
19
- # Include mime types config file
20
- include /etc/nginx/mime.types;
21
-
22
- # Assigns the default MIME-type to be used for files where
23
- # the standard MIME map doesn't specify anything
24
- default_type application/octet-stream;
25
-
26
- # Define log format for access log
27
- log_format main '$remote_addr - $remote_user [$time_local] '
28
- '"$request" $status $body_bytes_sent "$http_referer" '
29
- '"$http_user_agent" "$http_x_forwarded_for"';
30
-
31
- # Assigns path, format and size of access log file
32
- access_log /var/log/nginx/access.log main;
33
-
34
- # Activate the usage of sendfile()
35
- sendfile on;
36
-
37
- # tcp_nodelay on;
38
- # tcp_nopush on;
39
-
40
- # Set the timeout for keep-alive connections with the client
41
- keepalive_timeout 75;
42
-
43
- # Enable gzip compression
44
- gzip on;
45
-
46
- # The compression level, between 1 and 9, where 1 is the least
47
- # compression (fastest) and 9 is the most (slowest).
48
- gzip_comp_level 1;
49
-
50
- # Enable compression for all proxy requests
51
- gzip_proxied any;
52
-
53
- # Enable compression for additional MIME-types
54
- gzip_types text/plain text/html text/css text/javascript application/x-javascript text/xml application/xml application/xml+rss;
55
-
56
- # Include all virtaul hosts configurations
57
- include /etc/nginx/sites-enabled/*;
58
- }