engineyard-serverside 1.5.6 → 1.5.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -163,15 +163,48 @@ To fix this problem, commit your Gemfile.lock to your repository and redeploy.
163
163
  "/engineyard/bin/app_#{c.app} deploy"
164
164
  end
165
165
 
166
+ # GIT_SSH needs to be defined in the environment for customers with private bundler repos in their Gemfile.
166
167
  def clean_environment
167
- # GIT_SSH needs to be defined in the environment for customers with private bundler repos in their Gemfile.
168
- %Q[export GIT_SSH="ssh -o 'StrictHostKeyChecking no' -o 'PasswordAuthentication no' -o 'LogLevel DEBUG' -i ~/.ssh/#{c.app}-deploy-key" && unset BUNDLE_PATH BUNDLE_FROZEN BUNDLE_WITHOUT BUNDLE_BIN BUNDLE_GEMFILE]
168
+ %Q[export GIT_SSH="#{ssh_executable}" && unset BUNDLE_PATH BUNDLE_FROZEN BUNDLE_WITHOUT BUNDLE_BIN BUNDLE_GEMFILE]
169
+ end
170
+
171
+ # If we don't have a local version of the ssh wrapper script yet,
172
+ # create it on all the servers that will need it.
173
+ # TODO - This logic likely fails when people change deploy keys.
174
+ def ssh_executable
175
+ path = ssh_wrapper_path
176
+ unless File.executable?(path)
177
+ roles :app_master, :app, :solo, :util do
178
+ run(generate_ssh_wrapper)
179
+ end
180
+ end
181
+ path
182
+ end
183
+
184
+ # We specify 'IdentitiesOnly' to avoid failures on systems with > 5 private keys available.
185
+ def generate_ssh_wrapper
186
+ path = ssh_wrapper_path
187
+ identity_file = "~/.ssh/#{c.app}-deploy-key"
188
+ <<-WRAP
189
+ cat > #{path} <<'SSH'
190
+ #!/bin/sh
191
+ unset SSH_AUTH_SOCK
192
+ ssh -o 'CheckHostIP no' -o 'StrictHostKeyChecking no' -o 'PasswordAuthentication no' -o 'LogLevel DEBUG' -o 'IdentityFile #{identity_file}' -o 'IdentitiesOnly yes' $*
193
+ SSH
194
+ chmod 0700 #{path}
195
+ WRAP
196
+ end
197
+
198
+ def ssh_wrapper_path
199
+ "#{c.shared_path}/config/#{c.app}-ssh-wrapper"
169
200
  end
170
201
 
171
202
  # task
172
203
  def bundle
173
- check_ruby_bundler
174
- check_node_npm
204
+ roles :app_master, :app, :solo, :util do
205
+ check_ruby_bundler
206
+ check_node_npm
207
+ end
175
208
  end
176
209
 
177
210
  # task
@@ -29,10 +29,14 @@ module EY
29
29
  info "~> application.rb has disabled asset compilation. Skipping."
30
30
  return
31
31
  end
32
+ # This check is very expensive, and has been deemed not worth the time.
33
+ # Leaving this here in case someone comes up with a faster way.
34
+ =begin
32
35
  unless app_has_asset_task?
33
36
  info "~> No 'assets:precompile' Rake task found. Skipping."
34
37
  return
35
38
  end
39
+ =end
36
40
  true
37
41
  end
38
42
 
@@ -20,6 +20,8 @@ module EY
20
20
  end
21
21
 
22
22
  def strategy
23
+ # Ensure the git ssh config is up to date with the current app.
24
+ ENV['GIT_SSH'] = ssh_executable
23
25
  klass = Module.nesting[1]
24
26
  # Use [] to access attributes instead of calling methods so
25
27
  # that we get nils instead of NoMethodError.
@@ -1,5 +1,5 @@
1
1
  module EY
2
2
  module Serverside
3
- VERSION = '1.5.6'
3
+ VERSION = '1.5.9'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: engineyard-serverside
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 5
9
- - 6
10
- version: 1.5.6
9
+ - 9
10
+ version: 1.5.9
11
11
  platform: ruby
12
12
  authors:
13
13
  - EY Cloud Team
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-10-25 00:00:00 -04:00
18
+ date: 2011-10-26 00:00:00 -04:00
19
19
  default_executable: engineyard-serverside
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency