rubber 1.5.5 → 1.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +5 -0
- data/VERSION +1 -1
- data/generators/vulcanize/templates/base/config/deploy.rb +1 -0
- data/generators/vulcanize/templates/base/config/rubber/deploy-setup.rb +32 -3
- data/generators/vulcanize/templates/base/config/rubber/rubber-rvm.yml +3 -0
- data/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.in.sh +2 -0
- data/generators/vulcanize/templates/mongrel/config/rubber/deploy-mongrel.rb +1 -1
- data/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin.conf +43 -9
- data/generators/vulcanize/templates/nginx/config/rubber/role/nginx/crontab +1 -1
- data/lib/generators/vulcanize/templates/base/config/deploy.rb +1 -0
- data/lib/generators/vulcanize/templates/base/config/rubber/deploy-setup.rb +32 -3
- data/lib/generators/vulcanize/templates/base/config/rubber/rubber-rvm.yml +3 -0
- data/lib/generators/vulcanize/templates/cassandra/config/rubber/role/cassandra/cassandra.in.sh +2 -0
- data/lib/generators/vulcanize/templates/mongrel/config/rubber/deploy-mongrel.rb +1 -1
- data/lib/generators/vulcanize/templates/munin/config/rubber/role/web_tools/munin.conf +43 -9
- data/lib/generators/vulcanize/templates/nginx/config/rubber/role/nginx/crontab +1 -1
- data/lib/rubber/dns/dyndns.rb +6 -7
- data/lib/rubber/recipes/rubber/instances.rb +1 -1
- data/lib/rubber/recipes/rubber/setup.rb +2 -2
- metadata +3 -3
data/CHANGELOG
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.5.
|
1
|
+
1.5.6
|
@@ -3,14 +3,43 @@ namespace :rubber do
|
|
3
3
|
|
4
4
|
rubber.allow_optional_tasks(self)
|
5
5
|
|
6
|
-
before "rubber:
|
6
|
+
before "rubber:setup_gem_sources", "rubber:base:install_rvm"
|
7
7
|
task :install_rvm do
|
8
8
|
rubber.sudo_script "install_rvm", <<-ENDSCRIPT
|
9
9
|
if [[ `rvm --version 2> /dev/null` == "" ]]; then
|
10
10
|
echo "rvm_prefix=/usr/local" > /etc/rvmrc
|
11
|
-
wget -qNP /tmp http://rvm.beginrescueend.com/releases/rvm-install-head
|
12
|
-
bash /tmp/rvm-install-head
|
13
11
|
echo "#{rubber_env.rvm_prepare}" > /etc/profile.d/rvm.sh
|
12
|
+
|
13
|
+
# Copied below from http://rvm.beginrescueend.com/releases/rvm-install-latest
|
14
|
+
#
|
15
|
+
|
16
|
+
if [[ -f /etc/rvmrc ]] ; then source /etc/rvmrc ; fi
|
17
|
+
|
18
|
+
if [[ -f "$HOME/.rvmrc" ]] ; then source "$HOME/.rvmrc" ; fi
|
19
|
+
|
20
|
+
rvm_path="${rvm_path:-$HOME/.rvm}"
|
21
|
+
|
22
|
+
mkdir -p $rvm_path/src/
|
23
|
+
|
24
|
+
builtin cd $rvm_path/src
|
25
|
+
|
26
|
+
stable_version=#{rubber_env.rvm_version}
|
27
|
+
|
28
|
+
echo "rvm-${stable_version}"
|
29
|
+
|
30
|
+
curl -L "http://rvm.beginrescueend.com/releases/rvm-${stable_version}.tar.gz" -o "rvm-${stable_version}.tar.gz"
|
31
|
+
|
32
|
+
tar zxf "rvm-${stable_version}.tar.gz"
|
33
|
+
|
34
|
+
builtin cd "rvm-${stable_version}"
|
35
|
+
|
36
|
+
dos2unix scripts/* >/dev/null 2>&1 || true
|
37
|
+
|
38
|
+
bash ./scripts/install
|
39
|
+
|
40
|
+
#
|
41
|
+
# end rvm install script
|
42
|
+
|
14
43
|
fi
|
15
44
|
ENDSCRIPT
|
16
45
|
end
|
@@ -11,6 +11,9 @@
|
|
11
11
|
|
12
12
|
packages: [build-essential, git-core, subversion, curl, autoconf, bison, ruby, zlib1g-dev, libssl-dev, libreadline5-dev, libxml2-dev]
|
13
13
|
|
14
|
+
# REQUIRED: the version of rvm itself
|
15
|
+
rvm_version: 0.1.38
|
16
|
+
|
14
17
|
# REQUIRED: Set to the rvm version string for the ruby version you wish to use
|
15
18
|
# Run "rvm list known" to see the list of possible options
|
16
19
|
rvm_ruby: 1.9.2
|
@@ -12,7 +12,7 @@ namespace :rubber do
|
|
12
12
|
rubber.sudo_script 'setup_mongrel_init', <<-ENDSCRIPT
|
13
13
|
mkdir -p /etc/mongrel_cluster
|
14
14
|
rm -f /etc/mongrel_cluster/#{application}-#{RUBBER_ENV}.yml && ln -s /mnt/#{application}-#{RUBBER_ENV}/current/config/mongrel_cluster.yml /etc/mongrel_cluster/#{application}-#{RUBBER_ENV}.yml
|
15
|
-
find /usr/lib/ruby/gems -path "*/resources/mongrel_cluster" -exec cp {} /etc/init.d/ \\;
|
15
|
+
find #{rubber_env.rvm_version ? "$(rvm gemdir)" : "/usr/lib/ruby/gems"} -path "*/resources/mongrel_cluster" -exec cp {} /etc/init.d/ \\;
|
16
16
|
chmod +x /etc/init.d/mongrel_cluster
|
17
17
|
update-rc.d -f mongrel_cluster remove
|
18
18
|
update-rc.d mongrel_cluster defaults 99 00
|
@@ -1,38 +1,72 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/munin/munin.conf'
|
3
|
-
@post = "mkdir -p /var/www/munin; chown -R munin:munin /var/www/munin"
|
4
3
|
%>
|
5
4
|
|
6
5
|
# Example configuration file for Munin, generated by 'make build'
|
7
6
|
|
8
7
|
# The next three variables specifies where the location of the RRD
|
9
|
-
# databases, the HTML output, and the
|
10
|
-
# must be writable by the user running munin-cron.
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
# databases, the HTML output, logs and the lock/pid files. They all
|
9
|
+
# must be writable by the user running munin-cron. They are all
|
10
|
+
# defaulted to the values you see here.
|
11
|
+
#
|
12
|
+
dbdir /var/lib/munin
|
13
|
+
htmldir /var/cache/munin/www
|
14
|
+
logdir /var/log/munin
|
14
15
|
rundir /var/run/munin
|
15
16
|
|
16
17
|
# Where to look for the HTML templates
|
17
18
|
tmpldir /etc/munin/templates
|
18
19
|
|
20
|
+
# (Exactly one) directory to include all files from.
|
21
|
+
#
|
22
|
+
includedir /etc/munin/munin-conf.d
|
23
|
+
|
19
24
|
# Make graphs show values per minute instead of per second
|
20
25
|
#graph_period minute
|
21
26
|
|
27
|
+
# Graphics files are normaly generated by munin-graph, no matter if
|
28
|
+
# the graphs are used or not. You can change this to
|
29
|
+
# on-demand-graphing by following the instructions in
|
30
|
+
# http://munin.projects.linpro.no/wiki/CgiHowto
|
31
|
+
#
|
32
|
+
#graph_strategy cgi
|
33
|
+
|
34
|
+
# munin-cgi-graph is invoked by the web server up to very many times at the
|
35
|
+
# same time. This is not optimal since it results in high CPU and memory
|
36
|
+
# consumption to the degree that the system can thrash. Again the default is
|
37
|
+
# 6. Most likely the optimal number for max_cgi_graph_jobs is the same as
|
38
|
+
# max_graph_jobs.
|
39
|
+
#
|
40
|
+
#munin_cgi_graph_jobs 6
|
41
|
+
|
42
|
+
# If the automatic CGI url is wrong for your system override it here:
|
43
|
+
#
|
44
|
+
#cgiurl_graph /cgi-bin/munin-cgi-graph
|
45
|
+
|
46
|
+
# munin-graph runs in parallel, the number of concurrent processes is
|
47
|
+
# 6. If you want munin-graph to not be parallel set to 0. If set too
|
48
|
+
# high it will slow down munin-graph. Some experiments are needed to
|
49
|
+
# determine how many are optimal on your system. On a multi-core
|
50
|
+
# system with good SCSI disks the number can probably be quite high.
|
51
|
+
#
|
52
|
+
#max_graph_jobs 6
|
53
|
+
|
22
54
|
# Drop somejuser@fnord.comm and anotheruser@blibb.comm an email everytime
|
23
55
|
# something changes (OK -> WARNING, CRITICAL -> OK, etc)
|
24
56
|
#contact.someuser.command mail -s "Munin notification" somejuser@fnord.comm
|
25
57
|
#contact.anotheruser.command mail -s "Munin notification" anotheruser@blibb.comm
|
26
58
|
#
|
27
|
-
# For those with Nagios, the following might come in handy. In addition,
|
28
|
-
# the services must be defined in the Nagios server as well.
|
29
|
-
#contact.nagios.command /usr/sbin/send_nsca -H nagios.host.com -c /etc/send_nsca.cfg
|
30
59
|
|
31
60
|
contacts dev
|
32
61
|
contact.dev.command mail -s "Munin notification ${var:host} : ${var:group}" <%= rubber_env.admin_email %>
|
33
62
|
contact.dev.always_send warning critical
|
34
63
|
|
64
|
+
# For those with Nagios, the following might come in handy. In addition,
|
65
|
+
# the services must be defined in the Nagios server as well.
|
66
|
+
#contact.nagios.command /usr/bin/send_nsca nagios.host.comm -c /etc/nsca.conf
|
35
67
|
|
68
|
+
# The host tree generated by rubber
|
69
|
+
#
|
36
70
|
<% rubber_instances.each do |i| %>
|
37
71
|
[<%= i.full_name %>]
|
38
72
|
address <%= i.internal_ip %>
|
@@ -3,14 +3,43 @@ namespace :rubber do
|
|
3
3
|
|
4
4
|
rubber.allow_optional_tasks(self)
|
5
5
|
|
6
|
-
before "rubber:
|
6
|
+
before "rubber:setup_gem_sources", "rubber:base:install_rvm"
|
7
7
|
task :install_rvm do
|
8
8
|
rubber.sudo_script "install_rvm", <<-ENDSCRIPT
|
9
9
|
if [[ `rvm --version 2> /dev/null` == "" ]]; then
|
10
10
|
echo "rvm_prefix=/usr/local" > /etc/rvmrc
|
11
|
-
wget -qNP /tmp http://rvm.beginrescueend.com/releases/rvm-install-head
|
12
|
-
bash /tmp/rvm-install-head
|
13
11
|
echo "#{rubber_env.rvm_prepare}" > /etc/profile.d/rvm.sh
|
12
|
+
|
13
|
+
# Copied below from http://rvm.beginrescueend.com/releases/rvm-install-latest
|
14
|
+
#
|
15
|
+
|
16
|
+
if [[ -f /etc/rvmrc ]] ; then source /etc/rvmrc ; fi
|
17
|
+
|
18
|
+
if [[ -f "$HOME/.rvmrc" ]] ; then source "$HOME/.rvmrc" ; fi
|
19
|
+
|
20
|
+
rvm_path="${rvm_path:-$HOME/.rvm}"
|
21
|
+
|
22
|
+
mkdir -p $rvm_path/src/
|
23
|
+
|
24
|
+
builtin cd $rvm_path/src
|
25
|
+
|
26
|
+
stable_version=#{rubber_env.rvm_version}
|
27
|
+
|
28
|
+
echo "rvm-${stable_version}"
|
29
|
+
|
30
|
+
curl -L "http://rvm.beginrescueend.com/releases/rvm-${stable_version}.tar.gz" -o "rvm-${stable_version}.tar.gz"
|
31
|
+
|
32
|
+
tar zxf "rvm-${stable_version}.tar.gz"
|
33
|
+
|
34
|
+
builtin cd "rvm-${stable_version}"
|
35
|
+
|
36
|
+
dos2unix scripts/* >/dev/null 2>&1 || true
|
37
|
+
|
38
|
+
bash ./scripts/install
|
39
|
+
|
40
|
+
#
|
41
|
+
# end rvm install script
|
42
|
+
|
14
43
|
fi
|
15
44
|
ENDSCRIPT
|
16
45
|
end
|
@@ -11,6 +11,9 @@
|
|
11
11
|
|
12
12
|
packages: [build-essential, git-core, subversion, curl, autoconf, bison, ruby, zlib1g-dev, libssl-dev, libreadline5-dev, libxml2-dev]
|
13
13
|
|
14
|
+
# REQUIRED: the version of rvm itself
|
15
|
+
rvm_version: 0.1.38
|
16
|
+
|
14
17
|
# REQUIRED: Set to the rvm version string for the ruby version you wish to use
|
15
18
|
# Run "rvm list known" to see the list of possible options
|
16
19
|
rvm_ruby: 1.9.2
|
@@ -12,7 +12,7 @@ namespace :rubber do
|
|
12
12
|
rubber.sudo_script 'setup_mongrel_init', <<-ENDSCRIPT
|
13
13
|
mkdir -p /etc/mongrel_cluster
|
14
14
|
rm -f /etc/mongrel_cluster/#{application}-#{RUBBER_ENV}.yml && ln -s /mnt/#{application}-#{RUBBER_ENV}/current/config/mongrel_cluster.yml /etc/mongrel_cluster/#{application}-#{RUBBER_ENV}.yml
|
15
|
-
find /usr/lib/ruby/gems -path "*/resources/mongrel_cluster" -exec cp {} /etc/init.d/ \\;
|
15
|
+
find #{rubber_env.rvm_version ? "$(rvm gemdir)" : "/usr/lib/ruby/gems"} -path "*/resources/mongrel_cluster" -exec cp {} /etc/init.d/ \\;
|
16
16
|
chmod +x /etc/init.d/mongrel_cluster
|
17
17
|
update-rc.d -f mongrel_cluster remove
|
18
18
|
update-rc.d mongrel_cluster defaults 99 00
|
@@ -1,38 +1,72 @@
|
|
1
1
|
<%
|
2
2
|
@path = '/etc/munin/munin.conf'
|
3
|
-
@post = "mkdir -p /var/www/munin; chown -R munin:munin /var/www/munin"
|
4
3
|
%>
|
5
4
|
|
6
5
|
# Example configuration file for Munin, generated by 'make build'
|
7
6
|
|
8
7
|
# The next three variables specifies where the location of the RRD
|
9
|
-
# databases, the HTML output, and the
|
10
|
-
# must be writable by the user running munin-cron.
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
# databases, the HTML output, logs and the lock/pid files. They all
|
9
|
+
# must be writable by the user running munin-cron. They are all
|
10
|
+
# defaulted to the values you see here.
|
11
|
+
#
|
12
|
+
dbdir /var/lib/munin
|
13
|
+
htmldir /var/cache/munin/www
|
14
|
+
logdir /var/log/munin
|
14
15
|
rundir /var/run/munin
|
15
16
|
|
16
17
|
# Where to look for the HTML templates
|
17
18
|
tmpldir /etc/munin/templates
|
18
19
|
|
20
|
+
# (Exactly one) directory to include all files from.
|
21
|
+
#
|
22
|
+
includedir /etc/munin/munin-conf.d
|
23
|
+
|
19
24
|
# Make graphs show values per minute instead of per second
|
20
25
|
#graph_period minute
|
21
26
|
|
27
|
+
# Graphics files are normaly generated by munin-graph, no matter if
|
28
|
+
# the graphs are used or not. You can change this to
|
29
|
+
# on-demand-graphing by following the instructions in
|
30
|
+
# http://munin.projects.linpro.no/wiki/CgiHowto
|
31
|
+
#
|
32
|
+
#graph_strategy cgi
|
33
|
+
|
34
|
+
# munin-cgi-graph is invoked by the web server up to very many times at the
|
35
|
+
# same time. This is not optimal since it results in high CPU and memory
|
36
|
+
# consumption to the degree that the system can thrash. Again the default is
|
37
|
+
# 6. Most likely the optimal number for max_cgi_graph_jobs is the same as
|
38
|
+
# max_graph_jobs.
|
39
|
+
#
|
40
|
+
#munin_cgi_graph_jobs 6
|
41
|
+
|
42
|
+
# If the automatic CGI url is wrong for your system override it here:
|
43
|
+
#
|
44
|
+
#cgiurl_graph /cgi-bin/munin-cgi-graph
|
45
|
+
|
46
|
+
# munin-graph runs in parallel, the number of concurrent processes is
|
47
|
+
# 6. If you want munin-graph to not be parallel set to 0. If set too
|
48
|
+
# high it will slow down munin-graph. Some experiments are needed to
|
49
|
+
# determine how many are optimal on your system. On a multi-core
|
50
|
+
# system with good SCSI disks the number can probably be quite high.
|
51
|
+
#
|
52
|
+
#max_graph_jobs 6
|
53
|
+
|
22
54
|
# Drop somejuser@fnord.comm and anotheruser@blibb.comm an email everytime
|
23
55
|
# something changes (OK -> WARNING, CRITICAL -> OK, etc)
|
24
56
|
#contact.someuser.command mail -s "Munin notification" somejuser@fnord.comm
|
25
57
|
#contact.anotheruser.command mail -s "Munin notification" anotheruser@blibb.comm
|
26
58
|
#
|
27
|
-
# For those with Nagios, the following might come in handy. In addition,
|
28
|
-
# the services must be defined in the Nagios server as well.
|
29
|
-
#contact.nagios.command /usr/sbin/send_nsca -H nagios.host.com -c /etc/send_nsca.cfg
|
30
59
|
|
31
60
|
contacts dev
|
32
61
|
contact.dev.command mail -s "Munin notification ${var:host} : ${var:group}" <%= rubber_env.admin_email %>
|
33
62
|
contact.dev.always_send warning critical
|
34
63
|
|
64
|
+
# For those with Nagios, the following might come in handy. In addition,
|
65
|
+
# the services must be defined in the Nagios server as well.
|
66
|
+
#contact.nagios.command /usr/bin/send_nsca nagios.host.comm -c /etc/nsca.conf
|
35
67
|
|
68
|
+
# The host tree generated by rubber
|
69
|
+
#
|
36
70
|
<% rubber_instances.each do |i| %>
|
37
71
|
[<%= i.full_name %>]
|
38
72
|
address <%= i.internal_ip %>
|
data/lib/rubber/dns/dyndns.rb
CHANGED
@@ -29,12 +29,12 @@ module Rubber
|
|
29
29
|
begin
|
30
30
|
Resolv::DNS.open(:nameserver => [nameserver], :search => [], :ndots => 1) do |dns|
|
31
31
|
r = dns.getresource(hostname, Resolv::DNS::Resource::IN::A)
|
32
|
-
result = [{:host =>host, :data => r.address}]
|
32
|
+
result = [{:host =>opts[:host], :data => r.address}]
|
33
33
|
end
|
34
34
|
rescue
|
35
|
+
puts "Rescue #{e} #{e.message}"
|
35
36
|
raise "Domain needs to exist in dyndns as an A record before record can be updated"
|
36
37
|
end
|
37
|
-
return true
|
38
38
|
end
|
39
39
|
|
40
40
|
def create_host_record(opts={})
|
@@ -46,13 +46,12 @@ module Rubber
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def update_host_record(old_opts={}, new_opts={})
|
49
|
-
old_opts = setup_opts(
|
50
|
-
|
51
|
-
|
52
|
-
host = hostname(old_opts[:host])
|
49
|
+
old_opts = setup_opts(old_opts, [:host, :domain])
|
50
|
+
|
51
|
+
host = "#{old_opts[:host]}.#{old_opts[:domain]}"
|
53
52
|
ip = new_opts[:data]
|
54
53
|
update_url = eval('%Q{' + @update_url + '}')
|
55
|
-
|
54
|
+
# puts update_url
|
56
55
|
# This header is required by dyndns.org
|
57
56
|
headers = {
|
58
57
|
"User-Agent" => "Capistrano - Rubber - 0.1"
|
@@ -229,7 +229,7 @@ namespace :rubber do
|
|
229
229
|
rubber_instances.save()
|
230
230
|
|
231
231
|
# turn back on root ssh access if we are using root as the capistrano user for connecting
|
232
|
-
enable_root_ssh(instance_item.external_ip, fetch(:initial_ssh_user, 'ubuntu')) if user == 'root'
|
232
|
+
enable_root_ssh(instance_item.external_ip, fetch(:initial_ssh_user, 'ubuntu')) if (user == 'root' && ! instance_item.windows?)
|
233
233
|
|
234
234
|
# setup amazon elastic ips if configured to do so
|
235
235
|
setup_static_ips
|
@@ -397,9 +397,9 @@ namespace :rubber do
|
|
397
397
|
|
398
398
|
rsudo "apt-get -q update"
|
399
399
|
if upgrade
|
400
|
-
rsudo "export DEBIAN_FRONTEND=noninteractive; apt-get -q -y --force-yes dist-upgrade"
|
400
|
+
rsudo "export DEBIAN_FRONTEND=noninteractive; apt-get -q -o Dpkg::Options::=--force-confold -y --force-yes dist-upgrade"
|
401
401
|
else
|
402
|
-
rsudo "export DEBIAN_FRONTEND=noninteractive; apt-get -q -y --force-yes install $CAPISTRANO:VAR$", opts
|
402
|
+
rsudo "export DEBIAN_FRONTEND=noninteractive; apt-get -q -o Dpkg::Options::=--force-confold -y --force-yes install $CAPISTRANO:VAR$", opts
|
403
403
|
end
|
404
404
|
end
|
405
405
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 5
|
8
|
-
-
|
9
|
-
version: 1.5.
|
8
|
+
- 6
|
9
|
+
version: 1.5.6
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Matt Conway
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-07-01 00:00:00 -04:00
|
18
18
|
default_executable: vulcanize
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|