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
@@ -0,0 +1,55 @@
1
+ # Copyright 2006-2008 by Mike Bailey. All rights reserved.
2
+ Capistrano::Configuration.instance(:must_exist).load do
3
+
4
+ namespace :deprec do
5
+ namespace :mri do
6
+
7
+ SRC_PACKAGES[:mri] = {
8
+ :md5sum => "5e5b7189674b3a7f69401284f6a7a36d ruby-1.8.7-p72.tar.gz",
9
+ :url => "ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.gz",
10
+ :configure => "./configure --with-readline-dir=/usr/local;"
11
+ }
12
+
13
+ desc "Install Ruby"
14
+ task :install do
15
+ install_deps
16
+ deprec2.download_src(SRC_PACKAGES[:mri], src_dir)
17
+ deprec2.install_from_src(SRC_PACKAGES[:mri], src_dir)
18
+ top.deprec.rubygems.install
19
+ end
20
+
21
+ task :install_deps do
22
+ apt.install( {:base => %w(zlib1g-dev libssl-dev libncurses5-dev libreadline5-dev)}, :stable )
23
+ end
24
+
25
+ end
26
+ end
27
+
28
+
29
+ namespace :deprec do
30
+ namespace :rubygems do
31
+
32
+ SRC_PACKAGES[:rubygems] = {
33
+ :md5sum => "a04ee6f6897077c5b75f5fd1e134c5a9 rubygems-1.3.1.tgz",
34
+ :url => "http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz",
35
+ :configure => "",
36
+ :make => "",
37
+ :install => 'ruby setup.rb;'
38
+ }
39
+
40
+ desc "Install Rubygems"
41
+ task :install do
42
+ install_deps
43
+ deprec2.download_src(SRC_PACKAGES[:rubygems], src_dir)
44
+ deprec2.install_from_src(SRC_PACKAGES[:rubygems], src_dir)
45
+ # gem2.upgrade # you may not want to upgrade your gems right now
46
+ end
47
+
48
+ # install dependencies for rubygems
49
+ task :install_deps do
50
+ end
51
+
52
+ end
53
+
54
+ end
55
+ end
@@ -0,0 +1,41 @@
1
+ # Copyright 2006-2008 by Mike Bailey. All rights reserved.
2
+ Capistrano::Configuration.instance(:must_exist).load do
3
+ namespace :deprec do
4
+ namespace :ree do
5
+
6
+ set :ree_version, 'ruby-enterprise-1.8.6-20090113'
7
+ set :ree_install_dir, "/opt/#{ree_version}"
8
+ set :ree_short_path, '/opt/ruby-enterprise'
9
+
10
+ SRC_PACKAGES[:ree] = {
11
+ :md5sum => "e8d796a5bae0ec1029a88ba95c5d901d #{ree_version}.tar.gz",
12
+ :url => "http://rubyforge.org/frs/download.php/50087/#{ree_version}.tar.gz",
13
+ :configure => '',
14
+ :make => '',
15
+ :install => "./installer --auto /opt/#{ree_version}"
16
+ }
17
+
18
+ task :install do
19
+ install_deps
20
+ deprec2.download_src(SRC_PACKAGES[:ree], src_dir)
21
+ deprec2.install_from_src(SRC_PACKAGES[:ree], src_dir)
22
+ symlink_ree
23
+ end
24
+
25
+ task :install_deps do
26
+ apt.install({:base => %w(libssl-dev libmysqlclient15-dev libreadline5-dev)}, :stable)
27
+ end
28
+
29
+ task :symlink_ree do
30
+ sudo "ln -sf /opt/#{ree_version} #{ree_short_path}"
31
+ sudo "ln -fs #{ree_short_path}/bin/gem /usr/local/bin/gem"
32
+ sudo "ln -fs #{ree_short_path}/bin/irb /usr/local/bin/irb"
33
+ sudo "ln -fs #{ree_short_path}/bin/rake /usr/local/bin/rake"
34
+ sudo "ln -fs #{ree_short_path}/bin/rails /usr/local/bin/rails"
35
+ sudo "ln -fs #{ree_short_path}/bin/ruby /usr/local/bin/ruby"
36
+ end
37
+
38
+ end
39
+
40
+ end
41
+ end
@@ -0,0 +1,86 @@
1
+ # Copyright 2006-2008 by Mike Bailey. All rights reserved.
2
+ Capistrano::Configuration.instance(:must_exist).load do
3
+ namespace :deprec do
4
+ namespace :sphinx do
5
+
6
+ SRC_PACKAGES[:sphinx] = {
7
+ :filename => 'sphinx-0.9.8-rc2.tar.gz',
8
+ :dir => 'sphinx-0.9.8-rc2',
9
+ :url => "http://www.sphinxsearch.com/downloads/sphinx-0.9.8-rc2.tar.gz",
10
+ :unpack => "tar zxf sphinx-0.9.8-rc2.tar.gz;",
11
+ :configure => %w(
12
+ ./configure
13
+ ;
14
+ ).reject{|arg| arg.match '#'}.join(' '),
15
+ :make => 'make;',
16
+ :install => 'make install;'
17
+ }
18
+
19
+ desc "install Sphinx Search Engine"
20
+ task :install do
21
+ deprec2.download_src(SRC_PACKAGES[:sphinx], src_dir)
22
+ deprec2.install_from_src(SRC_PACKAGES[:sphinx], src_dir)
23
+ end
24
+
25
+ # install dependencies for sphinx
26
+ task :install_deps do
27
+ # apt.install( {:base => %w(blah)}, :stable )
28
+ end
29
+
30
+ SYSTEM_CONFIG_FILES[:sphinx] = []
31
+
32
+ PROJECT_CONFIG_FILES[:sphinx] = [
33
+
34
+ {:template => 'monit.conf.erb',
35
+ :path => 'monit.conf',
36
+ :mode => 0644,
37
+ :owner => 'root:root'}
38
+
39
+ ]
40
+
41
+ desc <<-DESC
42
+ Generate sphinx config from template. Note that this does not
43
+ push the config to the server, it merely generates required
44
+ configuration files. These should be kept under source control.
45
+ The can be pushed to the server with the :config task.
46
+ DESC
47
+ task :config_gen do
48
+ PROJECT_CONFIG_FILES[:sphinx].each do |file|
49
+ deprec2.render_template(:sphinx, file)
50
+ end
51
+ end
52
+
53
+ desc "Push sphinx config files to server"
54
+ task :config, :roles => :sphinx do
55
+ config_project
56
+ end
57
+
58
+ desc "Push sphinx config files to server"
59
+ task :config_project, :roles => :sphinx do
60
+ deprec2.push_configs(:sphinx, PROJECT_CONFIG_FILES[:sphinx])
61
+ symlink_monit_config
62
+ end
63
+
64
+ task :symlink_monit_config, :roles => :sphinx do
65
+ sudo "ln -sf #{deploy_to}/sphinx/monit.conf #{monit_confd_dir}/sphinx_#{application}.conf"
66
+ end
67
+
68
+
69
+ # Control
70
+
71
+ desc "Restart the sphinx searchd daemon"
72
+ task :restart, :roles => :app do
73
+ run("cd #{deploy_to}/current; /usr/bin/rake us:start") ### start or restart? SUDO ? ###
74
+ end
75
+
76
+ desc "Regenerate / Rotate the search index."
77
+ task :reindex, :roles => :app do
78
+ run("cd #{deploy_to}/current; /usr/bin/rake us:in") ### SUDO ? ###
79
+ end
80
+
81
+ end
82
+ end
83
+ end
84
+
85
+ # ultrasphinx deployment notes
86
+ # http://blog.evanweaver.com/files/doc/fauna/ultrasphinx/files/DEPLOYMENT_NOTES.html
@@ -1,26 +1,93 @@
1
- Capistrano.configuration(:must_exist).load do
1
+ # Copyright 2006-2008 by Mike Bailey. All rights reserved.
2
+ Capistrano::Configuration.instance(:must_exist).load do
3
+ namespace :deprec do
4
+ namespace :ssh do
5
+
6
+ SYSTEM_CONFIG_FILES[:ssh] = [
7
+
8
+ {:template => "sshd_config.erb",
9
+ :path => '/etc/ssh/sshd_config',
10
+ :mode => 0644,
11
+ :owner => 'root:root'},
12
+
13
+ {:template => "ssh_config.erb",
14
+ :path => '/etc/ssh/ssh_config',
15
+ :mode => 0644,
16
+ :owner => 'root:root'}
17
+ ]
18
+
19
+ task :config_gen do
20
+ SYSTEM_CONFIG_FILES[:ssh].each do |file|
21
+ deprec2.render_template(:ssh, file)
22
+ end
23
+ auth_keys_dir = 'config/ssh/authorized_keys'
24
+ if ! File.directory?(auth_keys_dir)
25
+ puts "Creating #{auth_keys_dir}"
26
+ Dir.mkdir(auth_keys_dir)
27
+ end
28
+ end
29
+
30
+ desc "Push ssh config files to server"
31
+ task :config do
32
+ deprec2.push_configs(:ssh, SYSTEM_CONFIG_FILES[:ssh])
33
+ restart
34
+ end
2
35
 
3
- # set :user, (defined?(user) ? user : ENV['USER'])
4
- desc "Copies contents of ssh public keys into authorized_keys file"
5
- task :setup_ssh_keys do
36
+ desc "Start ssh"
37
+ task :start do
38
+ send(run_method, "/etc/init.d/ssh reload")
39
+ end
6
40
 
7
- unless ssh_options[:keys]
8
- puts <<-ERROR
41
+ desc "Stop ssh"
42
+ task :stop do
43
+ send(run_method, "/etc/init.d/ssh reload")
44
+ end
45
+
46
+ desc "Restart ssh"
47
+ task :restart do
48
+ send(run_method, "/etc/init.d/ssh restart")
49
+ end
50
+
51
+ desc "Reload ssh"
52
+ task :reload do
53
+ send(run_method, "/etc/init.d/ssh reload")
54
+ end
55
+
56
+ desc "Sets up authorized_keys file on remote server"
57
+ task :setup_keys do
58
+
59
+ default(:target_user) {
60
+ Capistrano::CLI.ui.ask "Setup keys for which user?" do |q|
61
+ q.default = user
62
+ end
63
+ }
64
+
65
+ if target_user == user
66
+
67
+ unless ssh_options[:keys]
68
+ puts <<-ERROR
9
69
 
10
- You need to define the name of your SSH key(s)
11
- e.g. ssh_options[:keys] = %w(/Users/someuser/.ssh/id_dsa)
70
+ You need to define the name of your SSH key(s)
71
+ e.g. ssh_options[:keys] = %w(/Users/your_username/.ssh/id_rsa)
12
72
 
13
- You can put this in your .caprc file in your home directory.
73
+ You can put this in your .caprc file in your home directory.
14
74
 
15
- ERROR
16
- exit
75
+ ERROR
76
+ exit
77
+ end
78
+
79
+ deprec2.mkdir '.ssh', :mode => 0700
80
+ put(ssh_options[:keys].collect{|key| File.read(key+'.pub')}.join("\n"), '.ssh/authorized_keys', :mode => 0600 )
81
+
82
+ else
83
+
84
+ deprec2.mkdir "/home/#{target_user}/.ssh", :mode => 0700, :owner => "#{target_user}.users", :via => :sudo
85
+ std.su_put File.read("config/ssh/authorized_keys/#{target_user}"), "/home/#{target_user}/.ssh/authorized_keys", '/tmp/', :mode => 0600
86
+ sudo "chown #{target_user}.users /home/#{target_user}/.ssh/authorized_keys"
87
+
88
+ end
89
+ end
90
+
17
91
  end
18
-
19
- sudo "test -d ~/.ssh || mkdir ~/.ssh"
20
- sudo "chmod 0700 ~/.ssh"
21
- put(ssh_options[:keys].collect{|key| File.read(key+'.pub')}.join("\n"),
22
- File.join('/home', user, '.ssh/authorized_keys'),
23
- :mode => 0600 )
24
92
  end
25
-
26
93
  end
@@ -0,0 +1,55 @@
1
+ # Copyright 2006-2008 by Mike Bailey. All rights reserved.
2
+ Capistrano::Configuration.instance(:must_exist).load do
3
+ namespace :deprec do
4
+ namespace :ssl do
5
+
6
+ # Install Openssl
7
+ task :install, :roles => :web do
8
+ install_deps
9
+ end
10
+
11
+ # Install dependencies for ssl
12
+ task :install_deps, :roles => :web do
13
+ apt.install( {:base => %w(openssl)}, :stable )
14
+ end
15
+
16
+ PROJECT_CONFIG_FILES[:ssl] = [
17
+
18
+ {:template => 'ssl-cert-snakeoil.pem',
19
+ :path => '/etc/ssl/certs/ssl-cert-snakeoil.pem',
20
+ :mode => 0644,
21
+ :owner => 'root:root'},
22
+
23
+ {:template => 'ssl-cert-snakeoil.key',
24
+ :path => "/etc/ssl/private/ssl-cert-snakeoil.key",
25
+ :mode => 0640,
26
+ :owner => 'root:ssl-cert'},
27
+
28
+ { :template => 'make-ssl-cert',
29
+ :path => "/usr/sbin/make-ssl-cert",
30
+ :mode => 0755,
31
+ :owner => 'root:root'}
32
+
33
+ ]
34
+
35
+ # Generate ssl certs
36
+ task :config_gen do
37
+ PROJECT_CONFIG_FILES[:ssl].each do |file|
38
+ deprec2.render_template(:ssl, file)
39
+ end
40
+ end
41
+
42
+ # Copy out ssl certs
43
+ task :config, :roles => :web do
44
+ deprec2.push_configs(:ssl, PROJECT_CONFIG_FILES[:ssl])
45
+ end
46
+
47
+ task :generate_snakeoil_cert, :roles => :web do
48
+ sudo "/usr/sbin/make-ssl-cert generate-default-snakeoil"
49
+ end
50
+
51
+ end
52
+
53
+ end
54
+ end
55
+
@@ -0,0 +1,119 @@
1
+ # Deprec script to install the Starling Messaging Server
2
+ # This uses the forked copy located at http://github.com/starling/starling instead of the original gem
3
+ # The start/stop/restart tasks are based on code used in the 'starling.ubuntu' script which is contained in the Starling repository.
4
+ Capistrano::Configuration.instance(:must_exist).load do
5
+ namespace :deprec do
6
+ namespace :starling do
7
+ set :starling_port, 15151
8
+ set :starling_address, "127.0.0.1"
9
+ set :starling_user, "starling"
10
+ set :starling_group, "starling"
11
+ set :starling_spool_dir, "/var/spool/starling"
12
+ set :starling_run_dir, "/var/run/starling"
13
+ set :starling_log_dir, "/var/log/starling"
14
+ set :starling_runtime_options, "-h #{starling_address} -p #{starling_port} -d -q #{starling_spool_dir} -P #{starling_spool_dir}/starling.pid -L #{starling_log_dir}/starling.log"
15
+
16
+ # Installation
17
+ desc "Installs the Starling gem"
18
+ task :install, :roles => :app do
19
+ sudo("gem install eventmachine --no-rdoc --no-ri")
20
+ sudo("gem install starling-starling --source http://gems.github.com -v 0.9.9 --no-rdoc --no-ri")
21
+
22
+ deprec2.mkdir(starling_spool_dir, :via => :sudo)
23
+ deprec2.mkdir(starling_run_dir, :via => :sudo)
24
+ deprec2.mkdir(starling_log_dir, :via => :sudo)
25
+
26
+ create_starling_user_and_group
27
+ set_perms_for_starling_dirs
28
+ symlink_starling_for_rubyee if ruby_vm_type == :ree
29
+
30
+ SYSTEM_CONFIG_FILES[:starling].each do |file|
31
+ deprec2.render_template(:starling, file.merge(:remote=>true))
32
+ end
33
+
34
+ activate
35
+ end
36
+
37
+ # Configure
38
+
39
+ SYSTEM_CONFIG_FILES[:starling] = [
40
+ {:template => 'starling-init-script.erb',
41
+ :path => '/etc/init.d/starling',
42
+ :mode => 0755,
43
+ :owner => 'root:root'},
44
+
45
+ {:template => 'monit.conf.erb',
46
+ :path => "/etc/monit.d/monit_starling.conf",
47
+ :mode => 0600,
48
+ :owner => 'root:root'}
49
+ ]
50
+
51
+ # Generating Configuration Files
52
+ desc "Generate configuration file(s) for Starling from template(s)"
53
+ task :config_gen do
54
+ SYSTEM_CONFIG_FILES[:starling].each do |file|
55
+ deprec2.render_template(:starling, file)
56
+ end
57
+ end
58
+
59
+ desc 'Deploy configuration files(s) for Starling'
60
+ task :config, :roles => :app do
61
+ deprec2.push_configs(:starling, SYSTEM_CONFIG_FILES[:starling])
62
+ end
63
+
64
+ # Control
65
+
66
+ desc "Starts the Starling server"
67
+ task :start, :roles => :app do
68
+ send(run_method, "start-stop-daemon -c #{starling_user}:#{starling_group} --start --quiet --pidfile #{starling_run_dir}/starling.pid --exec /usr/local/bin/starling -- #{starling_runtime_options}")
69
+ end
70
+
71
+ desc "Stops the Starling server"
72
+ task :stop, :roles => :app do
73
+ send(run_method, "start-stop-daemon -c #{starling_user}:#{starling_group} --stop --quiet --pidfile #{starling_run_dir}/starling.pid --exec /usr/local/bin/starling -- #{starling_runtime_options}")
74
+ end
75
+
76
+ desc "Restarts the Starling server"
77
+ task :restart, :roles => :app do
78
+ send(run_method, "start-stop-daemon -c #{starling_user}:#{starling_group} --stop --quiet --pidfile #{starling_run_dir}/starling.pid --exec /usr/local/bin/starling -- #{starling_runtime_options}")
79
+ sleep(2)
80
+ send(run_method, "start-stop-daemon -c #{starling_user}:#{starling_group} --start --quiet --pidfile #{starling_run_dir}/starling.pid --exec /usr/local/bin/starling -- #{starling_runtime_options}")
81
+ end
82
+
83
+ task :activate, :roles => :app do
84
+ send(run_method, "update-rc.d starling defaults")
85
+ end
86
+
87
+ task :deactivate, :roles => :app do
88
+ send(run_method, "update-rc.d -f starling remove")
89
+ end
90
+
91
+ # User/Group creation & permission assignment
92
+ # These were based off the tasks used in the mongrel recipe -
93
+ # as this was probably the nicest way to ensure these tasks
94
+ # were doing the right thing.
95
+ desc "create user and group for starling to run as"
96
+ task :create_starling_user_and_group, :roles => :app do
97
+ deprec2.groupadd(starling_group)
98
+ deprec2.useradd(starling_user, :group => starling_group, :homedir => false)
99
+ # Set the primary group for the starling user (in case user already existed
100
+ # when previous command was run)
101
+ sudo "usermod --gid #{starling_group} #{starling_user}"
102
+ end
103
+
104
+ desc "set group ownership and permissions on dirs starling needs to write to"
105
+ task :set_perms_for_starling_dirs, :roles => :app do
106
+ sudo "chgrp -R #{starling_group} #{starling_spool_dir} #{starling_run_dir} #{starling_log_dir}"
107
+ sudo "chmod -R g+w #{starling_spool_dir} #{starling_run_dir} #{starling_log_dir}"
108
+ end
109
+
110
+ task :symlink_starling_for_rubyee, :roles => :app do
111
+ # This ensures we symlink from the REE common directory, NOT the
112
+ # actual REE install directory (so when we change the REE version,
113
+ # we don't have to fuddle around again).
114
+ sudo "ln -s #{ree_short_path}/bin/starling /usr/local/bin/starling"
115
+ end
116
+
117
+ end
118
+ end
119
+ end