deprec 1.9.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +280 -0
- data/COPYING +19 -0
- data/LICENSE +339 -0
- data/README +152 -0
- data/THANKS +17 -0
- data/bin/depify +128 -0
- data/docs/EXAMPLE-installing_tracks.txt +41 -0
- data/docs/README.nagios +22 -0
- data/docs/README.rails +17 -0
- data/docs/config_gen_explained.txt +39 -0
- data/docs/{README.quickstart → deprec-1.x/deprec-1.x.quickstart} +4 -1
- data/docs/{building_edge_capistrano.txt → deprec-1.x/notes.txt} +6 -3
- data/docs/old/deprec_banner.gif +0 -0
- data/docs/windows_linux.txt +350 -0
- data/docs/xen/traffic_monitoring_with_vnstat.txt +95 -0
- data/docs/xen/xen-tools-notes.txt +31 -0
- data/docs/xen/xen_on_hardy.txt +39 -0
- data/lib/deprec.rb +8 -1
- data/lib/deprec/capistrano_extensions.rb +442 -0
- data/lib/deprec/recipes.rb +50 -233
- data/lib/deprec/recipes/aoe.rb +79 -0
- data/lib/deprec/recipes/app/mongrel.rb +213 -0
- data/lib/deprec/recipes/app/passenger.rb +197 -0
- data/lib/deprec/recipes/apt_mirror.rb +99 -0
- data/lib/deprec/recipes/ar_sendmail.rb +67 -0
- data/lib/deprec/recipes/canonical.rb +68 -0
- data/lib/deprec/recipes/db/mysql.rb +144 -0
- data/lib/deprec/recipes/db/postgresql.rb +104 -0
- data/lib/deprec/recipes/db/sqlite.rb +37 -0
- data/lib/deprec/recipes/ddclient.rb +51 -0
- data/lib/deprec/recipes/deprec.rb +199 -0
- data/lib/deprec/recipes/deprecated.rb +71 -0
- data/lib/deprec/recipes/example.rb +115 -0
- data/lib/deprec/recipes/git.rb +97 -0
- data/lib/deprec/recipes/gitosis.rb +48 -0
- data/lib/deprec/recipes/heartbeat.rb +138 -0
- data/lib/deprec/recipes/logrotate.rb +54 -0
- data/lib/deprec/recipes/lvm.rb +20 -0
- data/lib/deprec/recipes/memcache.rb +6 -2
- data/lib/deprec/recipes/monit.rb +143 -0
- data/lib/deprec/recipes/nagios.rb +305 -0
- data/lib/deprec/recipes/network.rb +93 -0
- data/lib/deprec/recipes/ntp.rb +103 -0
- data/lib/deprec/recipes/php.rb +58 -0
- data/lib/deprec/recipes/postfix.rb +115 -0
- data/lib/deprec/recipes/rails.rb +300 -55
- data/lib/deprec/recipes/ruby/mri.rb +55 -0
- data/lib/deprec/recipes/ruby/ree.rb +41 -0
- data/lib/deprec/recipes/sphinx.rb +86 -0
- data/lib/deprec/recipes/ssh.rb +85 -18
- data/lib/deprec/recipes/ssl.rb +55 -0
- data/lib/deprec/recipes/starling.rb +119 -0
- data/lib/deprec/recipes/svn.rb +163 -183
- data/lib/deprec/recipes/trac.rb +239 -62
- data/lib/deprec/recipes/ubuntu.rb +18 -100
- data/lib/deprec/recipes/users.rb +90 -0
- data/lib/deprec/recipes/utils.rb +58 -0
- data/lib/deprec/recipes/vnstat.rb +85 -0
- data/lib/deprec/recipes/web/apache.rb +119 -0
- data/lib/deprec/recipes/web/nginx.rb +172 -0
- data/lib/deprec/recipes/wordpress.rb +96 -0
- data/lib/deprec/recipes/wpmu.rb +103 -0
- data/lib/deprec/recipes/xen.rb +267 -0
- data/lib/deprec/recipes/xentools.rb +75 -0
- data/lib/deprec/templates/aoe/aoe-init +55 -0
- data/lib/deprec/templates/aoe/fence_aoemask +351 -0
- data/lib/deprec/templates/apache/namevirtualhosts.conf +5 -0
- data/lib/deprec/templates/apt/sources.list +18 -0
- data/lib/deprec/templates/apt_mirror/apt-mirror-cron +4 -0
- data/lib/deprec/templates/apt_mirror/mirror.list +33 -0
- data/lib/deprec/templates/ar_sendmail/logrotate.conf.erb +9 -0
- data/lib/deprec/templates/ar_sendmail/monit.conf.erb +5 -0
- data/lib/deprec/templates/ddclient/ddclient.conf.erb +11 -0
- data/lib/deprec/templates/ddclient/ddclient.erb +15 -0
- data/lib/deprec/templates/deprec/caprc.erb +14 -0
- data/lib/deprec/templates/heartbeat/authkeys.erb +2 -0
- data/lib/deprec/templates/heartbeat/ha.cf.erb +15 -0
- data/lib/deprec/templates/heartbeat/haresources.erb +1 -0
- data/lib/deprec/templates/logrotate/logrotate.conf.erb +32 -0
- data/lib/deprec/templates/mongrel/apache_vhost.erb +148 -0
- data/lib/deprec/templates/mongrel/logrotate.conf.erb +11 -0
- data/lib/deprec/{third_party/mongrel_cluster/resources/mongrel_cluster → templates/mongrel/mongrel_cluster-init-script} +19 -6
- data/lib/deprec/templates/mongrel/mongrel_cluster.yml.erb +10 -0
- data/lib/deprec/templates/mongrel/monit.conf.erb +17 -0
- data/lib/deprec/templates/mongrel/nginx_vhost.erb +41 -0
- data/lib/deprec/templates/monit/monit-init-script +104 -0
- data/lib/deprec/templates/monit/monitrc.erb +227 -0
- data/lib/deprec/templates/monit/nothing +0 -0
- data/lib/deprec/templates/mysql/create_databases.sql +20 -0
- data/lib/deprec/templates/mysql/database.yml.prod +6 -0
- data/lib/deprec/templates/mysql/database.yml.stage +6 -0
- data/lib/deprec/templates/mysql/my.cnf.erb +140 -0
- data/lib/deprec/templates/mysql/sphinx.conf.prod +542 -0
- data/lib/deprec/templates/mysql/sphinx.conf.stage +542 -0
- data/lib/deprec/templates/nagios/cgi.cfg.erb +321 -0
- data/lib/deprec/templates/nagios/check_linux_free_memory.pl +118 -0
- data/lib/deprec/templates/nagios/check_mongrel_cluster.rb +82 -0
- data/lib/deprec/templates/nagios/commands.cfg.erb +240 -0
- data/lib/deprec/templates/nagios/contacts.cfg.erb +57 -0
- data/lib/deprec/templates/nagios/hosts.cfg.erb +143 -0
- data/lib/deprec/templates/nagios/htpasswd.users +1 -0
- data/lib/deprec/templates/nagios/localhost.cfg.erb +157 -0
- data/lib/deprec/templates/nagios/nagios.cfg.erb +1274 -0
- data/lib/deprec/templates/nagios/nagios_apache_vhost.conf.erb +45 -0
- data/lib/deprec/templates/nagios/nrpe.cfg.erb +210 -0
- data/lib/deprec/templates/nagios/nrpe.xinetd.erb +16 -0
- data/lib/deprec/templates/nagios/resource.cfg.erb +34 -0
- data/lib/deprec/templates/nagios/services.cfg.erb +79 -0
- data/lib/deprec/templates/nagios/templates.cfg.erb +9 -0
- data/lib/deprec/templates/nagios/timeperiods.cfg.erb +94 -0
- data/lib/deprec/templates/network/hostname.erb +1 -0
- data/lib/deprec/templates/network/hosts.erb +2 -0
- data/lib/deprec/templates/network/interfaces.erb +18 -0
- data/lib/deprec/templates/network/resolv.conf.erb +6 -0
- data/lib/deprec/templates/nginx/logrotate.conf.erb +13 -0
- data/lib/deprec/templates/nginx/mime.types.erb +70 -0
- data/lib/deprec/templates/nginx/nginx-init-script +62 -0
- data/lib/deprec/templates/nginx/nginx.conf.erb +125 -0
- data/lib/deprec/templates/nginx/nginx.logrotate.d +12 -0
- data/lib/deprec/templates/nginx/nothing.conf +1 -0
- data/lib/deprec/templates/nginx/rails_nginx_vhost.conf.erb +41 -0
- data/lib/deprec/templates/ntp/ntp.conf.erb +42 -0
- data/lib/deprec/templates/passenger/apache_vhost.erb +21 -0
- data/lib/deprec/templates/passenger/passenger.conf.erb +21 -0
- data/lib/deprec/templates/passenger/passenger.load.erb +3 -0
- data/lib/deprec/templates/postfix/aliases.erb +3 -0
- data/lib/deprec/templates/postfix/dynamicmaps.cf.erb +8 -0
- data/lib/deprec/templates/{postfix_main.conf → postfix/main.cf.erb} +6 -8
- data/lib/deprec/templates/postfix/master.cf.erb +77 -0
- data/lib/deprec/templates/sphinx/monit.conf.erb +5 -0
- data/lib/deprec/templates/ssh/ssh_config.erb +50 -0
- data/lib/deprec/templates/ssh/sshd_config.erb +78 -0
- data/lib/deprec/templates/ssl/make-ssl-cert +138 -0
- data/lib/deprec/templates/ssl/ssl-cert-snakeoil.key +15 -0
- data/lib/deprec/templates/ssl/ssl-cert-snakeoil.pem +19 -0
- data/lib/deprec/templates/starling/monit.conf.erb +14 -0
- data/lib/deprec/templates/starling/starling-init-script.erb +71 -0
- data/lib/deprec/templates/subversion/svn.apache.vhost.erb +43 -0
- data/lib/deprec/templates/trac/apache_vhost.conf.erb +24 -0
- data/lib/deprec/templates/trac/nginx_vhost.conf.erb +26 -0
- data/lib/deprec/templates/trac/trac.ini.erb +169 -0
- data/lib/deprec/templates/trac/trac_deprec.png +0 -0
- data/lib/deprec/templates/trac/tracd-init.erb +43 -0
- data/lib/deprec/templates/trac/users.htdigest.erb +0 -0
- data/lib/deprec/templates/vnstat/config.php +57 -0
- data/lib/deprec/templates/wordpress/apache2_wordpress_vhost.conf.erb +31 -0
- data/lib/deprec/templates/wordpress/wp-config.php.erb +31 -0
- data/lib/deprec/templates/wpmu/apache_vhost.conf.erb +13 -0
- data/lib/deprec/templates/xen/network-bridge-wrapper +3 -0
- data/lib/deprec/templates/xen/xend-config.sxp.erb +195 -0
- data/lib/deprec/templates/xen/xend-init.erb +57 -0
- data/lib/deprec/templates/xen/xendomains.erb +137 -0
- data/lib/deprec/templates/xentools/15-disable-hwclock +40 -0
- data/lib/deprec/templates/xentools/40-setup-networking +145 -0
- data/lib/deprec/templates/xentools/xen-tools.conf.erb +276 -0
- data/lib/deprec/templates/xentools/xm.tmpl.erb +138 -0
- data/lib/deprec_cmd_completion.sh +26 -0
- data/lib/vmbuilder_plugins/all.rb +20 -0
- data/lib/vmbuilder_plugins/apt.rb +93 -0
- data/lib/vmbuilder_plugins/emerge.rb +76 -0
- data/lib/{deprec/third_party/vmbuilder/plugins → vmbuilder_plugins}/gem.rb +10 -17
- data/lib/{deprec/third_party/vmbuilder/plugins → vmbuilder_plugins}/std.rb +69 -19
- metadata +204 -55
- data/bin/deprec +0 -35
- data/docs/README.slicehost +0 -14
- data/docs/README.svn_trac +0 -19
- data/lib/deprec/capistrano_extensions/actor_extensions.rb +0 -89
- data/lib/deprec/capistrano_extensions/cli_extensions.rb +0 -38
- data/lib/deprec/capistrano_extensions/deprec_extensions.rb +0 -137
- data/lib/deprec/generators/deprec/USAGE +0 -11
- data/lib/deprec/generators/deprec/deprec_generator.rb +0 -24
- data/lib/deprec/generators/deprec/templates/deploy.rb +0 -90
- data/lib/deprec/generators/loader.rb +0 -20
- data/lib/deprec/recipes/apache.rb +0 -91
- data/lib/deprec/recipes/cache_svn.rb +0 -74
- data/lib/deprec/recipes/vmware.rb +0 -114
- data/lib/deprec/templates/trac.ini.erb +0 -106
- data/lib/deprec/third_party/THIRD_PARTY_README +0 -12
- data/lib/deprec/third_party/mongrel_cluster/LICENSE +0 -506
- data/lib/deprec/third_party/mongrel_cluster/recipes.rb +0 -96
- data/lib/deprec/third_party/railsmachine/LICENSE +0 -506
- data/lib/deprec/third_party/railsmachine/recipes/apache.rb +0 -92
- data/lib/deprec/third_party/railsmachine/recipes/mysql.rb +0 -73
- data/lib/deprec/third_party/railsmachine/recipes/templates/httpd-ssl.conf +0 -80
- data/lib/deprec/third_party/railsmachine/recipes/templates/httpd.conf +0 -57
- data/lib/deprec/third_party/vmbuilder/plugins.rb +0 -8
- data/lib/deprec/third_party/vmbuilder/plugins/apt.rb +0 -144
- data/resources/capistrano_include_dotfiles.patch +0 -17
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Saulius Grigaitis. All rights reserved.
|
|
2
|
+
# Backported from centostrano to deprec by Eric Harris-Braun.
|
|
3
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
4
|
+
namespace :deprec do
|
|
5
|
+
namespace :postgresql do
|
|
6
|
+
|
|
7
|
+
# Installation
|
|
8
|
+
desc "Install postgresql"
|
|
9
|
+
task :install, :roles => :db do
|
|
10
|
+
install_deps
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Install dependencies for PostgreSQL
|
|
14
|
+
task :install_deps, :roles => :db do
|
|
15
|
+
apt.install( {:base => %w(postgresql postgresql-client libpq-dev)}, :stable )
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Configuration
|
|
19
|
+
|
|
20
|
+
SYSTEM_CONFIG_FILES[:postgresql] = [
|
|
21
|
+
|
|
22
|
+
{:template => "pg_hba.conf.erb",
|
|
23
|
+
:path => '/var/lib/pgsql/data/pg_hba.conf',
|
|
24
|
+
:mode => 0644,
|
|
25
|
+
:owner => 'root:root'}
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
desc "Generate configuration file(s) for postgresql from template(s)"
|
|
29
|
+
task :config_gen do
|
|
30
|
+
SYSTEM_CONFIG_FILES[:postgresql].each do |file|
|
|
31
|
+
deprec2.render_template(:postgresql, file)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
desc "Push postgresql config files to server"
|
|
36
|
+
task :config, :roles => :db do
|
|
37
|
+
deprec2.push_configs(:postgresql, SYSTEM_CONFIG_FILES[:postgresql])
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
task :activate, :roles => :db do
|
|
41
|
+
send(run_method, "update-rc.d postgresql-8.3 defaults")
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
task :deactivate, :roles => :db do
|
|
45
|
+
send(run_method, "update-rc.d -f postgresql-8.3 remove")
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Control
|
|
49
|
+
|
|
50
|
+
desc "Start PostgreSQL"
|
|
51
|
+
task :start, :roles => :db do
|
|
52
|
+
send(run_method, "/etc/init.d/postgresql-8.3 start")
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
desc "Stop PostgreSQL"
|
|
56
|
+
task :stop, :roles => :db do
|
|
57
|
+
send(run_method, "/etc/init.d/postgresql-8.3 stop")
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
desc "Restart PostgreSQL"
|
|
61
|
+
task :restart, :roles => :db do
|
|
62
|
+
send(run_method, "/etc/init.d/postgresql-8.3 restart")
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
desc "Reload PostgreSQL"
|
|
66
|
+
task :reload, :roles => :db do
|
|
67
|
+
send(run_method, "/etc/init.d/postgresql-8.3 reload")
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
task :backup, :roles => :db do
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
task :restore, :roles => :db do
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
desc "Create a PostgreSQL user"
|
|
77
|
+
task :create_user, :roles => :db do
|
|
78
|
+
cmd = "su - postgres -c \'createuser -P -D -A -E #{db_user}\'"
|
|
79
|
+
sudo cmd do |channel, stream, data|
|
|
80
|
+
if data =~ /^Enter password for new/
|
|
81
|
+
channel.send_data "#{db_password}\n"
|
|
82
|
+
end
|
|
83
|
+
if data =~ /^Enter it again:/
|
|
84
|
+
channel.send_data "#{db_password}\n"
|
|
85
|
+
end
|
|
86
|
+
if data =~ /^Shall the new role be allowed to create more new roles?/
|
|
87
|
+
channel.send_data "n\n"
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
desc "Create a PostgreSQL Database"
|
|
93
|
+
task :create_database, :roles => :db do
|
|
94
|
+
sudo "su - postgres -c \'createdb -O #{db_user} #{db_name}\'"
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
desc "Grant user access to Database"
|
|
98
|
+
task :grant_user_access_to_database, :roles => :db do
|
|
99
|
+
# sudo "what's the command for this using #{db_user} #{db_name}\'"
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Copyright 2006-2009 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
namespace :deprec do
|
|
4
|
+
namespace :sqlite do
|
|
5
|
+
|
|
6
|
+
desc "Install sqlite"
|
|
7
|
+
task :install, :roles => :db do
|
|
8
|
+
install_deps
|
|
9
|
+
gem2.install "sqlite3-ruby"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# install dependencies for nginx
|
|
13
|
+
task :install_deps, :roles => :db do
|
|
14
|
+
apt.install( {:base => %w(sqlite3 libsqlite3-ruby libsqlite3-dev)}, :stable )
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
desc "Create a PostgreSQL user"
|
|
19
|
+
task :create_user do
|
|
20
|
+
# Not needed for sqlite
|
|
21
|
+
# We need these stubs for deprec:rails:setup_database
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
desc "Create a PostgreSQL Database"
|
|
25
|
+
task :create_database do
|
|
26
|
+
# Not needed for sqlite
|
|
27
|
+
# We need these stubs for deprec:rails:setup_database
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
desc "Grant user access to Database"
|
|
31
|
+
task :grant_user_access_to_database do
|
|
32
|
+
# Not needed for sqlite
|
|
33
|
+
# We need these stubs for deprec:rails:setup_database
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
namespace :deprec do
|
|
4
|
+
namespace :ddclient do
|
|
5
|
+
|
|
6
|
+
set(:ddclient_user) { Capistrano::CLI.ui.ask "Enter ddclient username" }
|
|
7
|
+
set(:ddclient_pass) { Capistrano::CLI.ui.ask "Enter ddclient password" }
|
|
8
|
+
set(:ddclient_domains) { Capistrano::CLI.ui.ask "Enter ddclient domain" }
|
|
9
|
+
set(:ddclient_interface) {
|
|
10
|
+
Capistrano::CLI.ui.ask "Enter ddclient interface" do |q|
|
|
11
|
+
q.default = 'eth0'
|
|
12
|
+
end
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
desc "Install ddclient"
|
|
16
|
+
task :install do
|
|
17
|
+
install_deps
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# install dependencies for ddclient
|
|
21
|
+
task :install_deps do
|
|
22
|
+
apt.install( {:base => %w(ddclient)}, :stable )
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
SYSTEM_CONFIG_FILES[:ddclient] = [
|
|
26
|
+
{ :template => "ddclient.conf.erb",
|
|
27
|
+
:path => '/etc/ddclient.conf',
|
|
28
|
+
:mode => 0600,
|
|
29
|
+
:owner => 'root:root'},
|
|
30
|
+
|
|
31
|
+
{ :template => "ddclient.erb",
|
|
32
|
+
:path => '/etc/default/ddclient',
|
|
33
|
+
:mode => 0600,
|
|
34
|
+
:owner => 'root:root'}
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
desc "Update system networking configuration"
|
|
38
|
+
task :config do
|
|
39
|
+
SYSTEM_CONFIG_FILES[:ddclient].each do |file|
|
|
40
|
+
deprec2.render_template(:ddclient, file.merge(:remote=>true))
|
|
41
|
+
end
|
|
42
|
+
start
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
task :start do
|
|
46
|
+
sudo '/etc/init.d/ddclient start'
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
|
|
4
|
+
# Set the value if not already set
|
|
5
|
+
# This method is accessible to all recipe files
|
|
6
|
+
def self.default(name, *args, &block)
|
|
7
|
+
unless exists?(name)
|
|
8
|
+
set(name, *args, &block)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Deprec checks here for local versions of config templates before it's own
|
|
13
|
+
set :local_template_dir, File.join('config','templates')
|
|
14
|
+
|
|
15
|
+
# The following two Constants contain details of the configuration
|
|
16
|
+
# files used by each service. They're used when generating config
|
|
17
|
+
# files from templates and when configs files are pushed out to servers.
|
|
18
|
+
#
|
|
19
|
+
# They are populated by the recipe file for each service
|
|
20
|
+
#
|
|
21
|
+
SYSTEM_CONFIG_FILES = {} # e.g. httpd.conf
|
|
22
|
+
PROJECT_CONFIG_FILES = {} # e.g. projectname-httpd-vhost.conf
|
|
23
|
+
|
|
24
|
+
# For each service, the details of the file to download and options
|
|
25
|
+
# to configure, build and install the service
|
|
26
|
+
SRC_PACKAGES = {} unless defined?(SRC_PACKAGES)
|
|
27
|
+
|
|
28
|
+
# Server options
|
|
29
|
+
CHOICES_RUBY_VM = [:mri, :ree]
|
|
30
|
+
CHOICES_WEBSERVER = [:nginx, :apache, :none]
|
|
31
|
+
CHOICES_APPSERVER = [:mongrel, :webrick, :passenger, :none]
|
|
32
|
+
CHOICES_DATABASE = [:mysql, :postgresql, :sqlite, :none]
|
|
33
|
+
|
|
34
|
+
# Service defaults
|
|
35
|
+
#
|
|
36
|
+
# The defaults below are legacy values to support older deployments.
|
|
37
|
+
# Newly generated deploy.rb files have use apache, passenger and ree
|
|
38
|
+
default :ruby_vm_type, :mri
|
|
39
|
+
default :web_server_type, :nginx
|
|
40
|
+
default :app_server_type, :mongrel
|
|
41
|
+
default :db_server_type, :mysql
|
|
42
|
+
#
|
|
43
|
+
# default(:web_server_type) do
|
|
44
|
+
# Capistrano::CLI.ui.choose do |menu|
|
|
45
|
+
# CHOICES_WEBSERVER.each {|c| menu.choice(c)}
|
|
46
|
+
# menu.header = "select webserver type"
|
|
47
|
+
# end
|
|
48
|
+
# end
|
|
49
|
+
#
|
|
50
|
+
# default(:app_server_type) do
|
|
51
|
+
# Capistrano::CLI.ui.choose do |menu|
|
|
52
|
+
# CHOICES_APPSERVER.each {|c| menu.choice(c)}
|
|
53
|
+
# menu.header = "select application server type"
|
|
54
|
+
# end
|
|
55
|
+
# end
|
|
56
|
+
#
|
|
57
|
+
# default(:db_server_type) do
|
|
58
|
+
# Capistrano::CLI.ui.choose do |menu|
|
|
59
|
+
# CHOICES_DATABASE.each {|c| menu.choice(c)}
|
|
60
|
+
# menu.header = "select database server type"
|
|
61
|
+
# end
|
|
62
|
+
# end
|
|
63
|
+
|
|
64
|
+
default(:application) do
|
|
65
|
+
Capistrano::CLI.ui.ask "enter name of project(no spaces)" do |q|
|
|
66
|
+
q.validate = /^[0-9a-z_]*$/
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
default(:domain) do
|
|
71
|
+
Capistrano::CLI.ui.ask "enter domain name for project" do |q|
|
|
72
|
+
q.validate = /^[0-9a-z_\.]*$/
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
default(:repository) do
|
|
77
|
+
Capistrano::CLI.ui.ask "enter repository URL for project" do |q|
|
|
78
|
+
# q.validate = //
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# some tasks run commands requiring special user privileges on remote servers
|
|
83
|
+
# these tasks will run the commands with:
|
|
84
|
+
# :invoke_command "command", :via => run_method
|
|
85
|
+
# override this value if sudo is not an option
|
|
86
|
+
# in that case, your use will need the correct privileges
|
|
87
|
+
default :run_method, :sudo
|
|
88
|
+
|
|
89
|
+
default(:backup_dir) { '/var/backups'}
|
|
90
|
+
|
|
91
|
+
# XXX rails deploy stuff
|
|
92
|
+
set :apps_root, File.join( %w(/ opt apps) ) # parent dir for apps
|
|
93
|
+
default(:deploy_to) { File.join(apps_root, application) } # dir for current app
|
|
94
|
+
default(:current_path) { File.join(deploy_to, "current") }
|
|
95
|
+
default(:shared_path) { File.join(deploy_to, "shared") }
|
|
96
|
+
|
|
97
|
+
# XXX more rails deploy stuff?
|
|
98
|
+
|
|
99
|
+
default :user, ENV['USER'] # user who is deploying
|
|
100
|
+
default :group, 'deploy' # deployment group
|
|
101
|
+
default(:group_src) { group } # group ownership for src dir
|
|
102
|
+
default :src_dir, '/usr/local/src' # 3rd party src on servers lives here
|
|
103
|
+
default(:web_server_aliases) { domain.match(/^www/) ? [] : ["www.#{domain}"] }
|
|
104
|
+
|
|
105
|
+
# XXX for some reason this is causing "before deprec:rails:install" to be executed twice
|
|
106
|
+
on :load, 'deprec:connect_canonical_tasks'
|
|
107
|
+
|
|
108
|
+
namespace :deprec do
|
|
109
|
+
|
|
110
|
+
task :connect_canonical_tasks do
|
|
111
|
+
# link application specific recipes into canonical task names
|
|
112
|
+
# e.g. deprec:web:restart => deprec:nginx:restart
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
namespaces_to_connect = { :web => :web_server_type,
|
|
116
|
+
:app => :app_server_type,
|
|
117
|
+
:db => :db_server_type,
|
|
118
|
+
:ruby => :ruby_vm_type
|
|
119
|
+
}
|
|
120
|
+
metaclass = class << self; self; end # XXX unnecessary?
|
|
121
|
+
namespaces_to_connect.each do |server, choice|
|
|
122
|
+
server_type = send(choice).to_sym
|
|
123
|
+
if server_type != :none
|
|
124
|
+
metaclass.send(:define_method, server) { namespaces[server] } # XXX unnecessary?
|
|
125
|
+
namespaces[server] = deprec.send(server_type)
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
task :dump do
|
|
131
|
+
require 'yaml'
|
|
132
|
+
y variables
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
task :setup_src_dir do
|
|
136
|
+
deprec2.groupadd(group_src)
|
|
137
|
+
deprec2.add_user_to_group(user, group_src)
|
|
138
|
+
deprec2.create_src_dir
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# Download all packages used by deprec to your local host.
|
|
142
|
+
# You can then push them to /usr/local/src on target hosts
|
|
143
|
+
# to save time and bandwidth rather than repeatedly downloading
|
|
144
|
+
# from the distribution sites.
|
|
145
|
+
task :update_src do
|
|
146
|
+
SRC_PACKAGES.each{|key, src_package|
|
|
147
|
+
current_dir = Dir.pwd
|
|
148
|
+
system "cd src/ && test -f #{src_package[:filename]} || wget --quiet --timestamping #{src_package[:url]}"
|
|
149
|
+
system "cd #{current_dir}"
|
|
150
|
+
}
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# todo
|
|
154
|
+
#
|
|
155
|
+
# Copy files from src/ to /usr/local/src/ on remote hosts
|
|
156
|
+
task :push_src do
|
|
157
|
+
SRC_PACKAGES.each do |key, src_package|
|
|
158
|
+
deprec2.set_package_defaults(src_package)
|
|
159
|
+
file = File.join('src', src_package[:filename])
|
|
160
|
+
if File.exists?(file)
|
|
161
|
+
std.su_put(File.read(file), "#{src_dir}/#{src_package[:filename]}", '/tmp/')
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
task :list_src do
|
|
167
|
+
# XXX ugly line - look away
|
|
168
|
+
max_key_size = SRC_PACKAGES.keys.max{|a,b| a.to_s.size <=> b.to_s.size}.to_s.size
|
|
169
|
+
SRC_PACKAGES.each{|key, src_package|
|
|
170
|
+
deprec2.set_package_defaults(src_package)
|
|
171
|
+
puts "#{key}#{' '*(max_key_size+1-key.to_s.size)}: #{src_package[:url]}"
|
|
172
|
+
}
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
task :find_src do
|
|
176
|
+
# XXX ugly line - look away
|
|
177
|
+
max_key_size = SRC_PACKAGES.keys.max{|a,b| a.to_s.size <=> b.to_s.size}.to_s.size
|
|
178
|
+
SRC_PACKAGES.each{|key, src_package|
|
|
179
|
+
deprec2.set_package_defaults(src_package)
|
|
180
|
+
puts "#{key}#{' '*(max_key_size+1-key.to_s.size)}: #{src_package[:url]}"
|
|
181
|
+
puts `find . -name #{src_package[:filename]}`
|
|
182
|
+
puts
|
|
183
|
+
}
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
task :recover_src do
|
|
187
|
+
# XXX ugly line - look away
|
|
188
|
+
max_key_size = SRC_PACKAGES.keys.max{|a,b| a.to_s.size <=> b.to_s.size}.to_s.size
|
|
189
|
+
SRC_PACKAGES.each{|key, src_package|
|
|
190
|
+
puts "#{key}#{' '*(max_key_size+1-key.to_s.size)}: #{src_package[:url]}"
|
|
191
|
+
file = `find . -name #{src_package[:filename]}`.split[0]
|
|
192
|
+
`cp #{file} src/` if file
|
|
193
|
+
puts
|
|
194
|
+
}
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Copyright 2006-2008 by Mike Bailey. All rights reserved.
|
|
2
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
|
3
|
+
|
|
4
|
+
# deprecated tasks from deprec1
|
|
5
|
+
# we're now using namespaces and some different naming conventions
|
|
6
|
+
|
|
7
|
+
# XXX use deprecated function to generate these dynamically
|
|
8
|
+
|
|
9
|
+
deprec2_isnt_backwards_compatible = <<-EOF
|
|
10
|
+
|
|
11
|
+
You've installed deprec2 but seem to be using a deprec1 command.
|
|
12
|
+
|
|
13
|
+
You have two options:
|
|
14
|
+
|
|
15
|
+
- install deprec-1.9.x and continue using deprec1
|
|
16
|
+
|
|
17
|
+
Instructions are available at http://www.deprec.org/
|
|
18
|
+
|
|
19
|
+
- use deprec2
|
|
20
|
+
|
|
21
|
+
EOF
|
|
22
|
+
|
|
23
|
+
cap2_warning = <<-EOF
|
|
24
|
+
|
|
25
|
+
You're using Capistrano 2 but using a deprecated cap1 command.
|
|
26
|
+
|
|
27
|
+
EOF
|
|
28
|
+
|
|
29
|
+
task :setup_admin_account do
|
|
30
|
+
puts deprec2_isnt_backwards_compatible
|
|
31
|
+
puts " Replace 'cap setup_admin_account' with 'cap deprec:users:add'"
|
|
32
|
+
puts
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
task :change_root_password do
|
|
36
|
+
puts deprec2_isnt_backwards_compatible
|
|
37
|
+
puts " Replace 'cap change_root_password' with 'cap deprec:users:passwd'"
|
|
38
|
+
puts
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
task :setup_ssh_keys do
|
|
42
|
+
puts deprec2_isnt_backwards_compatible
|
|
43
|
+
puts " Replace 'cap setup_ssh_keys' with 'cap deprec:ssh:setup_keys'"
|
|
44
|
+
puts
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
task :install_rails_stack do
|
|
48
|
+
puts deprec2_isnt_backwards_compatible
|
|
49
|
+
puts " Replace 'cap install_rails_stack' with 'cap deprec:rails:install_rails_stack'"
|
|
50
|
+
puts
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
task :setup do
|
|
54
|
+
puts deprec2_isnt_backwards_compatible
|
|
55
|
+
puts " Replace 'cap setup' with 'cap deploy:setup'"
|
|
56
|
+
puts
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
task :restart_apache do
|
|
60
|
+
puts deprec2_isnt_backwards_compatible
|
|
61
|
+
puts " Replace 'cap restart_apache' with 'cap deprec:apache:restart'"
|
|
62
|
+
puts
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
task :show_tasks do
|
|
66
|
+
puts deprec2_isnt_backwards_compatible
|
|
67
|
+
puts " Replace 'cap show-tasks' with 'cap -T'"
|
|
68
|
+
puts
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
end
|