ricodigo-capistrano-recipes 0.1.3 → 0.1.4

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/Gemfile CHANGED
@@ -1,5 +1,6 @@
1
1
  source "http://rubygems.org"
2
2
 
3
+ gem "net-ssh"
3
4
  gem "capistrano", ">= 2.5.9"
4
5
  gem "capistrano-ext", ">= 1.2.1"
5
6
  gem "mongoid"
@@ -71,6 +71,7 @@ DEPENDENCIES
71
71
  jeweler (~> 1.6.0)
72
72
  magent
73
73
  mongoid
74
+ net-ssh
74
75
  rcov
75
76
  shoulda
76
77
  unicorn
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
@@ -0,0 +1,145 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'net/ssh'
4
+
5
+
6
+ host = ARGV[0]
7
+ user = ARGV[1]
8
+
9
+ if !host || !user
10
+ $stderr.puts "Usage: #{File.basename($0)} <host> <user>"
11
+ exit 1
12
+ end
13
+
14
+ def setup_repos(ssh)
15
+ puts ">> Adding extra repos.."
16
+ cmd = 'echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" > /etc/apt/sources.list.d/mongo.list'
17
+ ssh.exec! %@sudo bash -c '#{cmd}'@ do |c,s,d|
18
+ puts d
19
+ end
20
+
21
+ ssh.exec! 'sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10' do |c,s,d|
22
+ puts d
23
+ end
24
+
25
+ ssh.exec! "sudo apt-get update" do |c,s,d|
26
+ puts d
27
+ end
28
+ end
29
+
30
+ def install_packages(ssh)
31
+ puts ">> Installing packages..."
32
+ packages = %w[
33
+ bind9 build-essential ufw libreadline6-dev git-core
34
+ libxslt1-dev libxml2-dev libssl-dev nginx mongodb-10gen curl
35
+ libcurl4-openssl-dev graphicsmagick
36
+ ]
37
+
38
+ ssh.exec! "sudo apt-get install -y --force-yes #{packages.join(" ")}" do |channel, stream, data|
39
+ puts data
40
+ end
41
+ end
42
+
43
+ def install_postfix(ssh)
44
+ ssh.exec!("sudo apt-get install postfix -y --force-yes") do |channel, stream, data|
45
+ puts data
46
+ if data =~ /General type of mail configuration:\s*$/
47
+ answer = $stdin.gets
48
+ channel.send_data(answer)
49
+ elsif data =~ /System mail name:\s*$/
50
+ answer = $stdin.gets
51
+ channel.send_data(answer)
52
+ elsif data =~ /Root and postmaster mail recipient:\s*$/
53
+ answer = $stdin.gets
54
+ channel.send_data(answer)
55
+ elsif data =~ /Other destinations to accept mail for \(blank for none\):\s*$/
56
+ answer = $stdin.gets
57
+ channel.send_data(answer)
58
+ elsif data =~ /Force synchronous updates on mail queue\?\s*$/
59
+ channel.send_data("no\n")
60
+ elsif data =~ /Local networks:\s*$/
61
+ channel.send_data("\n")
62
+ elsif data =~ /Mailbox size limit \(bytes\):\s*$/
63
+ channel.send_data("0\n")
64
+ elsif data =~ /Local address extension character:\s*$/
65
+ channel.send_data("\n")
66
+ elsif data =~ /Internet protocols to use:\s*$/
67
+ channel.send_data("1\n")
68
+ end
69
+ end
70
+ end
71
+
72
+ def setup_firewall(ssh)
73
+ puts ">> Setup firewall..."
74
+
75
+ ssh.exec! "sudo ufw disable" do |channel, stream, data|
76
+ puts data
77
+ end
78
+
79
+ commands = []
80
+ commands << "sudo ufw allow to any port 80"
81
+ commands << "sudo ufw allow to any port 443"
82
+ commands << "sudo ufw allow to any port 22"
83
+ commands << "sudo ufw allow to any port 53"
84
+ commands << "sudo ufw allow to any port 25"
85
+ commands << "sudo ufw allow to any port 587"
86
+ commands << "sudo ufw default deny"
87
+
88
+ ssh.exec!(commands.join(" && ")) {|c,s,d| puts d }
89
+ ssh.exec!("sudo ufw enable") {|c,s,d| puts d }
90
+
91
+ ssh.exec! "iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT"
92
+ ssh.exec! "iptables -A INPUT -i lo -j ACCEPT"
93
+ end
94
+
95
+ def install_rvm(ssh)
96
+ puts "Installing RVM..."
97
+
98
+ ssh.exec!("sudo bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)") {|c,s,d| puts d }
99
+
100
+ command = %@
101
+ mv /etc/bash.bashrc /tmp/rd_bash.bashrc -f
102
+ echo ". /etc/rvmrc" >> /etc/bash.bashrc
103
+ echo ". /usr/local/rvm/scripts/rvm" >> /etc/bash.bashrc
104
+ cat /tmp/rd_bash.bashrc >> /etc/bash.bashrc
105
+ source /etc/rvmrc
106
+ source /usr/local/rvm/scripts/rvm
107
+
108
+ rvm install 1.9.2
109
+ rvm install ree
110
+
111
+ rvm use 1.9.2 --default
112
+ @
113
+
114
+ ssh.exec!("sudo bash -c '#{command}'") {|c,s,d| puts d }
115
+ end
116
+
117
+ def install_gems(ssh)
118
+ puts ">> Installing required gems..."
119
+
120
+ command = %@
121
+ echo "gem: --no-ri --no-rdoc" >> /etc/gemrc
122
+ echo "update: --no-ri --no-rdoc" >> /etc/gemrc
123
+ echo "install: --no-ri --no-rdoc" >> /etc/gemrc
124
+ @
125
+ ssh.exec!("sudo bash -c '#{command}'") {|c,s,d| puts d }
126
+
127
+ gems = %w[
128
+ rails mongoid whenever capistrano unicorn mongoid_ext magent
129
+ bson_ext sanitize uuidtools ruby-stemmer mini_magick magic
130
+ haml sass compass mechanize nokogiri rdiscount
131
+ ]
132
+
133
+ ssh.exec! "rvmsudo gem install #{gems.join(" ")} --no-ri --no-rdoc" do |channel, stream, data|
134
+ puts data
135
+ end
136
+ end
137
+
138
+ Net::SSH.start(host, user) do |ssh|
139
+ # setup_repos(ssh)
140
+ # install_packages(ssh)
141
+ # install_postfix(ssh)
142
+ # setup_firewall(ssh) unless host =~ /amazonaws\.com$/
143
+ # install_rvm(ssh)
144
+ install_gems(ssh)
145
+ end
@@ -5,13 +5,15 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ricodigo-capistrano-recipes}
8
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David A. Cuadrado"]
12
- s.date = %q{2011-05-13}
12
+ s.date = %q{2011-05-25}
13
+ s.default_executable = %q{ricodigo-install-server}
13
14
  s.description = %q{our capistrano recipes. forked from capistrano-recipes}
14
15
  s.email = %q{krawek@gmail.com}
16
+ s.executables = ["ricodigo-install-server"]
15
17
  s.extra_rdoc_files = [
16
18
  "LICENSE",
17
19
  "README.rdoc"
@@ -24,6 +26,7 @@ Gem::Specification.new do |s|
24
26
  "README.rdoc",
25
27
  "Rakefile",
26
28
  "VERSION",
29
+ "bin/ricodigo-install-server",
27
30
  "generators/app.bluepill.erb",
28
31
  "generators/nginx.conf.erb",
29
32
  "generators/unicorn.rb.erb",
@@ -54,6 +57,7 @@ Gem::Specification.new do |s|
54
57
  s.specification_version = 3
55
58
 
56
59
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
60
+ s.add_runtime_dependency(%q<net-ssh>, [">= 0"])
57
61
  s.add_runtime_dependency(%q<capistrano>, [">= 2.5.9"])
58
62
  s.add_runtime_dependency(%q<capistrano-ext>, [">= 1.2.1"])
59
63
  s.add_runtime_dependency(%q<mongoid>, [">= 0"])
@@ -64,6 +68,7 @@ Gem::Specification.new do |s|
64
68
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
65
69
  s.add_development_dependency(%q<rcov>, [">= 0"])
66
70
  else
71
+ s.add_dependency(%q<net-ssh>, [">= 0"])
67
72
  s.add_dependency(%q<capistrano>, [">= 2.5.9"])
68
73
  s.add_dependency(%q<capistrano-ext>, [">= 1.2.1"])
69
74
  s.add_dependency(%q<mongoid>, [">= 0"])
@@ -75,6 +80,7 @@ Gem::Specification.new do |s|
75
80
  s.add_dependency(%q<rcov>, [">= 0"])
76
81
  end
77
82
  else
83
+ s.add_dependency(%q<net-ssh>, [">= 0"])
78
84
  s.add_dependency(%q<capistrano>, [">= 2.5.9"])
79
85
  s.add_dependency(%q<capistrano-ext>, [">= 1.2.1"])
80
86
  s.add_dependency(%q<mongoid>, [">= 0"])
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 3
9
- version: 0.1.3
8
+ - 4
9
+ version: 0.1.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - David A. Cuadrado
@@ -14,12 +14,25 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-05-13 00:00:00 -05:00
18
- default_executable:
17
+ date: 2011-05-25 00:00:00 -05:00
18
+ default_executable: ricodigo-install-server
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: capistrano
21
+ name: net-ssh
22
22
  requirement: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ version: "0"
30
+ type: :runtime
31
+ prerelease: false
32
+ version_requirements: *id001
33
+ - !ruby/object:Gem::Dependency
34
+ name: capistrano
35
+ requirement: &id002 !ruby/object:Gem::Requirement
23
36
  none: false
24
37
  requirements:
25
38
  - - ">="
@@ -31,10 +44,10 @@ dependencies:
31
44
  version: 2.5.9
32
45
  type: :runtime
33
46
  prerelease: false
34
- version_requirements: *id001
47
+ version_requirements: *id002
35
48
  - !ruby/object:Gem::Dependency
36
49
  name: capistrano-ext
37
- requirement: &id002 !ruby/object:Gem::Requirement
50
+ requirement: &id003 !ruby/object:Gem::Requirement
38
51
  none: false
39
52
  requirements:
40
53
  - - ">="
@@ -46,10 +59,10 @@ dependencies:
46
59
  version: 1.2.1
47
60
  type: :runtime
48
61
  prerelease: false
49
- version_requirements: *id002
62
+ version_requirements: *id003
50
63
  - !ruby/object:Gem::Dependency
51
64
  name: mongoid
52
- requirement: &id003 !ruby/object:Gem::Requirement
65
+ requirement: &id004 !ruby/object:Gem::Requirement
53
66
  none: false
54
67
  requirements:
55
68
  - - ">="
@@ -59,10 +72,10 @@ dependencies:
59
72
  version: "0"
60
73
  type: :runtime
61
74
  prerelease: false
62
- version_requirements: *id003
75
+ version_requirements: *id004
63
76
  - !ruby/object:Gem::Dependency
64
77
  name: unicorn
65
- requirement: &id004 !ruby/object:Gem::Requirement
78
+ requirement: &id005 !ruby/object:Gem::Requirement
66
79
  none: false
67
80
  requirements:
68
81
  - - ">="
@@ -72,10 +85,10 @@ dependencies:
72
85
  version: "0"
73
86
  type: :runtime
74
87
  prerelease: false
75
- version_requirements: *id004
88
+ version_requirements: *id005
76
89
  - !ruby/object:Gem::Dependency
77
90
  name: magent
78
- requirement: &id005 !ruby/object:Gem::Requirement
91
+ requirement: &id006 !ruby/object:Gem::Requirement
79
92
  none: false
80
93
  requirements:
81
94
  - - ">="
@@ -85,10 +98,10 @@ dependencies:
85
98
  version: "0"
86
99
  type: :runtime
87
100
  prerelease: false
88
- version_requirements: *id005
101
+ version_requirements: *id006
89
102
  - !ruby/object:Gem::Dependency
90
103
  name: jeweler
91
- requirement: &id006 !ruby/object:Gem::Requirement
104
+ requirement: &id007 !ruby/object:Gem::Requirement
92
105
  none: false
93
106
  requirements:
94
107
  - - ~>
@@ -100,10 +113,10 @@ dependencies:
100
113
  version: 1.6.0
101
114
  type: :development
102
115
  prerelease: false
103
- version_requirements: *id006
116
+ version_requirements: *id007
104
117
  - !ruby/object:Gem::Dependency
105
118
  name: shoulda
106
- requirement: &id007 !ruby/object:Gem::Requirement
119
+ requirement: &id008 !ruby/object:Gem::Requirement
107
120
  none: false
108
121
  requirements:
109
122
  - - ">="
@@ -113,10 +126,10 @@ dependencies:
113
126
  version: "0"
114
127
  type: :development
115
128
  prerelease: false
116
- version_requirements: *id007
129
+ version_requirements: *id008
117
130
  - !ruby/object:Gem::Dependency
118
131
  name: bundler
119
- requirement: &id008 !ruby/object:Gem::Requirement
132
+ requirement: &id009 !ruby/object:Gem::Requirement
120
133
  none: false
121
134
  requirements:
122
135
  - - ~>
@@ -128,10 +141,10 @@ dependencies:
128
141
  version: 1.0.0
129
142
  type: :development
130
143
  prerelease: false
131
- version_requirements: *id008
144
+ version_requirements: *id009
132
145
  - !ruby/object:Gem::Dependency
133
146
  name: rcov
134
- requirement: &id009 !ruby/object:Gem::Requirement
147
+ requirement: &id010 !ruby/object:Gem::Requirement
135
148
  none: false
136
149
  requirements:
137
150
  - - ">="
@@ -141,11 +154,11 @@ dependencies:
141
154
  version: "0"
142
155
  type: :development
143
156
  prerelease: false
144
- version_requirements: *id009
157
+ version_requirements: *id010
145
158
  description: our capistrano recipes. forked from capistrano-recipes
146
159
  email: krawek@gmail.com
147
- executables: []
148
-
160
+ executables:
161
+ - ricodigo-install-server
149
162
  extensions: []
150
163
 
151
164
  extra_rdoc_files:
@@ -159,6 +172,7 @@ files:
159
172
  - README.rdoc
160
173
  - Rakefile
161
174
  - VERSION
175
+ - bin/ricodigo-install-server
162
176
  - generators/app.bluepill.erb
163
177
  - generators/nginx.conf.erb
164
178
  - generators/unicorn.rb.erb
@@ -191,7 +205,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
191
205
  requirements:
192
206
  - - ">="
193
207
  - !ruby/object:Gem::Version
194
- hash: 4371687022118033860
208
+ hash: -2322525543932527939
195
209
  segments:
196
210
  - 0
197
211
  version: "0"