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.
Files changed (188) hide show
  1. data/CHANGELOG +280 -0
  2. data/COPYING +19 -0
  3. data/LICENSE +339 -0
  4. data/README +152 -0
  5. data/THANKS +17 -0
  6. data/bin/depify +128 -0
  7. data/docs/EXAMPLE-installing_tracks.txt +41 -0
  8. data/docs/README.nagios +22 -0
  9. data/docs/README.rails +17 -0
  10. data/docs/config_gen_explained.txt +39 -0
  11. data/docs/{README.quickstart → deprec-1.x/deprec-1.x.quickstart} +4 -1
  12. data/docs/{building_edge_capistrano.txt → deprec-1.x/notes.txt} +6 -3
  13. data/docs/old/deprec_banner.gif +0 -0
  14. data/docs/windows_linux.txt +350 -0
  15. data/docs/xen/traffic_monitoring_with_vnstat.txt +95 -0
  16. data/docs/xen/xen-tools-notes.txt +31 -0
  17. data/docs/xen/xen_on_hardy.txt +39 -0
  18. data/lib/deprec.rb +8 -1
  19. data/lib/deprec/capistrano_extensions.rb +442 -0
  20. data/lib/deprec/recipes.rb +50 -233
  21. data/lib/deprec/recipes/aoe.rb +79 -0
  22. data/lib/deprec/recipes/app/mongrel.rb +213 -0
  23. data/lib/deprec/recipes/app/passenger.rb +197 -0
  24. data/lib/deprec/recipes/apt_mirror.rb +99 -0
  25. data/lib/deprec/recipes/ar_sendmail.rb +67 -0
  26. data/lib/deprec/recipes/canonical.rb +68 -0
  27. data/lib/deprec/recipes/db/mysql.rb +144 -0
  28. data/lib/deprec/recipes/db/postgresql.rb +104 -0
  29. data/lib/deprec/recipes/db/sqlite.rb +37 -0
  30. data/lib/deprec/recipes/ddclient.rb +51 -0
  31. data/lib/deprec/recipes/deprec.rb +199 -0
  32. data/lib/deprec/recipes/deprecated.rb +71 -0
  33. data/lib/deprec/recipes/example.rb +115 -0
  34. data/lib/deprec/recipes/git.rb +97 -0
  35. data/lib/deprec/recipes/gitosis.rb +48 -0
  36. data/lib/deprec/recipes/heartbeat.rb +138 -0
  37. data/lib/deprec/recipes/logrotate.rb +54 -0
  38. data/lib/deprec/recipes/lvm.rb +20 -0
  39. data/lib/deprec/recipes/memcache.rb +6 -2
  40. data/lib/deprec/recipes/monit.rb +143 -0
  41. data/lib/deprec/recipes/nagios.rb +305 -0
  42. data/lib/deprec/recipes/network.rb +93 -0
  43. data/lib/deprec/recipes/ntp.rb +103 -0
  44. data/lib/deprec/recipes/php.rb +58 -0
  45. data/lib/deprec/recipes/postfix.rb +115 -0
  46. data/lib/deprec/recipes/rails.rb +300 -55
  47. data/lib/deprec/recipes/ruby/mri.rb +55 -0
  48. data/lib/deprec/recipes/ruby/ree.rb +41 -0
  49. data/lib/deprec/recipes/sphinx.rb +86 -0
  50. data/lib/deprec/recipes/ssh.rb +85 -18
  51. data/lib/deprec/recipes/ssl.rb +55 -0
  52. data/lib/deprec/recipes/starling.rb +119 -0
  53. data/lib/deprec/recipes/svn.rb +163 -183
  54. data/lib/deprec/recipes/trac.rb +239 -62
  55. data/lib/deprec/recipes/ubuntu.rb +18 -100
  56. data/lib/deprec/recipes/users.rb +90 -0
  57. data/lib/deprec/recipes/utils.rb +58 -0
  58. data/lib/deprec/recipes/vnstat.rb +85 -0
  59. data/lib/deprec/recipes/web/apache.rb +119 -0
  60. data/lib/deprec/recipes/web/nginx.rb +172 -0
  61. data/lib/deprec/recipes/wordpress.rb +96 -0
  62. data/lib/deprec/recipes/wpmu.rb +103 -0
  63. data/lib/deprec/recipes/xen.rb +267 -0
  64. data/lib/deprec/recipes/xentools.rb +75 -0
  65. data/lib/deprec/templates/aoe/aoe-init +55 -0
  66. data/lib/deprec/templates/aoe/fence_aoemask +351 -0
  67. data/lib/deprec/templates/apache/namevirtualhosts.conf +5 -0
  68. data/lib/deprec/templates/apt/sources.list +18 -0
  69. data/lib/deprec/templates/apt_mirror/apt-mirror-cron +4 -0
  70. data/lib/deprec/templates/apt_mirror/mirror.list +33 -0
  71. data/lib/deprec/templates/ar_sendmail/logrotate.conf.erb +9 -0
  72. data/lib/deprec/templates/ar_sendmail/monit.conf.erb +5 -0
  73. data/lib/deprec/templates/ddclient/ddclient.conf.erb +11 -0
  74. data/lib/deprec/templates/ddclient/ddclient.erb +15 -0
  75. data/lib/deprec/templates/deprec/caprc.erb +14 -0
  76. data/lib/deprec/templates/heartbeat/authkeys.erb +2 -0
  77. data/lib/deprec/templates/heartbeat/ha.cf.erb +15 -0
  78. data/lib/deprec/templates/heartbeat/haresources.erb +1 -0
  79. data/lib/deprec/templates/logrotate/logrotate.conf.erb +32 -0
  80. data/lib/deprec/templates/mongrel/apache_vhost.erb +148 -0
  81. data/lib/deprec/templates/mongrel/logrotate.conf.erb +11 -0
  82. data/lib/deprec/{third_party/mongrel_cluster/resources/mongrel_cluster → templates/mongrel/mongrel_cluster-init-script} +19 -6
  83. data/lib/deprec/templates/mongrel/mongrel_cluster.yml.erb +10 -0
  84. data/lib/deprec/templates/mongrel/monit.conf.erb +17 -0
  85. data/lib/deprec/templates/mongrel/nginx_vhost.erb +41 -0
  86. data/lib/deprec/templates/monit/monit-init-script +104 -0
  87. data/lib/deprec/templates/monit/monitrc.erb +227 -0
  88. data/lib/deprec/templates/monit/nothing +0 -0
  89. data/lib/deprec/templates/mysql/create_databases.sql +20 -0
  90. data/lib/deprec/templates/mysql/database.yml.prod +6 -0
  91. data/lib/deprec/templates/mysql/database.yml.stage +6 -0
  92. data/lib/deprec/templates/mysql/my.cnf.erb +140 -0
  93. data/lib/deprec/templates/mysql/sphinx.conf.prod +542 -0
  94. data/lib/deprec/templates/mysql/sphinx.conf.stage +542 -0
  95. data/lib/deprec/templates/nagios/cgi.cfg.erb +321 -0
  96. data/lib/deprec/templates/nagios/check_linux_free_memory.pl +118 -0
  97. data/lib/deprec/templates/nagios/check_mongrel_cluster.rb +82 -0
  98. data/lib/deprec/templates/nagios/commands.cfg.erb +240 -0
  99. data/lib/deprec/templates/nagios/contacts.cfg.erb +57 -0
  100. data/lib/deprec/templates/nagios/hosts.cfg.erb +143 -0
  101. data/lib/deprec/templates/nagios/htpasswd.users +1 -0
  102. data/lib/deprec/templates/nagios/localhost.cfg.erb +157 -0
  103. data/lib/deprec/templates/nagios/nagios.cfg.erb +1274 -0
  104. data/lib/deprec/templates/nagios/nagios_apache_vhost.conf.erb +45 -0
  105. data/lib/deprec/templates/nagios/nrpe.cfg.erb +210 -0
  106. data/lib/deprec/templates/nagios/nrpe.xinetd.erb +16 -0
  107. data/lib/deprec/templates/nagios/resource.cfg.erb +34 -0
  108. data/lib/deprec/templates/nagios/services.cfg.erb +79 -0
  109. data/lib/deprec/templates/nagios/templates.cfg.erb +9 -0
  110. data/lib/deprec/templates/nagios/timeperiods.cfg.erb +94 -0
  111. data/lib/deprec/templates/network/hostname.erb +1 -0
  112. data/lib/deprec/templates/network/hosts.erb +2 -0
  113. data/lib/deprec/templates/network/interfaces.erb +18 -0
  114. data/lib/deprec/templates/network/resolv.conf.erb +6 -0
  115. data/lib/deprec/templates/nginx/logrotate.conf.erb +13 -0
  116. data/lib/deprec/templates/nginx/mime.types.erb +70 -0
  117. data/lib/deprec/templates/nginx/nginx-init-script +62 -0
  118. data/lib/deprec/templates/nginx/nginx.conf.erb +125 -0
  119. data/lib/deprec/templates/nginx/nginx.logrotate.d +12 -0
  120. data/lib/deprec/templates/nginx/nothing.conf +1 -0
  121. data/lib/deprec/templates/nginx/rails_nginx_vhost.conf.erb +41 -0
  122. data/lib/deprec/templates/ntp/ntp.conf.erb +42 -0
  123. data/lib/deprec/templates/passenger/apache_vhost.erb +21 -0
  124. data/lib/deprec/templates/passenger/passenger.conf.erb +21 -0
  125. data/lib/deprec/templates/passenger/passenger.load.erb +3 -0
  126. data/lib/deprec/templates/postfix/aliases.erb +3 -0
  127. data/lib/deprec/templates/postfix/dynamicmaps.cf.erb +8 -0
  128. data/lib/deprec/templates/{postfix_main.conf → postfix/main.cf.erb} +6 -8
  129. data/lib/deprec/templates/postfix/master.cf.erb +77 -0
  130. data/lib/deprec/templates/sphinx/monit.conf.erb +5 -0
  131. data/lib/deprec/templates/ssh/ssh_config.erb +50 -0
  132. data/lib/deprec/templates/ssh/sshd_config.erb +78 -0
  133. data/lib/deprec/templates/ssl/make-ssl-cert +138 -0
  134. data/lib/deprec/templates/ssl/ssl-cert-snakeoil.key +15 -0
  135. data/lib/deprec/templates/ssl/ssl-cert-snakeoil.pem +19 -0
  136. data/lib/deprec/templates/starling/monit.conf.erb +14 -0
  137. data/lib/deprec/templates/starling/starling-init-script.erb +71 -0
  138. data/lib/deprec/templates/subversion/svn.apache.vhost.erb +43 -0
  139. data/lib/deprec/templates/trac/apache_vhost.conf.erb +24 -0
  140. data/lib/deprec/templates/trac/nginx_vhost.conf.erb +26 -0
  141. data/lib/deprec/templates/trac/trac.ini.erb +169 -0
  142. data/lib/deprec/templates/trac/trac_deprec.png +0 -0
  143. data/lib/deprec/templates/trac/tracd-init.erb +43 -0
  144. data/lib/deprec/templates/trac/users.htdigest.erb +0 -0
  145. data/lib/deprec/templates/vnstat/config.php +57 -0
  146. data/lib/deprec/templates/wordpress/apache2_wordpress_vhost.conf.erb +31 -0
  147. data/lib/deprec/templates/wordpress/wp-config.php.erb +31 -0
  148. data/lib/deprec/templates/wpmu/apache_vhost.conf.erb +13 -0
  149. data/lib/deprec/templates/xen/network-bridge-wrapper +3 -0
  150. data/lib/deprec/templates/xen/xend-config.sxp.erb +195 -0
  151. data/lib/deprec/templates/xen/xend-init.erb +57 -0
  152. data/lib/deprec/templates/xen/xendomains.erb +137 -0
  153. data/lib/deprec/templates/xentools/15-disable-hwclock +40 -0
  154. data/lib/deprec/templates/xentools/40-setup-networking +145 -0
  155. data/lib/deprec/templates/xentools/xen-tools.conf.erb +276 -0
  156. data/lib/deprec/templates/xentools/xm.tmpl.erb +138 -0
  157. data/lib/deprec_cmd_completion.sh +26 -0
  158. data/lib/vmbuilder_plugins/all.rb +20 -0
  159. data/lib/vmbuilder_plugins/apt.rb +93 -0
  160. data/lib/vmbuilder_plugins/emerge.rb +76 -0
  161. data/lib/{deprec/third_party/vmbuilder/plugins → vmbuilder_plugins}/gem.rb +10 -17
  162. data/lib/{deprec/third_party/vmbuilder/plugins → vmbuilder_plugins}/std.rb +69 -19
  163. metadata +204 -55
  164. data/bin/deprec +0 -35
  165. data/docs/README.slicehost +0 -14
  166. data/docs/README.svn_trac +0 -19
  167. data/lib/deprec/capistrano_extensions/actor_extensions.rb +0 -89
  168. data/lib/deprec/capistrano_extensions/cli_extensions.rb +0 -38
  169. data/lib/deprec/capistrano_extensions/deprec_extensions.rb +0 -137
  170. data/lib/deprec/generators/deprec/USAGE +0 -11
  171. data/lib/deprec/generators/deprec/deprec_generator.rb +0 -24
  172. data/lib/deprec/generators/deprec/templates/deploy.rb +0 -90
  173. data/lib/deprec/generators/loader.rb +0 -20
  174. data/lib/deprec/recipes/apache.rb +0 -91
  175. data/lib/deprec/recipes/cache_svn.rb +0 -74
  176. data/lib/deprec/recipes/vmware.rb +0 -114
  177. data/lib/deprec/templates/trac.ini.erb +0 -106
  178. data/lib/deprec/third_party/THIRD_PARTY_README +0 -12
  179. data/lib/deprec/third_party/mongrel_cluster/LICENSE +0 -506
  180. data/lib/deprec/third_party/mongrel_cluster/recipes.rb +0 -96
  181. data/lib/deprec/third_party/railsmachine/LICENSE +0 -506
  182. data/lib/deprec/third_party/railsmachine/recipes/apache.rb +0 -92
  183. data/lib/deprec/third_party/railsmachine/recipes/mysql.rb +0 -73
  184. data/lib/deprec/third_party/railsmachine/recipes/templates/httpd-ssl.conf +0 -80
  185. data/lib/deprec/third_party/railsmachine/recipes/templates/httpd.conf +0 -57
  186. data/lib/deprec/third_party/vmbuilder/plugins.rb +0 -8
  187. data/lib/deprec/third_party/vmbuilder/plugins/apt.rb +0 -144
  188. data/resources/capistrano_include_dotfiles.patch +0 -17
@@ -1,38 +0,0 @@
1
- module Capistrano
2
- # The CLI class encapsulates the behavior of capistrano when it is invoked
3
- # as a command-line utility. This allows other programs to embed ST and
4
- # preserve it's command-line semantics.
5
- class CLI
6
-
7
- # Prompt for a password using echo suppression.
8
- def self.password_prompt(prompt="Password: ")
9
- sync = STDOUT.sync
10
- begin
11
- with_echo do
12
- STDOUT.sync = true
13
- print(prompt)
14
- STDIN.gets.chomp
15
- end
16
- ensure
17
- STDOUT.sync = sync
18
- puts
19
- end
20
- end
21
-
22
- def self.prompt(prompt="Password", default=nil)
23
- sync = STDOUT.sync
24
- begin
25
- STDOUT.sync = true
26
- print("#{prompt}")
27
- print " [#{default}]" if default
28
- print ': '
29
- response = STDIN.gets.chomp
30
- response == '' ? default : response
31
- ensure
32
- STDOUT.sync = sync
33
- puts
34
- end
35
- end
36
-
37
- end
38
- end
@@ -1,137 +0,0 @@
1
-
2
- require 'capistrano'
3
-
4
- module Deprec
5
- DEPREC_TEMPLATES_BASE = File.join(File.dirname(__FILE__), '..', 'templates')
6
-
7
- def render_template_to_file(template_name, destination_file_name, templates_dir = DEPREC_TEMPLATES_BASE)
8
- template_name += '.conf' if File.extname(template_name) == '' # XXX this to be removed
9
-
10
- file = File.join(templates_dir, template_name)
11
- buffer = render :template => File.read(file)
12
-
13
- temporary_location = "/tmp/#{template_name}"
14
- put buffer, temporary_location
15
- sudo "cp #{temporary_location} #{destination_file_name}"
16
- delete temporary_location
17
- end
18
-
19
- def append_to_file_if_missing(filename, value, options={})
20
- # XXX sort out single quotes in 'value' - they'l break command!
21
- # XXX if options[:requires_sudo] and :use_sudo then use sudo
22
- sudo <<-END
23
- sh -c '
24
- grep -F "#{value}" #{filename} > /dev/null 2>&1 ||
25
- test ! -f #{filename} ||
26
- echo "#{value}" >> #{filename}
27
- '
28
- END
29
- end
30
-
31
- # ##
32
- # # Update a users crontab
33
- # #
34
- # # user: which users crontab should be affected
35
- # # entry: the entry as it would appear in the crontab (e.g. '*/15 * * * * sleep 5')
36
- # # action: :add or :remove
37
- # #
38
- # def update_user_crontab(user, entry, action = :add)
39
- # # we don't want capistrano exiting if crontab doesn't yet exist
40
- # cur_crontab = capture "crontab -u #{user} -l || exit 0"
41
- # if cur_crontab.include?(entry)
42
- # if action == :remove
43
- # sudo "crontab -u #{user} -l | grep -v #{entry} | sudo crontab -u #{user} -"
44
- # end
45
- # else
46
- # if action == :add
47
- # new_crontab = cur_crontab.chomp + entry
48
- # puts new_crontab
49
- # sudo "echo '#{new_crontab}' | sudo crontab -u #{user} -"
50
- # end
51
- # end
52
- # end
53
-
54
-
55
- # create new user account on target system
56
- def useradd(user, options={})
57
- options[:shell] ||= '/bin/bash' # new accounts on ubuntu 6.06.1 have been getting /bin/sh
58
- switches = ''
59
- switches += " --shell=#{options[:shell]} " if options[:shell]
60
- switches += ' --create-home ' unless options[:homedir] == false
61
- switches += " --gid #{options[:group]} " unless options[:group].nil?
62
- send(run_method, "grep '^#{user}:' /etc/passwd || sudo /usr/sbin/useradd #{switches} #{user}")
63
- end
64
-
65
- # create a new group on target system
66
- def groupadd(group)
67
- # XXX I don't like specifying the path to groupadd - need to sort out paths before long
68
- send(run_method, "grep '#{group}:' /etc/group || sudo /usr/sbin/groupadd #{group}")
69
- end
70
-
71
- # add group to the list of groups this user belongs to
72
- def add_user_to_group(user, group)
73
- send(run_method, "groups #{user} | grep ' #{group} ' || sudo /usr/sbin/usermod -G #{group} -a #{user}")
74
- end
75
-
76
- # create directory if it doesn't already exist
77
- # set permissions and ownership
78
- # XXX move mode, path and
79
- def mkdir(path, options={})
80
- options[:mode] ||= '0755'
81
- sudo "test -d #{path} || sudo mkdir -p -m#{options[:mode]} #{path}"
82
- sudo "chgrp -R #{options[:group]} #{path}" if options[:group]
83
- sudo "chown -R #{user} #{path}" if options[:user]
84
- end
85
-
86
-
87
- # download source package if we don't already have it
88
- def download_src(src_package, src_dir)
89
- deprec.groupadd(group)
90
- sudo "test -d #{src_dir} || sudo mkdir #{src_dir}"
91
- sudo "chgrp -R #{group} #{src_dir}"
92
- sudo "chmod -R g+w #{src_dir}"
93
- # XXX check if file exists and if we have and MD5 hash or bytecount to compare against
94
- # XXX if so, compare and decide if we need to download again
95
- if defined?(src_package[:md5sum])
96
- md5_clause = " && echo '#{src_package[:md5sum]}' | md5sum -c - "
97
- end
98
- sudo <<-SUDO
99
- sh -c "cd #{src_dir} && test -f #{src_package[:file]} #{md5_clause} || wget --timestamping #{src_package[:url]}"
100
- SUDO
101
- end
102
-
103
- # unpack src and make it writable by the group
104
- def unpack_src(src_package, src_dir)
105
- package_dir = File.join(src_dir, src_package[:dir])
106
- sudo <<-SUDO
107
- sh -c '
108
- cd #{src_dir};
109
- test -d #{package_dir}.old && rm -fr #{package_dir}.old;
110
- test -d #{package_dir} && mv #{package_dir} #{package_dir}.old;
111
- #{src_package[:unpack]}
112
- chgrp -R #{group} #{package_dir};
113
- chmod -R g+w #{package_dir};
114
- '
115
- SUDO
116
- end
117
-
118
- # install package from source
119
- def install_from_src(src_package, src_dir)
120
- package_dir = File.join(src_dir, src_package[:dir])
121
- unpack_src(src_package, src_dir)
122
- apt.install( {:base => %w(build-essential)}, :stable )
123
- sudo <<-SUDO
124
- sh -c '
125
- cd #{package_dir};
126
- #{src_package[:configure]}
127
- #{src_package[:make]}
128
- #{src_package[:install]}
129
- #{src_package[:post_install]}
130
- '
131
- SUDO
132
- end
133
-
134
-
135
- end
136
-
137
- Capistrano.plugin :deprec, Deprec
@@ -1,11 +0,0 @@
1
- NAME
2
- deprec - creates configuration and Capistrano tasks for server configuration.
3
-
4
- SYNOPSIS
5
- deprec --apply-to /path/to/app --name application_name --domain domain_name
6
-
7
- DESCRIPTION
8
- This generator creates deployment recipes.
9
-
10
- EXAMPLE
11
- deprec --apply-to . --name bailey --domain www.bailey.net.au
@@ -1,24 +0,0 @@
1
- class DeprecGenerator < Rails::Generator::NamedBase
2
- attr_reader :application_name
3
- attr_reader :domain_name
4
-
5
- def initialize(runtime_args, runtime_options = {})
6
- super
7
- @application_name = self.file_name
8
- @domain_name = @args[0]
9
- end
10
-
11
- def manifest
12
- record do |m|
13
- m.directory "config"
14
- m.template "deploy.rb", File.join("config", "deploy.rb")
15
- end
16
- end
17
-
18
- protected
19
-
20
- # Override with your own usage banner.
21
- def banner
22
- "Usage: #{$0} --apply-to /path/to/app --name ApplicationName --domain DomainName"
23
- end
24
- end
@@ -1,90 +0,0 @@
1
- require 'deprec/recipes'
2
-
3
- # =============================================================================
4
- # ROLES
5
- # =============================================================================
6
- # You can define any number of roles, each of which contains any number of
7
- # machines. Roles might include such things as :web, or :app, or :db, defining
8
- # what the purpose of each machine is. You can also specify options that can
9
- # be used to single out a specific subset of boxes in a particular role, like
10
- # :primary => true.
11
-
12
- set :domain, "<%= domain_name %>"
13
- role :web, domain
14
- role :app, domain
15
- role :db, domain, :primary => true
16
- role :scm, domain
17
-
18
- # =============================================================================
19
- # REQUIRED VARIABLES
20
- # =============================================================================
21
- # You must always specify the application and repository for every recipe. The
22
- # repository must be the URL of the repository you want this recipe to
23
- # correspond to. The deploy_to path must be the path on each machine that will
24
- # form the root of the application path.
25
-
26
- set :application, "<%= singular_name %>"
27
- set :deploy_to, "/var/www/apps/#{application}"
28
-
29
- # XXX we may not need this - it doesn't work on windows
30
- # XXX set :user, ENV['USER']
31
- set :repository, "svn+ssh://#{user}@#{domain}#{deploy_to}/repos/trunk"
32
- set :rails_env, "production"
33
-
34
- # Automatically symlink these directories from current/public to shared/public.
35
- # set :app_symlinks, %w{photo, document, asset}
36
-
37
- # =============================================================================
38
- # SPECIAL OPTIONS
39
- # =============================================================================
40
- # These options allow you to tweak deprec behaviour
41
-
42
- # If you do not keep database.yml in source control, set this to false.
43
- # After new code is deployed, deprec will symlink current/config/database.yml
44
- # to shared/config/database.yml
45
- #
46
- # You can generate shared/config/database.yml with 'cap generate_database_yml'
47
- #
48
- # set :database_yml_in_scm, true
49
-
50
- # =============================================================================
51
- # APACHE OPTIONS
52
- # =============================================================================
53
- set :apache_server_name, domain
54
- # set :apache_server_aliases, %w{alias1 alias2}
55
- # set :apache_default_vhost, true # force use of apache_default_vhost_config
56
- # set :apache_default_vhost_conf, "/usr/local/apache2/conf/default.conf"
57
- # set :apache_conf, "/usr/local/apache2/conf/apps/#{application}.conf"
58
- # set :apache_ctl, "/etc/init.d/httpd"
59
- # set :apache_proxy_port, 8000
60
- # set :apache_proxy_servers, 2
61
- # set :apache_proxy_address, "127.0.0.1"
62
- # set :apache_ssl_enabled, false
63
- # set :apache_ssl_ip, "127.0.0.1"
64
- # set :apache_ssl_forward_all, false
65
- # set :apache_ssl_chainfile, false
66
-
67
-
68
- # =============================================================================
69
- # MONGREL OPTIONS
70
- # =============================================================================
71
- # set :mongrel_servers, apache_proxy_servers
72
- # set :mongrel_port, apache_proxy_port
73
- set :mongrel_address, apache_proxy_address
74
- # set :mongrel_environment, "production"
75
- # set :mongrel_config, "/etc/mongrel_cluster/#{application}.conf"
76
- # set :mongrel_user_prefix, 'mongrel_'
77
- # set :mongrel_user, mongrel_user_prefix + application
78
- # set :mongrel_group_prefix, 'app_'
79
- # set :mongrel_group, mongrel_group_prefix + application
80
-
81
- # =============================================================================
82
- # MYSQL OPTIONS
83
- # =============================================================================
84
-
85
-
86
- # =============================================================================
87
- # SSH OPTIONS
88
- # =============================================================================
89
- # ssh_options[:keys] = %w(/path/to/my/key /path/to/another/key)
90
- # ssh_options[:port] = 25
@@ -1,20 +0,0 @@
1
- module Deprec
2
- module Generators
3
- class RailsLoader
4
- def self.load!(options)
5
- require "#{options[:apply_to]}/config/environment"
6
- require "rails_generator"
7
- require "rails_generator/scripts/generate"
8
-
9
- Rails::Generator::Base.sources << Rails::Generator::PathSource.new(
10
- :deprec, File.dirname(__FILE__))
11
-
12
- args = ["deprec"]
13
- args << (options[:application] || "Application")
14
- args << (options[:domain] || "www.mynewsite.com")
15
-
16
- Rails::Generator::Scripts::Generate.new.run(args)
17
- end
18
- end
19
- end
20
- end
@@ -1,91 +0,0 @@
1
- Capistrano.configuration(:must_exist).load do
2
-
3
- task :install_apache do # deprecated
4
- apache_install
5
- end
6
-
7
- task :apache_install do
8
- version = 'httpd-2.2.6'
9
- set :src_package, {
10
- :file => version + '.tar.gz',
11
- :md5sum => 'd050a49bd7532ec21c6bb593b3473a5d httpd-2.2.6.tar.gz',
12
- :dir => version,
13
- :url => "http://www.apache.org/dist/httpd/#{version}.tar.gz",
14
- :unpack => "tar zxf #{version}.tar.gz;",
15
- :configure => %w(
16
- ./configure
17
- --enable-mods-shared=all
18
- --enable-proxy
19
- --enable-proxy-balancer
20
- --enable-proxy-http
21
- --enable-rewrite
22
- --enable-cache
23
- --enable-headers
24
- --enable-ssl
25
- --enable-deflate
26
- --with-included-apr #_so_this_recipe_doesn't_break_when_rerun
27
- --enable-dav #_for_subversion_
28
- --enable-so #_for_subversion_
29
- ;
30
- ).reject{|arg| arg.match '#'}.join(' '),
31
- :make => 'make;',
32
- :install => 'make install;',
33
- :post_install => 'install -b support/apachectl /etc/init.d/httpd;'
34
- }
35
- apt.install( {:base => %w(zlib1g-dev zlib1g openssl libssl-dev)}, :stable )
36
- deprec.download_src(src_package, src_dir)
37
- deprec.install_from_src(src_package, src_dir)
38
- # ubuntu specific - should instead call generic name which can be picked up by different distros
39
- send(run_method, "update-rc.d httpd defaults")
40
- end
41
-
42
- task :install_php do # deprecated
43
- php_install
44
- end
45
-
46
- desc "Install PHP from source"
47
- task :php_install do
48
- version = 'php-5.2.2'
49
- set :src_package, {
50
- :file => version + '.tar.gz',
51
- :md5sum => '7a920d0096900b2b962b21dc5c55fe3c php-5.2.2.tar.gz',
52
- :dir => version,
53
- :url => "http://www.php.net/distributions/#{version}.tar.gz",
54
- :unpack => "tar zxf #{version}.tar.gz;",
55
- :configure => %w(
56
- ./configure
57
- --prefix=/usr/local/php
58
- --with-apxs2=/usr/local/apache2/bin/apxs
59
- --disable-ipv6
60
- --enable-sockets
61
- --enable-soap
62
- --with-pcre-regex
63
- --with-mysql
64
- --with-zlib
65
- --with-gettext
66
- --with-sqlite
67
- --enable-sqlite-utf8
68
- --with-openssl
69
- --with-mcrypt
70
- --with-ncurses
71
- --with-jpeg-dir=/usr
72
- --with-gd
73
- --with-ctype
74
- --enable-mbstring
75
- --with-curl==/usr/lib
76
- ;
77
- ).reject{|arg| arg.match '#'}.join(' '),
78
- :make => 'make;',
79
- :install => 'make install;',
80
- :post_install => ""
81
- }
82
- apt.install( {:base => %w(zlib1g-dev zlib1g openssl libssl-dev
83
- flex libcurl3 libcurl3-dev libmcrypt-dev libmysqlclient15-dev libncurses5-dev
84
- libxml2-dev libjpeg62-dev libpng12-dev)}, :stable )
85
- run "export CFLAGS=-O2;"
86
- deprec.download_src(src_package, src_dir)
87
- deprec.install_from_src(src_package, src_dir)
88
- deprec.append_to_file_if_missing('/usr/local/apache2/conf/httpd.conf', 'AddType application/x-httpd-php .php')
89
- end
90
-
91
- end
@@ -1,74 +0,0 @@
1
-
2
- ##
3
- # Caches an svn copy of your app locally to avoid doing a full checkout of
4
- # your app each time. Overwrites the built-in +update_code+ task.
5
- #
6
- # Written/pulled together by Dreamer3 (Josh Goebel) based on work by Chris McGrath (octopod).
7
- # Minor tweaks by Geoffrey Grosenbach (topfunky).
8
- #
9
- # Usage:
10
- #
11
- # # In deploy.rb
12
- # require 'deprec/recipes/cache_svn'
13
- #
14
- # set :repository, "svn://your.repository/path/here"
15
- # set :repository_cache, "#{shared_path}/svn_trunk/"
16
- #
17
- # After running the default +setup+ task, run +setup_repository_cache+ to
18
- # do the first checkout of your app.
19
- #
20
- # cap setup_repository_cache
21
- #
22
- # After that, the normal +deploy+ will update the cached copy, rsync
23
- # it to the releases directory, and symlink it to +current+, as usual.
24
-
25
- ##
26
- # Expand the subversion class to support cached repositories
27
- class Capistrano::SCM::Subversion
28
-
29
- def setup_repository_cache(actor)
30
- params = ""
31
- params << "--username #{configuration[:svn_username]}" if configuration[:svn_username]
32
- command = "#{svn} co -q #{params} #{configuration[:repository]} #{configuration[:repository_cache]} &&"
33
- configuration.logger.debug "Caching SVN repository on remote servers..."
34
- run_checkout(actor, command, &svn_stream_handler(actor))
35
- end
36
-
37
- def update_repository_cache(actor)
38
- command = "#{svn} up -q #{configuration[:repository_cache]} &&"
39
- run_update(actor, command, &svn_stream_handler(actor))
40
- end
41
-
42
- end
43
-
44
- Capistrano.configuration(:must_exist).load do
45
-
46
- desc <<-DESC
47
- Setup the cached repository on the server for the first time and
48
- checkout the latest version there.
49
- DESC
50
- task :setup_cached_repository, :roles => [:app, :db, :web] do
51
- set :revision, "Initial setup checkout" # avoids capistrano trying to find out for us
52
- run "mkdir -p #{repository_cache}"
53
- source.setup_repository_cache(self)
54
- end
55
-
56
- desc <<-DESC
57
- Update the cached repository and then your app (from the cache) via SVN.
58
- DESC
59
- task :update_code, :roles => [:app, :db, :web] do
60
- source.update_repository_cache(self)
61
-
62
- on_rollback { delete release_path, :recursive => true }
63
-
64
- run %(rsync -ax --exclude=".svn" #{repository_cache} #{release_path}/)
65
-
66
- run <<-CMD
67
- rm -rf #{release_path}/log #{release_path}/public/system &&
68
- ln -nfs #{shared_path}/log #{release_path}/log &&
69
- ln -nfs #{shared_path}/system #{release_path}/public/system
70
- CMD
71
-
72
- end
73
-
74
- end