FiXato-ubuntu-machine 0.5.3.2.11 → 0.5.3.2.20
Sign up to get free protection for your applications and to get access to all the features.
- data/README +2 -1
- data/lib/capistrano/ext/ubuntu-machine/apache.rb +14 -3
- data/lib/capistrano/ext/ubuntu-machine/extras.rb +33 -0
- data/lib/capistrano/ext/ubuntu-machine/ffmpeg.rb +1 -1
- data/lib/capistrano/ext/ubuntu-machine/gems.rb +10 -6
- data/lib/capistrano/ext/ubuntu-machine/helpers.rb +3 -2
- data/lib/capistrano/ext/ubuntu-machine/machine.rb +32 -0
- data/lib/capistrano/ext/ubuntu-machine/ruby.rb +1 -1
- data/lib/capistrano/ext/ubuntu-machine/ssh.rb +12 -5
- data/lib/capistrano/ext/ubuntu-machine/templates/vhost.erb +5 -4
- data/lib/capistrano/ext/ubuntu-machine/templates/xsendfile.conf.erb +3 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/xsendfile.load.erb +1 -0
- data/lib/capistrano/ext/ubuntu-machine/utils.rb +1 -0
- data/lib/capistrano/ext/ubuntu-machine/vsftpd.rb +0 -2
- data/lib/capistrano/ext/ubuntu-machine.rb +1 -0
- metadata +8 -3
data/README
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
namespace :apache do
|
2
|
+
_cset(:sites_path) { "/home/#{user}/websites" }
|
3
|
+
|
2
4
|
desc "Install Apache"
|
3
5
|
task :install, :roles => :web do
|
4
6
|
sudo "apt-get install apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1 ssl-cert -y"
|
7
|
+
_cset(:server_name) {Capistrano::CLI.ui.ask("Server name : ")}
|
5
8
|
|
6
9
|
run "cat /etc/apache2/apache2.conf > ~/apache2.conf.tmp"
|
7
10
|
put render("apache2", binding), "apache2.append.conf.tmp"
|
@@ -90,12 +93,15 @@ namespace :apache do
|
|
90
93
|
server_admin = default_server_admin if server_admin.empty?
|
91
94
|
server_name = Capistrano::CLI.ui.ask("Server name : ")
|
92
95
|
server_alias = Capistrano::CLI.ui.ask("Server alias : ")
|
96
|
+
server_port = Capistrano::CLI.ui.ask("Server port (80) if blank : ")
|
97
|
+
server_port = 80 if server_port.empty?
|
93
98
|
directory_index = Capistrano::CLI.ui.ask("Directory index (#{default_directory_index}) if blank : ")
|
94
99
|
directory_index = default_directory_index if directory_index.empty?
|
100
|
+
document_root = "#{sites_path}/#{server_name}/public"
|
95
101
|
|
96
102
|
# Website skeleton
|
97
103
|
%w{backup cap cgi-bin logs private public tmp}.each { |d|
|
98
|
-
run "mkdir -p
|
104
|
+
run "mkdir -p #{sites_path}/#{server_name}/#{d}"
|
99
105
|
}
|
100
106
|
|
101
107
|
put render("vhost", binding), server_name
|
@@ -111,7 +117,7 @@ namespace :apache do
|
|
111
117
|
if sure=="y"
|
112
118
|
sudo "sudo a2dissite #{server_name}"
|
113
119
|
sudo "rm /etc/apache2/sites-available/#{server_name}"
|
114
|
-
sudo "rm -Rf
|
120
|
+
sudo "rm -Rf #{sites_path}/#{server_name}"
|
115
121
|
reload
|
116
122
|
end
|
117
123
|
end
|
@@ -130,6 +136,11 @@ namespace :apache do
|
|
130
136
|
run "tar -xzf mod_xsendfile-0.9.tar.gz"
|
131
137
|
sudo "mkdir -p /usr/local/src"
|
132
138
|
sudo "mv mod_xsendfile-0.9* /usr/local/src/"
|
133
|
-
sudo "apxs2 -
|
139
|
+
sudo "apxs2 -ci /usr/local/src/mod_xsendfile-0.9/mod_xsendfile.c"
|
140
|
+
put render("xsendfile.conf", binding), "xsendfile.conf.tmp"
|
141
|
+
sudo "mv xsendfile.conf.tmp /etc/apache2/mods-available/xsendfile.conf"
|
142
|
+
put render("xsendfile.load", binding), "xsendfile.load.tmp"
|
143
|
+
sudo "mv xsendfile.load.tmp /etc/apache2/mods-available/xsendfile.load"
|
144
|
+
sudo "a2enmod xsendfile"
|
134
145
|
end
|
135
146
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
desc "Installs extra utils: curl, lynx, mailutils, munin, imagemagick"
|
2
|
+
task :install_all do
|
3
|
+
install_curl
|
4
|
+
install_lynx
|
5
|
+
install_mailutils
|
6
|
+
install_munin
|
7
|
+
install_imagemagick
|
8
|
+
end
|
9
|
+
|
10
|
+
desc "Installs extra util curl"
|
11
|
+
task :install_curl do
|
12
|
+
sudo "aptitude install -y curl"
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "Installs extra util lynx"
|
16
|
+
task :install_lynx do
|
17
|
+
sudo "aptitude install -y lynx"
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "Installs extra util mailutils"
|
21
|
+
task :install_mailutils do
|
22
|
+
sudo "aptitude install -y mailutils"
|
23
|
+
end
|
24
|
+
|
25
|
+
desc "Installs extra util munin"
|
26
|
+
task :install_munin do
|
27
|
+
sudo "aptitude install -y munin"
|
28
|
+
end
|
29
|
+
|
30
|
+
desc "Installs extra util imagemagick"
|
31
|
+
task :install_imagemagick do
|
32
|
+
sudo "aptitude install -y imagemagick"
|
33
|
+
end
|
@@ -11,7 +11,7 @@ namespace :ffmpeg do
|
|
11
11
|
task :install_dependencies, :roles => :app do
|
12
12
|
#TODO: Ensure that the multiverse repositories/sources are available and being used by aptitude \
|
13
13
|
# otherwise add them to /etc/apt/sources.list since they are needed for libraries such as libmp3lame-dev
|
14
|
-
sudo "aptitude install -y ccache checkinstall fakeroot liba52-0.7.4-dev liba52-dev libfaac-dev libfaad-dev libfreetype6-dev libgpac-dev libjpeg62-dev libmp3lame-dev libogg-dev libpng12-dev libtheora-dev libtiff4-dev libvorbis-dev libxvidcore4-dev"
|
14
|
+
sudo "aptitude install -y ccache checkinstall fakeroot liba52-0.7.4-dev liba52-dev libfaac-dev libfaad-dev libfreetype6-dev libgpac-dev libjpeg62-dev liblame-dev liblame0 libmp3lame-dev libogg-dev libpng12-dev libtheora-dev libtiff4-dev libvorbis-dev libxvidcore4-dev"
|
15
15
|
run "wget http://www.tortall.net/projects/yasm/releases/yasm-0.7.1.tar.gz -O yasm-0.7.1.tar.gz && tar -xzf yasm-0.7.1.tar.gz && cd yasm-0.7.1 && ./configure && make && sudo checkinstall -y"
|
16
16
|
sudo "ldconfig"
|
17
17
|
run "if test -x x264; then cd x264 && git checkout master && git pull; else git clone git://git.videolan.org/x264.git; fi"
|
@@ -42,24 +42,28 @@ namespace :gems do
|
|
42
42
|
run "echo 'gem: --no-rdoc --no-ri' >> ~/.gemrc"
|
43
43
|
end
|
44
44
|
|
45
|
-
# TODO: Replace scp with Capistrano's way of uploading/deploying files.
|
46
45
|
desc "Scp local gem to the remote server and install it"
|
47
46
|
task :deploy_local_gem, :roles => :app do
|
48
47
|
local_gem_path = Capistrano::CLI.ui.ask("Please supply the path to the local gem: ")
|
49
48
|
run "mkdir -p gems"
|
50
|
-
|
51
|
-
|
49
|
+
upload(local_gem_path,'~/gems/',:via => :scp, :recursive => false)
|
50
|
+
sudo_keepalive
|
51
|
+
run "cd gems/ && sudo gem install -l #{File.basename(local_gem_path)}"
|
52
52
|
end
|
53
53
|
|
54
|
-
# TODO: Replace scp with Capistrano's way of uploading/deploying files.
|
55
54
|
# TODO: Refactor with deploy_local_gem
|
56
55
|
desc "Scp a set of local gems preconfigured in :local_gems_to_deploy to the remote server and install them"
|
57
56
|
task :deploy_local_gems, :roles => :app do
|
58
57
|
_cset(:local_gems_to_deploy) { abort "Please specify the local gems you want to deploy:\n set :local_gems_to_deploy, ['/path/to/your_local-1.2.gem']" }
|
59
58
|
run "mkdir -p gems"
|
59
|
+
# First upload all gems
|
60
60
|
local_gems_to_deploy.each do |local_gem_path|
|
61
|
-
|
62
|
-
|
61
|
+
upload(local_gem_path,'~/gems/',:via => :scp, :recursive => false)
|
62
|
+
end
|
63
|
+
# Then install them
|
64
|
+
local_gems_to_deploy.each do |local_gem_path|
|
65
|
+
sudo_keepalive
|
66
|
+
run "cd gems/ && sudo gem install -l #{File.basename(local_gem_path)}"
|
63
67
|
end
|
64
68
|
end
|
65
69
|
end
|
@@ -61,9 +61,10 @@ end
|
|
61
61
|
def add_to_crontab(commands,period,use_sudo=false)
|
62
62
|
send_cmd = use_sudo ? :sudo : :run
|
63
63
|
tmp_cron="/tmp/cron.tmp"
|
64
|
+
self.send(send_cmd, "rm -f #{tmp_cron} && touch #{tmp_cron}")
|
65
|
+
run "(#{use_sudo ? 'sudo ' : ''}crontab -l || true) > #{tmp_cron}"
|
64
66
|
cron_lines = [*commands].map{|cmd| "#{period} #{cmd}"}
|
65
|
-
|
66
|
-
add_to_file(cron_lines, tmp_cron)
|
67
|
+
add_to_file(tmp_cron, cron_lines)
|
67
68
|
self.send(send_cmd, "crontab #{tmp_cron}")
|
68
69
|
sudo "rm -f #{tmp_cron}"
|
69
70
|
end
|
@@ -40,6 +40,7 @@ namespace :machine do
|
|
40
40
|
ruby.install_passenger
|
41
41
|
git.install
|
42
42
|
php.install
|
43
|
+
extras.install_all
|
43
44
|
end
|
44
45
|
|
45
46
|
desc = "Ask for a user and change his password"
|
@@ -48,4 +49,35 @@ namespace :machine do
|
|
48
49
|
|
49
50
|
run_and_watch_prompt("passwd #{user_to_update}", [/Enter new UNIX password/, /Retype new UNIX password:/])
|
50
51
|
end
|
52
|
+
|
53
|
+
desc "Change the hostname of the machine"
|
54
|
+
task :change_hostname do
|
55
|
+
_cset(:hostname) {Capistrano::CLI.ui.ask("What do you want to change the hostname of this machine to? : ")}
|
56
|
+
tmp_host = 'hostname.tmp'
|
57
|
+
run "echo '#{hostname}' > #{tmp_host}"
|
58
|
+
sudo "cp #{tmp_host} /etc/hostname"
|
59
|
+
sudo "rm #{tmp_host}"
|
60
|
+
sudo_add_to_file('/etc/hosts', "127.0.0.1 #{hostname}")
|
61
|
+
sudo "/etc/init.d/hostname.sh start"
|
62
|
+
end
|
63
|
+
|
64
|
+
desc "Add current path to crontab"
|
65
|
+
task :add_path_to_crontab do
|
66
|
+
tmp_cron="/tmp/cron.tmp"
|
67
|
+
run "rm -f #{tmp_cron} && touch #{tmp_cron}"
|
68
|
+
run "echo PATH=$PATH > #{tmp_cron}"
|
69
|
+
run "(crontab -l || true) >> #{tmp_cron}"
|
70
|
+
run "crontab #{tmp_cron}"
|
71
|
+
run "rm -f #{tmp_cron}"
|
72
|
+
end
|
73
|
+
|
74
|
+
desc "Add current path to sudo crontab"
|
75
|
+
task :sudo_add_path_to_crontab do
|
76
|
+
tmp_cron="/tmp/cron.tmp"
|
77
|
+
sudo "rm -f #{tmp_cron} && touch #{tmp_cron}"
|
78
|
+
run "echo PATH=$PATH > #{tmp_cron}"
|
79
|
+
run "(sudo crontab -l || true) >> #{tmp_cron}"
|
80
|
+
sudo "crontab #{tmp_cron}"
|
81
|
+
sudo "rm -f #{tmp_cron}"
|
82
|
+
end
|
51
83
|
end
|
@@ -50,7 +50,7 @@ namespace :ruby do
|
|
50
50
|
sudo "ln -s #{ruby_enterprise_path_prefix}/#{ruby_enterprise_version} #{ruby_enterprise_path_prefix}/ruby-enterprise"
|
51
51
|
|
52
52
|
# add REE bin to the path
|
53
|
-
sudo_add_to_file('/etc/environment','
|
53
|
+
sudo_add_to_file('/etc/environment','PATH="%s/ruby-enterprise/bin:$PATH"' % ruby_enterprise_path_prefix)
|
54
54
|
end
|
55
55
|
|
56
56
|
desc "Install Phusion Passenger"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
namespace :ssh do
|
2
|
-
_cset :
|
2
|
+
_cset :ssh_secondary_keys, []
|
3
3
|
_cset(:ssh_config_port) {ssh_options[:port] || 22}
|
4
4
|
|
5
5
|
desc <<-DESC
|
@@ -13,17 +13,24 @@ namespace :ssh do
|
|
13
13
|
reload
|
14
14
|
end
|
15
15
|
|
16
|
-
desc "Uploads
|
17
|
-
task :
|
16
|
+
desc "Uploads secondary ssh pubkeys defined in ssh_secondary_keys which don't necessarily belong to you."
|
17
|
+
task :add_secondary_keys do
|
18
18
|
run "mkdir -p ~/.ssh"
|
19
19
|
run "chown -R #{user}:#{user} ~/.ssh"
|
20
20
|
run "chmod 700 ~/.ssh"
|
21
21
|
|
22
|
-
[*
|
23
|
-
key = File.read("#{key}.pub")
|
22
|
+
[*ssh_secondary_keys].each do |key|
|
23
|
+
key = File.read("#{key}.pub").strip
|
24
24
|
run "echo '#{key}' >> ./.ssh/authorized_keys2"
|
25
25
|
end
|
26
26
|
end
|
27
|
+
|
28
|
+
after 'ssh:add_secondary_keys', 'ssh:cleanup_keys'
|
29
|
+
|
30
|
+
desc 'Sort and remove duplicate keys. Useful if you run ssh:add_secondary_keys multiple times by accident.'
|
31
|
+
task :cleanup_keys do
|
32
|
+
run 'sort -u ~/.ssh/authorized_keys2 > /home/yoadmin/.ssh/authorized_keys2-sorted && mv /home/yoadmin/.ssh/authorized_keys2-sorted /home/yoadmin/.ssh/authorized_keys2'
|
33
|
+
end
|
27
34
|
|
28
35
|
desc <<-DESC
|
29
36
|
Uploads your local public SSH keys to the server. A .ssh folder is created if \
|
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
NameVirtualHost *:<%= server_port %>
|
2
|
+
<VirtualHost *:<%= server_port %>>
|
2
3
|
|
3
4
|
# Admin email, Server Name (domain name) and any aliases
|
4
5
|
ServerAdmin <%= server_admin %>
|
@@ -7,11 +8,11 @@
|
|
7
8
|
|
8
9
|
# Index file and Document Root (where the public files are located)
|
9
10
|
DirectoryIndex <%= directory_index %>
|
10
|
-
DocumentRoot
|
11
|
+
DocumentRoot <%= document_root %>
|
11
12
|
|
12
13
|
# Custom log file locations
|
13
14
|
LogLevel warn
|
14
|
-
ErrorLog
|
15
|
-
CustomLog
|
15
|
+
ErrorLog <%= sites_path %>/<%= server_name %>/logs/error.log
|
16
|
+
CustomLog <%= sites_path %>/<%= server_name %>/logs/access.log combined
|
16
17
|
|
17
18
|
</VirtualHost>
|
@@ -0,0 +1 @@
|
|
1
|
+
LoadModule xsendfile_module /usr/lib/apache2/modules/mod_xsendfile.so
|
@@ -24,8 +24,6 @@ namespace :vsftpd do
|
|
24
24
|
|
25
25
|
desc "Add the :vsftpd_user_shell to /etc/shells"
|
26
26
|
task :add_nologin_shell do
|
27
|
-
puts "If this fails, then the '#{vsftpd_user_shell}'-shell is already in /etc/shells"
|
28
|
-
run "test -z `grep #{vsftpd_user_shell} /etc/shells`"
|
29
27
|
sudo_add_to_file('/etc/shells',vsftpd_user_shell)
|
30
28
|
end
|
31
29
|
|
@@ -8,6 +8,7 @@ end
|
|
8
8
|
|
9
9
|
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/apache.rb")}
|
10
10
|
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/aptitude.rb")}
|
11
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/extras.rb")}
|
11
12
|
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/ffmpeg.rb")}
|
12
13
|
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/gems.rb")}
|
13
14
|
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/git.rb")}
|
metadata
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: FiXato-ubuntu-machine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.3.2.
|
4
|
+
version: 0.5.3.2.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Balthazar
|
8
8
|
- Tarik Alkasab
|
9
9
|
- Filip H.F. 'FiXato' Slagter
|
10
|
+
- Wes Oldenbeuving
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
14
|
|
14
|
-
date: 2009-
|
15
|
+
date: 2009-09-18 00:00:00 -07:00
|
15
16
|
default_executable:
|
16
17
|
dependencies:
|
17
18
|
- !ruby/object:Gem::Dependency
|
@@ -38,6 +39,7 @@ files:
|
|
38
39
|
- lib/capistrano/ext/ubuntu-machine.rb
|
39
40
|
- lib/capistrano/ext/ubuntu-machine/apache.rb
|
40
41
|
- lib/capistrano/ext/ubuntu-machine/aptitude.rb
|
42
|
+
- lib/capistrano/ext/ubuntu-machine/extras.rb
|
41
43
|
- lib/capistrano/ext/ubuntu-machine/ffmpeg.rb
|
42
44
|
- lib/capistrano/ext/ubuntu-machine/gems.rb
|
43
45
|
- lib/capistrano/ext/ubuntu-machine/git.rb
|
@@ -71,8 +73,11 @@ files:
|
|
71
73
|
- lib/capistrano/ext/ubuntu-machine/templates/sshd_config.erb
|
72
74
|
- lib/capistrano/ext/ubuntu-machine/templates/vhost.erb
|
73
75
|
- lib/capistrano/ext/ubuntu-machine/templates/vsftpd.conf.erb
|
76
|
+
- lib/capistrano/ext/ubuntu-machine/templates/xsendfile.load.erb
|
77
|
+
- lib/capistrano/ext/ubuntu-machine/templates/xsendfile.conf.erb
|
74
78
|
has_rdoc: false
|
75
79
|
homepage: http://github.com/FiXato/ubuntu-machine
|
80
|
+
licenses:
|
76
81
|
post_install_message:
|
77
82
|
rdoc_options: []
|
78
83
|
|
@@ -93,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
93
98
|
requirements: []
|
94
99
|
|
95
100
|
rubyforge_project:
|
96
|
-
rubygems_version: 1.
|
101
|
+
rubygems_version: 1.3.5
|
97
102
|
signing_key:
|
98
103
|
specification_version: 2
|
99
104
|
summary: Capistrano recipes for setting up and deploying to a Ubuntu Machine. Fork of SuitMyMind's ubuntu-machine
|