engineyard-serverside 1.5.6 → 1.5.9

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.
@@ -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