FiXato-ubuntu-machine 0.5.3.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README +9 -0
  3. data/lib/capistrano/ext/ubuntu-machine/apache.rb +126 -0
  4. data/lib/capistrano/ext/ubuntu-machine/aptitude.rb +96 -0
  5. data/lib/capistrano/ext/ubuntu-machine/gems.rb +39 -0
  6. data/lib/capistrano/ext/ubuntu-machine/git.rb +15 -0
  7. data/lib/capistrano/ext/ubuntu-machine/helpers.rb +36 -0
  8. data/lib/capistrano/ext/ubuntu-machine/iptables.rb +20 -0
  9. data/lib/capistrano/ext/ubuntu-machine/machine.rb +48 -0
  10. data/lib/capistrano/ext/ubuntu-machine/mysql.rb +64 -0
  11. data/lib/capistrano/ext/ubuntu-machine/odbc.rb +46 -0
  12. data/lib/capistrano/ext/ubuntu-machine/php.rb +8 -0
  13. data/lib/capistrano/ext/ubuntu-machine/postfix.rb +7 -0
  14. data/lib/capistrano/ext/ubuntu-machine/ruby.rb +87 -0
  15. data/lib/capistrano/ext/ubuntu-machine/ssh.rb +64 -0
  16. data/lib/capistrano/ext/ubuntu-machine/templates/apache2.erb +7 -0
  17. data/lib/capistrano/ext/ubuntu-machine/templates/deflate.conf.erb +3 -0
  18. data/lib/capistrano/ext/ubuntu-machine/templates/freetds.conf.erb +4 -0
  19. data/lib/capistrano/ext/ubuntu-machine/templates/iptables.erb +46 -0
  20. data/lib/capistrano/ext/ubuntu-machine/templates/my.cnf.erb +3 -0
  21. data/lib/capistrano/ext/ubuntu-machine/templates/new_db.erb +5 -0
  22. data/lib/capistrano/ext/ubuntu-machine/templates/odbc.ini.erb +6 -0
  23. data/lib/capistrano/ext/ubuntu-machine/templates/odbcinst.ini.erb +7 -0
  24. data/lib/capistrano/ext/ubuntu-machine/templates/passenger.conf.erb +2 -0
  25. data/lib/capistrano/ext/ubuntu-machine/templates/passenger.load.erb +1 -0
  26. data/lib/capistrano/ext/ubuntu-machine/templates/sshd_config.erb +80 -0
  27. data/lib/capistrano/ext/ubuntu-machine/templates/vhost.erb +17 -0
  28. data/lib/capistrano/ext/ubuntu-machine/utils.rb +40 -0
  29. data/lib/capistrano/ext/ubuntu-machine.rb +22 -0
  30. metadata +92 -0
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2008 Thomas Balthazar
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README ADDED
@@ -0,0 +1,9 @@
1
+ = View doc here :
2
+ http://suitmymind.github.com/ubuntu-machine
3
+
4
+ = Changelog here :
5
+ http://suitmymind.github.com/ubuntu-machine/#changelog
6
+
7
+ = Contributors :
8
+ - Joseph Glenn
9
+ - Ahume
@@ -0,0 +1,126 @@
1
+ namespace :apache do
2
+ desc "Install Apache"
3
+ task :install, :roles => :web do
4
+ sudo "apt-get install apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1 ssl-cert -y"
5
+
6
+ run "cat /etc/apache2/apache2.conf > ~/apache2.conf.tmp"
7
+ put render("apache2", binding), "apache2.append.conf.tmp"
8
+ run "cat apache2.append.conf.tmp >> ~/apache2.conf.tmp"
9
+ sudo "mv ~/apache2.conf.tmp /etc/apache2/apache2.conf"
10
+ run "rm apache2.append.conf.tmp"
11
+ restart
12
+ end
13
+
14
+ desc "Restarts Apache webserver"
15
+ task :restart, :roles => :web do
16
+ sudo "/etc/init.d/apache2 restart"
17
+ end
18
+
19
+ desc "Starts Apache webserver"
20
+ task :start, :roles => :web do
21
+ sudo "/etc/init.d/apache2 start"
22
+ end
23
+
24
+ desc "Stops Apache webserver"
25
+ task :stop, :roles => :web do
26
+ sudo "/etc/init.d/apache2 stop"
27
+ end
28
+
29
+ desc "Reload Apache webserver"
30
+ task :reload, :roles => :web do
31
+ sudo "/etc/init.d/apache2 reload"
32
+ end
33
+
34
+ desc "Force reload Apache webserver"
35
+ task :force_reload, :roles => :web do
36
+ sudo "/etc/init.d/apache2 force-reload"
37
+ end
38
+
39
+ desc "List enabled Apache sites"
40
+ task :enabled_sites, :roles => :web do
41
+ run "ls /etc/apache2/sites-enabled"
42
+ end
43
+
44
+ desc "List available Apache sites"
45
+ task :available_sites, :roles => :web do
46
+ run "ls /etc/apache2/sites-available"
47
+ end
48
+
49
+ desc "List enabled Apache modules"
50
+ task :enabled_modules, :roles => :web do
51
+ run "ls /etc/apache2/mods-enabled"
52
+ end
53
+
54
+ desc "List available Apache modules"
55
+ task :available_modules, :roles => :web do
56
+ run "ls /etc/apache2/mods-available"
57
+ end
58
+
59
+ desc "Disable Apache site"
60
+ task :disable_site, :roles => :web do
61
+ site = Capistrano::CLI.ui.ask("Which site should we disable: ")
62
+ sudo "sudo a2dissite #{site}"
63
+ reload
64
+ end
65
+
66
+ desc "Enable Apache site"
67
+ task :enable_site, :roles => :web do
68
+ site = Capistrano::CLI.ui.ask("Which site should we enable: ")
69
+ sudo "sudo a2ensite #{site}"
70
+ reload
71
+ end
72
+
73
+ desc "Disable Apache module"
74
+ task :disable_module, :roles => :web do
75
+ mod = Capistrano::CLI.ui.ask("Which module should we disable: ")
76
+ sudo "sudo a2dismod #{mod}"
77
+ force_reload
78
+ end
79
+
80
+ desc "Enable Apache module"
81
+ task :enable_module, :roles => :web do
82
+ mod = Capistrano::CLI.ui.ask("Which module should we enable: ")
83
+ sudo "sudo a2enmod #{mod}"
84
+ force_reload
85
+ end
86
+
87
+ desc "Create a new website"
88
+ task :create_website, :roles => :web do
89
+ server_admin = Capistrano::CLI.ui.ask("Server admin (#{default_server_admin}) if blank : ")
90
+ server_admin = default_server_admin if server_admin.empty?
91
+ server_name = Capistrano::CLI.ui.ask("Server name : ")
92
+ server_alias = Capistrano::CLI.ui.ask("Server alias : ")
93
+ directory_index = Capistrano::CLI.ui.ask("Directory index (#{default_directory_index}) if blank : ")
94
+ directory_index = default_directory_index if directory_index.empty?
95
+
96
+ # Website skeleton
97
+ %w{backup cap cgi-bin logs private public tmp}.each { |d|
98
+ run "mkdir -p /home/#{user}/websites/#{server_name}/#{d}"
99
+ }
100
+
101
+ put render("vhost", binding), server_name
102
+ sudo "mv #{server_name} /etc/apache2/sites-available/#{server_name}"
103
+ sudo "sudo a2ensite #{server_name}"
104
+ reload
105
+ end
106
+
107
+ desc "Delete a website (! delete all file and folders)"
108
+ task :delete_website, :roles => :web do
109
+ server_name = Capistrano::CLI.ui.ask("Server name you want to delete : ")
110
+ sure = Capistrano::CLI.ui.ask("Are you sure you want to delete #{server_name} and all its files? (y/n) : ")
111
+ if sure=="y"
112
+ sudo "sudo a2dissite #{server_name}"
113
+ sudo "rm /etc/apache2/sites-available/#{server_name}"
114
+ sudo "rm -Rf /home/#{user}/websites/#{server_name}"
115
+ reload
116
+ end
117
+ end
118
+
119
+ desc "Fix the mod_deflate configuration and activate it"
120
+ task :mod_deflate, :roles => :web do
121
+ put render("deflate.conf", binding), "deflate.conf"
122
+ sudo "mv deflate.conf /etc/apache2/mods-available/deflate.conf"
123
+ sudo "a2enmod deflate"
124
+ force_reload
125
+ end
126
+ end
@@ -0,0 +1,96 @@
1
+ namespace :aptitude do
2
+ desc <<-DESC
3
+ Updates your software package list. This will not "upgrade" any of your \
4
+ installed software.
5
+
6
+ See "Update" section on \
7
+ http://articles.slicehost.com/2007/11/6/ubuntu-gutsy-setup-page-2
8
+ DESC
9
+ task :update, :roles => :app do
10
+ sudo "apt-get update"
11
+ end
12
+
13
+ desc "Alias for 'aptitude:safe_upgrade'"
14
+ task :upgrade, :roles => :app do
15
+ safe_upgrade
16
+ end
17
+
18
+ desc <<-DESC
19
+ Upgrades your installed software packages.
20
+
21
+ From the aptitude man pages:
22
+
23
+ This command will upgrade as many packages as it can upgrade without \
24
+ removing existing packages or installing new ones.
25
+
26
+ It is sometimes necessary to remove or install one package in order to \
27
+ upgrade another; this command is not able to upgrade packages in such \
28
+ situations. Use the full-upgrade to upgrade those packages as well.
29
+
30
+ See "Upgrade" section on \
31
+ http://articles.slicehost.com/2007/11/6/ubuntu-gutsy-setup-page-2
32
+ DESC
33
+ task :safe_upgrade, :roles => :app do
34
+
35
+ # to prevent interactive mode to block the install script
36
+ sudo 'aptitude hold console-setup -y'
37
+
38
+ # By default, OVH replace the original /etc/issue. The safe_upgrade will then ask \
39
+ # if it must overwrite this file, since it has been modified by OVH. \
40
+ # data =~ /^\*\*\*\sissue/ looks for the interactive prompt to enable you to answer
41
+ sudo_and_watch_prompt("aptitude safe-upgrade -y", /^\*\*\*\sissue/)
42
+ end
43
+
44
+ desc <<-DESC
45
+ Upgrades your installed software packages.
46
+
47
+ From the aptitude man pages:
48
+
49
+ Like safe-upgrade, this command will attempt to upgrade packages, but it is \
50
+ more aggressive about solving dependency problems: it will install and \
51
+ remove packages until all dependencies are satisfied. Because of the nature \
52
+ of this command, it is possible that it will do undesirable things, and so \
53
+ you should be careful when using it.
54
+
55
+ See "Upgrade" section on \
56
+ http://articles.slicehost.com/2007/11/6/ubuntu-gutsy-setup-page-2
57
+ DESC
58
+ task :full_upgrade, :roles => :app do
59
+ sudo "aptitude full-upgrade -y"
60
+ end
61
+
62
+ desc <<-DESC
63
+ Installs a software package via aptitude. You will be prompted for the \
64
+ package name after running this commmand.
65
+ DESC
66
+ task :install, :roles => :app do
67
+ package = Capistrano::CLI.ui.ask("Which package should we install: ")
68
+ sudo "apt-get install #{package}"
69
+ end
70
+
71
+ desc <<-DESC
72
+ Uninstalls a software package via aptitude. You will be prompted for the \
73
+ package name after running this commmand.
74
+ DESC
75
+ task :uninstall, :roles => :app do
76
+ package = Capistrano::CLI.ui.ask("Which package should we uninstall: ")
77
+ sudo "apt-get remove #{package}"
78
+ end
79
+
80
+ desc <<-DESC
81
+ Updates software packages and creates "a solid base for the 'meat' of the \
82
+ server". This task should be run only once when you are first setting up your \
83
+ new slice.
84
+
85
+ See "Update", "locales", "Upgrade" and "build essentials" sections on \
86
+ http://articles.slicehost.com/2007/11/6/ubuntu-gutsy-setup-page-2
87
+ DESC
88
+ task :setup, :roles => :app do
89
+ update
90
+ sudo "locale-gen en_GB.UTF-8"
91
+ sudo "/usr/sbin/update-locale LANG=en_GB.UTF-8"
92
+ safe_upgrade
93
+ full_upgrade
94
+ sudo "apt-get install -y build-essential"
95
+ end
96
+ end
@@ -0,0 +1,39 @@
1
+ namespace :gems do
2
+ desc "Install RubyGems"
3
+ task :install_rubygems, :roles => :app do
4
+ run "wget http://rubyforge.org/frs/download.php/45905/rubygems-#{rubygem_version}.tgz"
5
+ run "tar xvzf rubygems-#{rubygem_version}.tgz"
6
+ run "cd rubygems-#{rubygem_version} && sudo ruby setup.rb"
7
+ sudo "ln -s /usr/bin/gem1.8 /usr/bin/gem"
8
+ sudo "gem update"
9
+ sudo "gem update --system"
10
+ run "rm -Rf rubygems-#{rubygem_version}*"
11
+ end
12
+
13
+ desc "List gems on remote server"
14
+ task :list, :roles => :app do
15
+ stream "gem list"
16
+ end
17
+
18
+ desc "Update gems on remote server"
19
+ task :update, :roles => :app do
20
+ sudo "gem update"
21
+ end
22
+
23
+ desc "Update gem system on remote server"
24
+ task :update_system, :roles => :app do
25
+ sudo "gem update --system"
26
+ end
27
+
28
+ desc "Install a gem on the remote server"
29
+ task :install, :roles => :app do
30
+ name = Capistrano::CLI.ui.ask("Which gem should we install: ")
31
+ sudo "gem install #{name}"
32
+ end
33
+
34
+ desc "Uninstall a gem on the remote server"
35
+ task :uninstall, :roles => :app do
36
+ name = Capistrano::CLI.ui.ask("Which gem should we uninstall: ")
37
+ sudo "gem uninstall #{name}"
38
+ end
39
+ end
@@ -0,0 +1,15 @@
1
+ namespace :git do
2
+ desc "Install git"
3
+ task :install, :roles => :app do
4
+ sudo "sudo apt-get build-dep git-core -y"
5
+ run "wget http://kernel.org/pub/software/scm/git/#{git_version}.tar.gz"
6
+ run "tar xvzf #{git_version}.tar.gz"
7
+ run "cd #{git_version}"
8
+ run "cd #{git_version} && ./configure"
9
+ run "cd #{git_version} && make"
10
+ run "cd #{git_version} && sudo make install"
11
+ run "rm #{git_version}.tar.gz"
12
+ run "rm -Rf #{git_version}"
13
+ end
14
+
15
+ end
@@ -0,0 +1,36 @@
1
+ require 'erb'
2
+
3
+ # render a template
4
+ def render(file, binding)
5
+ template = File.read("#{File.dirname(__FILE__)}/templates/#{file}.erb")
6
+ result = ERB.new(template).result(binding)
7
+ end
8
+
9
+ # allows to sudo a command which require the user input via the prompt
10
+ def sudo_and_watch_prompt(cmd, regex_to_watch)
11
+ sudo cmd, :pty => true do |ch, stream, data|
12
+ watch_prompt(ch, stream, data, regex_to_watch)
13
+ end
14
+ end
15
+
16
+ # allows to run a command which require the user input via the prompt
17
+ def run_and_watch_prompt(cmd, regex_to_watch)
18
+ run cmd, :pty => true do |ch, stream, data|
19
+ watch_prompt(ch, stream, data, regex_to_watch)
20
+ end
21
+ end
22
+
23
+ # utility method called by sudo_and_watch_prompt and run_and_watch_prompt
24
+ def watch_prompt(ch, stream, data, regex_to_watch)
25
+
26
+ # the regex can be an array or a single regex -> we force it to always be an array with [*xx]
27
+ if [*regex_to_watch].find { |regex| data =~ regex}
28
+ # prompt, and then send the response to the remote process
29
+ ch.send_data(Capistrano::CLI.password_prompt(data) + "\n")
30
+ else
31
+ # use the default handler for all other text
32
+ Capistrano::Configuration.default_io_proc.call(ch, stream, data)
33
+ end
34
+ end
35
+
36
+
@@ -0,0 +1,20 @@
1
+ namespace :iptables do
2
+ desc <<-DESC
3
+ Harden iptables configuration. Only allows ssh, http, and https connections and packets from SAN.
4
+
5
+ See "iptables" section on \
6
+ http://articles.slicehost.com/2008/4/25/ubuntu-hardy-setup-page-1
7
+ DESC
8
+ task :configure, :roles => :gateway do
9
+ sudo "apt-get install iptables -y"
10
+ put render("iptables", binding), "iptables.up.rules"
11
+ sudo "mv iptables.up.rules /etc/iptables.up.rules"
12
+
13
+ sudo "iptables-restore < /etc/iptables.up.rules"
14
+
15
+ # ensure that the iptables rules are applied when we reboot the server
16
+ run "cat /etc/network/interfaces > ~/tmp_interfaces"
17
+ run "echo 'pre-up iptables-restore < /etc/iptables.up.rules' >> ~/tmp_interfaces"
18
+ sudo "mv ~/tmp_interfaces /etc/network/interfaces"
19
+ end
20
+ end
@@ -0,0 +1,48 @@
1
+ namespace :machine do
2
+
3
+ desc "Change the root password, create a new user and allow him to sudo and to SSH"
4
+ task :initial_setup do
5
+ set :user_to_create , user
6
+ set :user, 'root'
7
+
8
+ run_and_watch_prompt("passwd", [/Enter new UNIX password/, /Retype new UNIX password:/])
9
+
10
+ run_and_watch_prompt("adduser #{user_to_create}", [/Enter new UNIX password/, /Retype new UNIX password:/, /\[\]\:/, /\[y\/N\]/i])
11
+
12
+ # force the non-interactive mode
13
+ run "cat /etc/environment > ~/environment.tmp"
14
+ run 'echo DEBIAN_FRONTEND=noninteractive >> ~/environment.tmp'
15
+ sudo 'mv ~/environment.tmp /etc/environment'
16
+ # prevent this env variable to be skipped by sudo
17
+ run "echo 'Defaults env_keep = \"DEBIAN_FRONTEND\"' >> /etc/sudoers"
18
+
19
+ run "echo '#{user_to_create} ALL=(ALL)ALL' >> /etc/sudoers"
20
+ run "echo 'AllowUsers #{user_to_create}' >> /etc/ssh/sshd_config"
21
+ run "/etc/init.d/ssh reload"
22
+ end
23
+
24
+ task :configure do
25
+ ssh.setup
26
+ iptables.configure
27
+ aptitude.setup
28
+ end
29
+
30
+ task :install_dev_tools do
31
+ mysql.install
32
+ apache.install
33
+ ruby.install
34
+ postfix.install
35
+ gems.install_rubygems
36
+ ruby.install_enterprise
37
+ ruby.install_passenger
38
+ git.install
39
+ php.install
40
+ end
41
+
42
+ desc = "Ask for a user and change his password"
43
+ task :change_password do
44
+ user_to_update = Capistrano::CLI.ui.ask("Name of the user whose you want to update the password : ")
45
+
46
+ run_and_watch_prompt("passwd #{user_to_update}", [/Enter new UNIX password/, /Retype new UNIX password:/])
47
+ end
48
+ end
@@ -0,0 +1,64 @@
1
+ #TODO : change root password
2
+
3
+ namespace :mysql do
4
+ desc "Restarts MySQL database server"
5
+ task :restart, :roles => :db do
6
+ sudo "/etc/init.d/mysql restart"
7
+ end
8
+
9
+ desc "Starts MySQL database server"
10
+ task :start, :roles => :db do
11
+ sudo "/etc/init.d/mysql start"
12
+ end
13
+
14
+ desc "Stops MySQL database server"
15
+ task :stop, :roles => :db do
16
+ sudo "/etc/init.d/mysql stop"
17
+ end
18
+
19
+ desc "Export MySQL database"
20
+ task :export, :roles => :db do
21
+ database = Capistrano::CLI.ui.ask("Which database should we export: ")
22
+ sudo_and_watch_prompt("mysqldump -u root -p #{database} > #{database}.sql", /Enter\spassword/)
23
+ download "#{database}.sql", "#{default_local_files_path}/database.sql"
24
+ run "rm #{database}.sql"
25
+ end
26
+
27
+ desc "Create a new MySQL database, a new MySQL user, and load a local MySQL dump file"
28
+ task :create_database, :roles => :db do
29
+ db_root_password = Capistrano::CLI.ui.ask("MySQL root password : ")
30
+ db_name = Capistrano::CLI.ui.ask("Which database should we create: ")
31
+ db_username = Capistrano::CLI.ui.ask("Which database username should we create: ")
32
+ db_user_password = Capistrano::CLI.ui.ask("Choose a password for the new database username: ")
33
+ file_to_upload = Capistrano::CLI.ui.ask("Do you want to import a database file? (y/n) : ")
34
+ if file_to_upload == "y"
35
+ file = Capistrano::CLI.ui.ask("Which database file should we import (it must be located in #{default_local_files_path}): ")
36
+ upload "#{default_local_files_path}/#{file}", "#{file}"
37
+ end
38
+ create_db_tmp_file = "create_#{db_name}.sql"
39
+ put render("new_db", binding), create_db_tmp_file
40
+ run "mysql -u root -p#{db_root_password} < #{create_db_tmp_file}"
41
+ if file_to_upload == "y"
42
+ run "mysql -u root -p#{db_root_password} #{db_name} < #{file}"
43
+ run "rm #{file}"
44
+ end
45
+ run "rm #{create_db_tmp_file}"
46
+ end
47
+
48
+ desc "Install MySQL"
49
+ task :install, :roles => :db do
50
+ db_root_password = Capistrano::CLI.ui.ask("Choose a MySQL root password : ")
51
+
52
+ sudo "apt-get install -y mysql-server mysql-client libmysqlclient15-dev"
53
+ run "mysqladmin -u root password #{db_root_password}"
54
+ end
55
+
56
+ desc "Ask for a MySQL user and change his password"
57
+ task :change_password, :roles => :db do
58
+ user_to_update = Capistrano::CLI.ui.ask("Name of the MySQL user whose you want to update the password : ")
59
+ old_password = Capistrano::CLI.ui.ask("Old password for #{user_to_update} : ")
60
+ new_password = Capistrano::CLI.ui.ask("New password for #{user_to_update} : ")
61
+
62
+ run "mysqladmin -u #{user_to_update} -p#{old_password} password \"#{new_password}\""
63
+ end
64
+ end
@@ -0,0 +1,46 @@
1
+ namespace :odbc do
2
+ desc "Install ODBC/FreeTDS"
3
+ task :install, :roles => :app do
4
+ run "cp /etc/profile ~/profile.tmp"
5
+ run "echo 'export ODBCINI=/etc/odbc.ini' >> ~/profile.tmp"
6
+ run "echo 'export ODBCSYSINI=/etc' >> ~/profile.tmp"
7
+ run "echo 'export FREETDSCONF=/etc/freetds/freetds.conf' >> ~/profile.tmp"
8
+ sudo "mv ~/profile.tmp /etc/profile"
9
+
10
+ freetds = "freetds-0.82"
11
+ sudo "sudo apt-get install unixodbc unixodbc-dev tdsodbc -y"
12
+ run "wget -nv ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/#{freetds}.tar.gz"
13
+ run "tar xvzf #{freetds}.tar.gz"
14
+ run "cd #{freetds}"
15
+ run "cd #{freetds} && ./configure"
16
+ run "cd #{freetds} && make"
17
+ run "cd #{freetds} && sudo make install"
18
+ run "rm #{freetds}.tar.gz"
19
+ run "rm -Rf #{freetds}"
20
+ end
21
+
22
+ desc "Install the ruby ODBC library"
23
+ task :install_rubyodbc, :roles => :app do
24
+ rubyodbc = "ruby-odbc-0.9996"
25
+ run "wget -nv http://www.ch-werner.de/rubyodbc/#{rubyodbc}.tar.gz"
26
+ run "tar xvzf #{rubyodbc}.tar.gz"
27
+ run "cd #{rubyodbc}"
28
+ run "cd #{rubyodbc} && ruby extconf.rb"
29
+ run "cd #{rubyodbc} && make"
30
+ run "cd #{rubyodbc} && sudo make install"
31
+ run "rm #{rubyodbc}.tar.gz"
32
+ run "rm -Rf #{rubyodbc}"
33
+ end
34
+
35
+ desc "Install FreeTDS/ODBC configuration files"
36
+ task :config_files, :roles => :app do
37
+ put render("odbc.ini", binding), "odbc.ini"
38
+ sudo "mv odbc.ini /etc/odbc.ini"
39
+ put render("odbcinst.ini", binding), "odbcinst.ini"
40
+ sudo "mv odbcinst.ini /etc/odbcinst.ini"
41
+ put render("freetds.conf", binding), "more_freetds.conf"
42
+ run "cat /etc/freetds/freetds.conf more_freetds.conf > freetds.conf"
43
+ sudo "mv freetds.conf /etc/freetds/freetds.conf"
44
+ run "rm more_freetds.conf"
45
+ end
46
+ end
@@ -0,0 +1,8 @@
1
+ namespace :php do
2
+ desc "Install PHP 5"
3
+ task :install, :roles => :app do
4
+ sudo "apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-imagick php5-mcrypt php5-memcache php5-mhash php5-mysql php5-pspell php5-snmp php5-sqlite php5-xmlrpc php5-xsl -y"
5
+ sudo "/etc/init.d/apache2 reload"
6
+ end
7
+
8
+ end
@@ -0,0 +1,7 @@
1
+ namespace :postfix do
2
+ desc "Install postfix"
3
+ task :install, :roles => :app do
4
+ sudo "sudo apt-get install postfix -y"
5
+ end
6
+
7
+ end
@@ -0,0 +1,87 @@
1
+ require 'net/http'
2
+
3
+ namespace :ruby do
4
+ desc "Install Ruby 1.8"
5
+ task :install, :roles => :app do
6
+ sudo "apt-get install -y ruby1.8-dev ruby1.8 ri1.8 rdoc1.8 irb1.8 libreadline-ruby1.8 libruby1.8 libopenssl-ruby sqlite3 libsqlite3-ruby1.8"
7
+ sudo "apt-get install -y libmysql-ruby1.8"
8
+
9
+ sudo "ln -s /usr/bin/ruby1.8 /usr/bin/ruby"
10
+ sudo "ln -s /usr/bin/ri1.8 /usr/bin/ri"
11
+ sudo "ln -s /usr/bin/rdoc1.8 /usr/bin/rdoc"
12
+ sudo "ln -s /usr/bin/irb1.8 /usr/bin/irb"
13
+ end
14
+
15
+
16
+ set :ruby_enterprise_url do
17
+ path = Net::HTTP.get('www.rubyenterpriseedition.com', '/download.html').scan(/<a href="\/ruby-enterprise-.*\.tar\.gz/).first
18
+ path.gsub!('<a href="','http://www.rubyenterpriseedition.com')
19
+ path
20
+ end
21
+
22
+ set :ruby_enterprise_version do
23
+ "#{ruby_enterprise_url[/(ruby-enterprise.*)(.tar.gz)/, 1]}"
24
+ end
25
+
26
+ set :ruby_enterprise_path_prefix do
27
+ '/opt'
28
+ end
29
+
30
+ set :passenger_version do
31
+ `gem list passenger$ -r`.gsub(/[\n|\s|passenger|(|)]/,"")
32
+ end
33
+
34
+
35
+ desc "Install Ruby Enterpise Edition"
36
+ task :install_enterprise, :roles => :app do
37
+ sudo "apt-get install libssl-dev -y"
38
+ sudo "apt-get install libreadline5-dev -y"
39
+
40
+ run "test ! -d #{ruby_enterprise_path_prefix}/#{ruby_enterprise_version}"
41
+ run "wget #{ruby_enterprise_url}"
42
+ run "tar xzvf #{ruby_enterprise_version}.tar.gz"
43
+ run "rm #{ruby_enterprise_version}.tar.gz"
44
+ sudo "./#{ruby_enterprise_version}/installer --auto #{ruby_enterprise_path_prefix}/#{ruby_enterprise_version}"
45
+ sudo "rm -rf #{ruby_enterprise_version}/"
46
+
47
+ # create a "permanent" link to the current REE install
48
+ sudo "ln -s #{ruby_enterprise_path_prefix}/#{ruby_enterprise_version} #{ruby_enterprise_path_prefix}/ruby-enterprise"
49
+
50
+ # add REE bin to the path
51
+ run "cat /etc/environment > ~/environment.tmp"
52
+ run 'echo PATH="%s/ruby-enterprise/bin:$PATH" >> ~/environment.tmp' % ruby_enterprise_path_prefix
53
+ sudo 'mv ~/environment.tmp /etc/environment'
54
+ end
55
+
56
+ desc "Install Phusion Passenger"
57
+ task :install_passenger, :roles => :app do
58
+ # rake 0.8.5 needs latest version of rdoc
59
+ sudo "gem install rdoc"
60
+
61
+ # because passenger-install-apache2-module do not find the rake installed by REE
62
+ sudo "gem install rake"
63
+
64
+ sudo "apt-get install apache2-mpm-prefork -y"
65
+ sudo "apt-get install libapr1-dev -y"
66
+ sudo "apt-get install apache2-prefork-dev -y"
67
+
68
+ # call the upgrade_passenger task
69
+ upgrade_passenger
70
+ end
71
+
72
+ desc "Upgrade Phusion Passenger"
73
+ task :upgrade_passenger, :roles => :app do
74
+ sudo "#{ruby_enterprise_path_prefix}/#{ruby_enterprise_version}/bin/ruby #{ruby_enterprise_path_prefix}/#{ruby_enterprise_version}/bin/gem install passenger"
75
+ run "sudo #{ruby_enterprise_path_prefix}/#{ruby_enterprise_version}/bin/ruby #{ruby_enterprise_path_prefix}/#{ruby_enterprise_version}/bin/passenger-install-apache2-module --auto"
76
+
77
+ put render("passenger.load", binding), "/home/#{user}/passenger.load"
78
+ put render("passenger.conf", binding), "/home/#{user}/passenger.conf"
79
+
80
+ sudo "mv /home/#{user}/passenger.load /etc/apache2/mods-available/"
81
+ sudo "mv /home/#{user}/passenger.conf /etc/apache2/mods-available/"
82
+
83
+ sudo "a2enmod passenger"
84
+ apache.force_reload
85
+ end
86
+
87
+ end
@@ -0,0 +1,64 @@
1
+ namespace :ssh do
2
+
3
+ desc <<-DESC
4
+ Setup SSH on the gateway host. Runs `upload_keys`, `install_ovh_ssh_key` AND \
5
+ `configure_sshd` then reloads the SSH service to finalize the changes.
6
+ DESC
7
+ task :setup, :roles => :gateway do
8
+ upload_keys
9
+ configure_sshd
10
+ install_ovh_ssh_key if ["ovh-rps", "ovh-dedie"].include?(hosting_provider)
11
+ reload
12
+ end
13
+
14
+
15
+ desc <<-DESC
16
+ Uploads your local public SSH keys to the server. A .ssh folder is created if \
17
+ one does not already exist. The SSH keys default to the ones set in \
18
+ Capistrano's ssh_options. You can change this by setting ssh_options[:keys] = \
19
+ ["/home/user/.ssh/id_dsa"].
20
+
21
+ See "SSH copy" and "SSH Permissions" sections on \
22
+ http://articles.slicehost.com/2008/4/25/ubuntu-hardy-setup-page-1
23
+ DESC
24
+ task :upload_keys, :roles => :gateway do
25
+ run "mkdir -p ~/.ssh"
26
+ run "chown -R #{user}:#{user} ~/.ssh"
27
+ run "chmod 700 ~/.ssh"
28
+
29
+ authorized_keys = ssh_options[:keys].collect { |key| File.read("#{key}.pub") }.join("\n")
30
+ put authorized_keys, "./.ssh/authorized_keys2", :mode => 0600
31
+ end
32
+
33
+ desc <<-DESC
34
+ Configure SSH daemon with more secure settings recommended by Slicehost. The \
35
+ will be configured to run on the port configured in Capistrano's "ssh_options". \
36
+ This defaults to the standard SSH port 22. You can change this by setting \
37
+ ssh_options[:port] = 3000. Note that this change will not take affect until \
38
+ reload the SSH service with `cap ssh:reload`.
39
+
40
+ See "SSH config" section on \
41
+ http://articles.slicehost.com/2008/4/25/ubuntu-hardy-setup-page-1
42
+ DESC
43
+ task :configure_sshd, :roles => :gateway do
44
+ put render("sshd_config", binding), "sshd_config"
45
+ sudo "mv sshd_config /etc/ssh/sshd_config"
46
+ end
47
+
48
+ desc <<-DESC
49
+ Install OVH SSH Keys
50
+ DESC
51
+ task :install_ovh_ssh_key, :roles => :gateway do
52
+ sudo "wget ftp://ftp.ovh.net/made-in-ovh/cle-ssh-public/installer_la_cle.sh -O installer_la_cle.sh"
53
+ sudo "sh installer_la_cle.sh"
54
+ end
55
+
56
+ desc <<-DESC
57
+ Reload SSH service.
58
+ DESC
59
+ task :reload, :roles => :gateway do
60
+ sudo "/etc/init.d/ssh reload"
61
+ end
62
+
63
+
64
+ end
@@ -0,0 +1,7 @@
1
+ NameVirtualHost *:80
2
+
3
+ <IfModule mod_ssl.c>
4
+ NameVirtualHost *:443
5
+ </IfModule>
6
+
7
+ ServerName <%= server_name %>
@@ -0,0 +1,3 @@
1
+ <IfModule mod_deflate.c>
2
+ AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml
3
+ </IfModule>
@@ -0,0 +1,4 @@
1
+ [<%= odbc_sourcename %>]
2
+ host = <%= odbc_host %>
3
+ port = 1433
4
+ tds version = 7.0
@@ -0,0 +1,46 @@
1
+ *filter
2
+
3
+
4
+ # Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
5
+ -A INPUT -i lo -j ACCEPT
6
+ -A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT
7
+
8
+
9
+ # Accepts all established inbound connections
10
+ -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
11
+
12
+
13
+ # Allows all outbound traffic
14
+ # You can modify this to only allow certain traffic
15
+ -A OUTPUT -j ACCEPT
16
+
17
+
18
+ # Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
19
+ -A INPUT -p tcp --dport 80 -j ACCEPT
20
+ -A INPUT -p tcp --dport 443 -j ACCEPT
21
+
22
+
23
+ # Allows SSH connections
24
+ #
25
+ # THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
26
+ #
27
+ -A INPUT -p tcp -m state --state NEW --dport <%= ssh_options[:port] %> -j ACCEPT
28
+
29
+ <% if hosting_provider=="ovh-rps" %>
30
+ # allow packets from SAN, only for ovh-rps
31
+ -A OUTPUT -p tcp --dport 3260 -j ACCEPT
32
+ <% end %>
33
+
34
+ # Allow ping
35
+ -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
36
+
37
+
38
+ # log iptables denied calls
39
+ -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
40
+
41
+
42
+ # Reject all other inbound - default deny unless explicitly allowed policy
43
+ -A INPUT -j REJECT
44
+ -A FORWARD -j REJECT
45
+
46
+ COMMIT
@@ -0,0 +1,3 @@
1
+ [mysqladmin]
2
+ user = root
3
+ password = will-be-changed-so-dont-mind-it
@@ -0,0 +1,5 @@
1
+ CREATE DATABASE `<%= db_name %>` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
2
+ CREATE USER '<%= db_username %>'@'localhost' IDENTIFIED BY '<%= db_user_password %>';
3
+ GRANT USAGE ON * . * TO '<%= db_username %>'@'localhost' IDENTIFIED BY '<%= db_user_password %>' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
4
+ GRANT ALL PRIVILEGES ON `<%= db_name %>` . * TO '<%= db_username %>'@'localhost' WITH GRANT OPTION ;
5
+ FLUSH PRIVILEGES ;
@@ -0,0 +1,6 @@
1
+ [<%= odbc_sourcename %>SERVER]
2
+ Driver = FreeTDS
3
+ Description = ODBC Connection via FreeTDS
4
+ Trace = No
5
+ Servername = <%= odbc_sourcename %>
6
+ Database = <%= odbc_database %>
@@ -0,0 +1,7 @@
1
+ [FreeTDS]
2
+ Description = TDS driver (Sybase/MS SQL)
3
+ Driver = /usr/lib/odbc/libtdsodbc.so
4
+ Setup = /usr/lib/odbc/libtdsS.so
5
+ CPTimeout =
6
+ CPReuse =
7
+ FileUsage = 1
@@ -0,0 +1,2 @@
1
+ PassengerRoot <%= ruby_enterprise_path_prefix %>/<%= ruby_enterprise_version %>/lib/ruby/gems/1.8/gems/passenger-<%= passenger_version %>
2
+ PassengerRuby <%= ruby_enterprise_path_prefix %>/<%= ruby_enterprise_version %>/bin/ruby
@@ -0,0 +1 @@
1
+ LoadModule passenger_module <%= ruby_enterprise_path_prefix %>/<%= ruby_enterprise_version %>/lib/ruby/gems/1.8/gems/passenger-<%= passenger_version %>/ext/apache2/mod_passenger.so
@@ -0,0 +1,80 @@
1
+ # Package generated configuration file
2
+ # See the sshd(8) manpage for details
3
+
4
+ # What ports, IPs and protocols we listen for
5
+ Port <%= ssh_options[:port] %>
6
+ # Use these options to restrict which interfaces/protocols sshd will bind to
7
+ #ListenAddress ::
8
+ #ListenAddress 0.0.0.0
9
+ Protocol 2
10
+ # HostKeys for protocol version 2
11
+ HostKey /etc/ssh/ssh_host_rsa_key
12
+ HostKey /etc/ssh/ssh_host_dsa_key
13
+ #Privilege Separation is turned on for security
14
+ UsePrivilegeSeparation yes
15
+
16
+ # Lifetime and size of ephemeral version 1 server key
17
+ KeyRegenerationInterval 3600
18
+ ServerKeyBits 768
19
+
20
+ # Logging
21
+ SyslogFacility AUTH
22
+ LogLevel INFO
23
+
24
+ # Authentication:
25
+ LoginGraceTime 120
26
+ PermitRootLogin yes # allow it to enable OVH to connect to your server
27
+ StrictModes yes
28
+
29
+ RSAAuthentication yes
30
+ PubkeyAuthentication yes
31
+ AuthorizedKeysFile .ssh/authorized_keys2
32
+ UsePam yes
33
+
34
+ # Don't read the user's ~/.rhosts and ~/.shosts files
35
+ IgnoreRhosts yes
36
+ # For this to work you will also need host keys in /etc/ssh_known_hosts
37
+ RhostsRSAAuthentication no
38
+ # similar for protocol version 2
39
+ HostbasedAuthentication no
40
+ # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
41
+ #IgnoreUserKnownHosts yes
42
+
43
+ # To enable empty passwords, change to yes (NOT RECOMMENDED)
44
+ PermitEmptyPasswords no
45
+
46
+ # Change to yes to enable challenge-response passwords (beware issues with
47
+ # some PAM modules and threads)
48
+ ChallengeResponseAuthentication no
49
+
50
+ # Change to no to disable tunnelled clear text passwords
51
+ PasswordAuthentication no
52
+
53
+ # Kerberos options
54
+ #KerberosAuthentication no
55
+ #KerberosGetAFSToken no
56
+ #KerberosOrLocalPasswd yes
57
+ #KerberosTicketCleanup yes
58
+
59
+ # GSSAPI options
60
+ GSSAPIAuthentication no
61
+ #GSSAPICleanupCredentials yes
62
+
63
+ X11Forwarding no
64
+ X11DisplayOffset 10
65
+ PrintMotd no
66
+ PrintLastLog yes
67
+ KeepAlive yes
68
+ #UseLogin no
69
+
70
+ #MaxStartups 10:30:60
71
+ #Banner /etc/issue.net
72
+
73
+ # Allow client to pass locale environment variables
74
+ AcceptEnv LANG LC_*
75
+
76
+ Subsystem sftp /usr/lib/openssh/sftp-server
77
+
78
+ UseDNS no
79
+
80
+ AllowUsers <%= user %>
@@ -0,0 +1,17 @@
1
+ <VirtualHost *:80>
2
+
3
+ # Admin email, Server Name (domain name) and any aliases
4
+ ServerAdmin <%= server_admin %>
5
+ ServerName <%= server_name %>
6
+ ServerAlias <%= server_alias %>
7
+
8
+ # Index file and Document Root (where the public files are located)
9
+ DirectoryIndex <%= directory_index %>
10
+ DocumentRoot /home/<%= user %>/websites/<%= server_name %>/public
11
+
12
+ # Custom log file locations
13
+ LogLevel warn
14
+ ErrorLog /home/<%= user %>/websites/<%= server_name %>/logs/error.log
15
+ CustomLog /home/<%= user %>/websites/<%= server_name %>/logs/access.log combined
16
+
17
+ </VirtualHost>
@@ -0,0 +1,40 @@
1
+ namespace :utils do
2
+
3
+ desc "Reboot the system."
4
+ task :reboot, :roles => :gateway do
5
+ sure = Capistrano::CLI.ui.ask("Are you sure you want to reboot now? (y/n) : ")
6
+ sudo "reboot" if sure=="y"
7
+ end
8
+
9
+ desc "Force a reboot of the system."
10
+ task :force_reboot, :roles => :gateway do
11
+ sudo "reboot"
12
+ end
13
+
14
+ desc "Show the amount of free disk space."
15
+ task :disk_space, :roles => :gateway do
16
+ run "df -h /"
17
+ end
18
+
19
+ desc "Display amount of free and used memory in the system."
20
+ task :free, :roles => :gateway do
21
+ run "free -m"
22
+ end
23
+
24
+ desc "Display passenger status information."
25
+ task :passenger_status, :roles => :gateway do
26
+ sudo "#{ruby_enterprise_path_prefix}/ruby-enterprise/bin/passenger-status"
27
+ end
28
+
29
+ desc "Display passenger memory usage information."
30
+ task :passenger_memory, :roles => :gateway do
31
+ sudo "#{ruby_enterprise_path_prefix}/ruby-enterprise/bin/passenger-memory-stats"
32
+ end
33
+
34
+ desc "Activate Phusion Passenger Enterprise Edition."
35
+ task :passenger_enterprise, :roles => :gateway do
36
+
37
+ sudo_and_watch_prompt("#{ruby_enterprise_path_prefix}/ruby-enterprise/bin/passenger-make-enterprisey", [/Key\:/, /again\:/])
38
+ end
39
+
40
+ end
@@ -0,0 +1,22 @@
1
+ unless Capistrano::Configuration.respond_to?(:instance)
2
+ abort "Requires Capistrano 2"
3
+ end
4
+
5
+ # Dir["#{File.dirname(__FILE__)}/ubuntu-machine/*.rb"].each { |lib|
6
+ # Capistrano::Configuration.instance.load {load(lib)}
7
+ # }
8
+
9
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/apache.rb")}
10
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/aptitude.rb")}
11
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/gems.rb")}
12
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/git.rb")}
13
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/odbc.rb")}
14
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/helpers.rb")}
15
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/iptables.rb")}
16
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/machine.rb")}
17
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/mysql.rb")}
18
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/php.rb")}
19
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/postfix.rb")}
20
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/ruby.rb")}
21
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/ssh.rb")}
22
+ Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/utils.rb")}
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: FiXato-ubuntu-machine
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.3.2.2
5
+ platform: ruby
6
+ authors:
7
+ - Thomas Balthazar
8
+ - Tarik Alkasab
9
+ - Filip H.F. 'FiXato' Slagter
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2009-06-10 00:00:00 -07:00
15
+ default_executable:
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: capistrano
19
+ type: :runtime
20
+ version_requirement:
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">"
24
+ - !ruby/object:Gem::Version
25
+ version: 2.5.2
26
+ version:
27
+ description: Capistrano recipes for setting up and deploying to a Ubuntu Machine
28
+ email: thomas@suitmymind.com
29
+ executables: []
30
+
31
+ extensions: []
32
+
33
+ extra_rdoc_files: []
34
+
35
+ files:
36
+ - README
37
+ - MIT-LICENSE
38
+ - lib/capistrano/ext/ubuntu-machine.rb
39
+ - lib/capistrano/ext/ubuntu-machine/apache.rb
40
+ - lib/capistrano/ext/ubuntu-machine/aptitude.rb
41
+ - lib/capistrano/ext/ubuntu-machine/gems.rb
42
+ - lib/capistrano/ext/ubuntu-machine/git.rb
43
+ - lib/capistrano/ext/ubuntu-machine/odbc.rb
44
+ - lib/capistrano/ext/ubuntu-machine/helpers.rb
45
+ - lib/capistrano/ext/ubuntu-machine/iptables.rb
46
+ - lib/capistrano/ext/ubuntu-machine/machine.rb
47
+ - lib/capistrano/ext/ubuntu-machine/mysql.rb
48
+ - lib/capistrano/ext/ubuntu-machine/php.rb
49
+ - lib/capistrano/ext/ubuntu-machine/postfix.rb
50
+ - lib/capistrano/ext/ubuntu-machine/ruby.rb
51
+ - lib/capistrano/ext/ubuntu-machine/ssh.rb
52
+ - lib/capistrano/ext/ubuntu-machine/utils.rb
53
+ - lib/capistrano/ext/ubuntu-machine/templates/apache2.erb
54
+ - lib/capistrano/ext/ubuntu-machine/templates/iptables.erb
55
+ - lib/capistrano/ext/ubuntu-machine/templates/my.cnf.erb
56
+ - lib/capistrano/ext/ubuntu-machine/templates/new_db.erb
57
+ - lib/capistrano/ext/ubuntu-machine/templates/passenger.conf.erb
58
+ - lib/capistrano/ext/ubuntu-machine/templates/passenger.load.erb
59
+ - lib/capistrano/ext/ubuntu-machine/templates/sshd_config.erb
60
+ - lib/capistrano/ext/ubuntu-machine/templates/vhost.erb
61
+ - lib/capistrano/ext/ubuntu-machine/templates/deflate.conf.erb
62
+ - lib/capistrano/ext/ubuntu-machine/templates/freetds.conf.erb
63
+ - lib/capistrano/ext/ubuntu-machine/templates/odbc.ini.erb
64
+ - lib/capistrano/ext/ubuntu-machine/templates/odbcinst.ini.erb
65
+ has_rdoc: false
66
+ homepage: http://suitmymind.github.com/ubuntu-machine
67
+ post_install_message:
68
+ rdoc_options: []
69
+
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: "0"
77
+ version:
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: "0"
83
+ version:
84
+ requirements: []
85
+
86
+ rubyforge_project:
87
+ rubygems_version: 1.2.0
88
+ signing_key:
89
+ specification_version: 2
90
+ summary: Capistrano recipes for setting up and deploying to a Ubuntu Machine
91
+ test_files: []
92
+