crazy-yard 3.2.2

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.
Files changed (93) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +19 -0
  3. data/README.md +438 -0
  4. data/bin/ey +9 -0
  5. data/lib/engineyard.rb +9 -0
  6. data/lib/engineyard/cli.rb +816 -0
  7. data/lib/engineyard/cli/api.rb +98 -0
  8. data/lib/engineyard/cli/recipes.rb +129 -0
  9. data/lib/engineyard/cli/ui.rb +275 -0
  10. data/lib/engineyard/cli/web.rb +85 -0
  11. data/lib/engineyard/config.rb +158 -0
  12. data/lib/engineyard/deploy_config.rb +65 -0
  13. data/lib/engineyard/deploy_config/ref.rb +56 -0
  14. data/lib/engineyard/error.rb +82 -0
  15. data/lib/engineyard/eyrc.rb +59 -0
  16. data/lib/engineyard/repo.rb +105 -0
  17. data/lib/engineyard/serverside_runner.rb +159 -0
  18. data/lib/engineyard/templates.rb +6 -0
  19. data/lib/engineyard/templates/ey.yml.erb +196 -0
  20. data/lib/engineyard/templates/ey_yml.rb +119 -0
  21. data/lib/engineyard/thor.rb +215 -0
  22. data/lib/engineyard/version.rb +4 -0
  23. data/lib/vendor/thor/Gemfile +15 -0
  24. data/lib/vendor/thor/LICENSE.md +20 -0
  25. data/lib/vendor/thor/README.md +35 -0
  26. data/lib/vendor/thor/lib/thor.rb +473 -0
  27. data/lib/vendor/thor/lib/thor/actions.rb +318 -0
  28. data/lib/vendor/thor/lib/thor/actions/create_file.rb +105 -0
  29. data/lib/vendor/thor/lib/thor/actions/create_link.rb +60 -0
  30. data/lib/vendor/thor/lib/thor/actions/directory.rb +119 -0
  31. data/lib/vendor/thor/lib/thor/actions/empty_directory.rb +137 -0
  32. data/lib/vendor/thor/lib/thor/actions/file_manipulation.rb +314 -0
  33. data/lib/vendor/thor/lib/thor/actions/inject_into_file.rb +109 -0
  34. data/lib/vendor/thor/lib/thor/base.rb +652 -0
  35. data/lib/vendor/thor/lib/thor/command.rb +136 -0
  36. data/lib/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +80 -0
  37. data/lib/vendor/thor/lib/thor/core_ext/io_binary_read.rb +12 -0
  38. data/lib/vendor/thor/lib/thor/core_ext/ordered_hash.rb +100 -0
  39. data/lib/vendor/thor/lib/thor/error.rb +28 -0
  40. data/lib/vendor/thor/lib/thor/group.rb +282 -0
  41. data/lib/vendor/thor/lib/thor/invocation.rb +172 -0
  42. data/lib/vendor/thor/lib/thor/parser.rb +4 -0
  43. data/lib/vendor/thor/lib/thor/parser/argument.rb +74 -0
  44. data/lib/vendor/thor/lib/thor/parser/arguments.rb +171 -0
  45. data/lib/vendor/thor/lib/thor/parser/option.rb +121 -0
  46. data/lib/vendor/thor/lib/thor/parser/options.rb +218 -0
  47. data/lib/vendor/thor/lib/thor/rake_compat.rb +72 -0
  48. data/lib/vendor/thor/lib/thor/runner.rb +322 -0
  49. data/lib/vendor/thor/lib/thor/shell.rb +88 -0
  50. data/lib/vendor/thor/lib/thor/shell/basic.rb +393 -0
  51. data/lib/vendor/thor/lib/thor/shell/color.rb +148 -0
  52. data/lib/vendor/thor/lib/thor/shell/html.rb +127 -0
  53. data/lib/vendor/thor/lib/thor/util.rb +270 -0
  54. data/lib/vendor/thor/lib/thor/version.rb +3 -0
  55. data/lib/vendor/thor/thor.gemspec +24 -0
  56. data/spec/engineyard/cli/api_spec.rb +50 -0
  57. data/spec/engineyard/cli_spec.rb +28 -0
  58. data/spec/engineyard/config_spec.rb +61 -0
  59. data/spec/engineyard/deploy_config_spec.rb +194 -0
  60. data/spec/engineyard/eyrc_spec.rb +76 -0
  61. data/spec/engineyard/repo_spec.rb +83 -0
  62. data/spec/engineyard_spec.rb +7 -0
  63. data/spec/ey/console_spec.rb +57 -0
  64. data/spec/ey/deploy_spec.rb +435 -0
  65. data/spec/ey/ey_spec.rb +23 -0
  66. data/spec/ey/init_spec.rb +123 -0
  67. data/spec/ey/list_environments_spec.rb +120 -0
  68. data/spec/ey/login_spec.rb +33 -0
  69. data/spec/ey/logout_spec.rb +24 -0
  70. data/spec/ey/logs_spec.rb +36 -0
  71. data/spec/ey/rebuild_spec.rb +18 -0
  72. data/spec/ey/recipes/apply_spec.rb +29 -0
  73. data/spec/ey/recipes/download_spec.rb +43 -0
  74. data/spec/ey/recipes/upload_spec.rb +99 -0
  75. data/spec/ey/rollback_spec.rb +73 -0
  76. data/spec/ey/scp_spec.rb +176 -0
  77. data/spec/ey/servers_spec.rb +209 -0
  78. data/spec/ey/ssh_spec.rb +273 -0
  79. data/spec/ey/status_spec.rb +45 -0
  80. data/spec/ey/timeout_deploy_spec.rb +18 -0
  81. data/spec/ey/web/disable_spec.rb +21 -0
  82. data/spec/ey/web/enable_spec.rb +26 -0
  83. data/spec/ey/web/restart_spec.rb +21 -0
  84. data/spec/ey/whoami_spec.rb +30 -0
  85. data/spec/spec_helper.rb +84 -0
  86. data/spec/support/bundled_ey +7 -0
  87. data/spec/support/fixture_recipes.tgz +0 -0
  88. data/spec/support/git_repos.rb +115 -0
  89. data/spec/support/helpers.rb +330 -0
  90. data/spec/support/matchers.rb +16 -0
  91. data/spec/support/ruby_ext.rb +13 -0
  92. data/spec/support/shared_behavior.rb +278 -0
  93. metadata +411 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 7c56b2161f8c13c0adb594ab2828f3bf37ac6c7808f3dcddbde95ab04b80d598
4
+ data.tar.gz: 50aab069bdd43e2a98f09b6af611f0aa8d5eb22e8cd19e5dcc09585d7d86c295
5
+ SHA512:
6
+ metadata.gz: 52aae5c0b8690475c55824aceabcf058e686741edf479613126088546e15be9628059e1346da3ccfff55d8fb9f4e7fee1f4ac3d082ae1f18c6165ef75ea09566
7
+ data.tar.gz: 49a95c3ef42dd91aef03475fb296e69cc863b163726b9ef2025a33b29622bb989f2ebc7fed1fae42789b6b5a8465b5232171e179363fc3de444b14a43c786d2c
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2010 Engine Yard, Inc
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
@@ -0,0 +1,438 @@
1
+ # `ey` engineyard Command Line Interface
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/engineyard.png)][gem]
4
+ [![Build Status](https://travis-ci.org/engineyard/engineyard.png?branch=master)][travis]
5
+ [![Dependency Status](https://gemnasium.com/engineyard/engineyard.png?travis)][gemnasium]
6
+ [![Code Climate](https://codeclimate.com/github/engineyard/engineyard.png)][codeclimate]
7
+
8
+ [gem]: https://rubygems.org/gems/engineyard
9
+ [travis]: https://travis-ci.org/engineyard/engineyard
10
+ [gemnasium]: https://gemnasium.com/engineyard/engineyard
11
+ [codeclimate]: https://codeclimate.com/github/engineyard/engineyard
12
+
13
+ The Engine Yard command line utility.
14
+
15
+ ### Installing on Ruby 1.8.7 or 1.9.2
16
+
17
+ **NOTE: This has *no effect* on your Engine Yard environment ruby version. This
18
+ is only regarding the local development Ruby version for running this gem. An
19
+ environment can continue using a chosen Ruby version regardless of this change.**
20
+
21
+ The `2.x` series of `engineyard` gem will be the last major version to
22
+ support Ruby 1.8.7 and 1.9.2. If you cannot run Ruby `>= 1.9.3` in your
23
+ development environment, you may continue using engineyard `~> 2.3.2`. This
24
+ version will continue to exist but will not receive regular updates or features.
25
+
26
+ *As of version 3.0.0, `engineyard` gem will require Ruby 1.9.3. Your application
27
+ may still use `1.8.7` while running engineyard in `1.9.3` via `rvm` or similar.
28
+ Deployment will not be affected. This does not affect your Engine Yard Cloud
29
+ environment. More details will be available when 3.0.0 is released.*
30
+
31
+ ### Install
32
+
33
+ Install engineyard like any other ruby gem:
34
+
35
+ gem install engineyard
36
+
37
+ Note: Don't add engineyard to your application's Gemfile. The engineyard gem is
38
+ not made to be a part of your application and may cause version conflicts with
39
+ other parts of rails.
40
+
41
+ ### Login
42
+
43
+ The first command you run will notice that you are not logged in and will ask
44
+ you for your Engine Yard email and password.
45
+
46
+ ### Configuration
47
+
48
+ The `ey.yml` file allows options to be saved for each environment to which an
49
+ application is deployed.
50
+
51
+ A typical Rails application will have a `config/ey.yml` like this:
52
+
53
+ ---
54
+ # This is all you need for a typical rails application.
55
+ defaults:
56
+ migrate: true
57
+ migration_command: rake db:migrate
58
+ precompile_assets: true
59
+
60
+ The following `ey.yml` file shows other things that can be customized.
61
+ A typical application will not need most of these options.
62
+
63
+ ---
64
+ # 'defaults' applies to all environments running this application.
65
+ # Only set these options if needed. The defaults are correct for most applications.
66
+ defaults:
67
+ bundler: detect # By default, bundler is detected via Gemfile. Options: true: always run bundler; false: never run bundler
68
+ composer: detect # By default, composer is detected via composer.lock. Options: true: always run composer; false: never run composer
69
+ npm: detect # By default, npm is detected via package.json. Options: true: always run npm; false: never run npm
70
+ bundle_without: GROUP1 GROUP2 # exclude groups on bundle install (default: test development)
71
+ bundle_options: --OPTION # extra bundle install options (--local, --quiet, etc; does not override bundle_without)
72
+ copy_exclude: # don't rsync the following dirs (some people like to skip .git)
73
+ - SOME_LARGE_DIR
74
+ maintenance_on_restart: false # show maintenance page during app restart (default: false except for glassfish and mongrel)
75
+ maintenance_on_migrate: true # show maintenance page during migrations (default: true)
76
+ precompile_assets: true # enables rails assets precompilation (default: inferred using app/assets and config/application.rb)
77
+ precomplie_assets_task: assets:precompile # override the assets:precompile rake task
78
+ precompile_unchanged_assets: false # if true, does not check git for changes before precompiling assets.
79
+ asset_dependencies: # a list of relative paths to search for asset changes during each deploy.
80
+ - app/assets # default
81
+ - lib/assets # default
82
+ - vendor/assets # default
83
+ - Gemfile.lock # default
84
+ - config/routes.rb # default
85
+ - config/application.rb # default
86
+ - config/requirejs.yml # custom option (be sure to include defaults if you specify this option)
87
+ asset_strategy: shifting # choose an alternet asset management strategy. See rails_assets/strategy.rb for more info.
88
+ asset_roles: :all # specify on which roles to compile assets (default: [:app, :app_master, :solo])
89
+ ignore_database_adapter_warning: true # hide database adapter warning if you don't use MySQL or PostgreSQL (default: false)
90
+
91
+ # Environment specific options apply only to a single environment and override settings in defaults.
92
+ environments:
93
+ env_production:
94
+ precompile_unchanged_assets: true # precompiles assets even if no changes would be detected (does not check for changes at all).
95
+ asset_strategy: shifting # choose an alternet asset management strategy (shifting, cleaning, private, shared)
96
+ asset_roles: :all # specify on which roles to compile assets (default: [:app, :app_master, :solo] - must be an Array)
97
+ env_staging
98
+ asset_strategy: private # Use an asset management that always refreshes, so staging enviroments don't get conflicts
99
+
100
+ These options in `ey.yml` will only work if the file is committed to your
101
+ application repository. Make sure to commit this file. Different branches
102
+ may also have different versions of this file if necessary. The ey.yml file
103
+ found in the deploying commit will be used for the current deploy.
104
+
105
+
106
+ ### Commands
107
+
108
+ #### ey init
109
+
110
+ Initialize a repository for deployment on Engine Yard Cloud.
111
+
112
+ This command writes or updates an ey.yml file which explains options available
113
+ for customizing the deployment process.
114
+
115
+ `ey init` can be run in existing applications to update the ey.yml file
116
+ without losing existing settings.
117
+
118
+ NOTE: Please verify all settings and changes after running ey init for
119
+ the first time.
120
+
121
+ #### ey deploy
122
+
123
+ This command must be run within the current directory containing the app to be
124
+ deployed. If ey.yml specifies a default branch then the ref parameter can be
125
+ omitted. Furthermore, if a default branch is specified but a different
126
+ command is supplied the deploy will fail unless `--ignore-default-branch`
127
+ is used.
128
+
129
+ If ey.yml does not specify a default migrate choice, you will be prompted to
130
+ specify a migration choice. A different command can later be specified via
131
+ `--migrate "ruby do_migrations.rb"`. Migrations can also be skipped entirely
132
+ by using --no-migrate.
133
+
134
+ Options:
135
+
136
+ -r, [--ref=REF] [--branch=] [--tag=] # Git ref to deploy. May be a branch, a tag, or a SHA.
137
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
138
+ -a, [--app=APP] # Name of the application to deploy
139
+ -e, [--environment=ENVIRONMENT] # Environment in which to deploy this application
140
+ -m, [--migrate=MIGRATE] # Run migrations via [MIGRATE]; use --no-migrate to avoid running migrations
141
+ -v, [--verbose] # Be verbose
142
+ [--ignore-default-branch] # Force a deploy of the specified branch even if a default is set
143
+ [--ignore-bad-master] # Force a deploy even if the master is in a bad state
144
+ [--extra-deploy-hook-options key:val] # Additional options to be made available in deploy hooks (in the 'config' hash)
145
+ # Add more keys as follows: --extra-deploy-hook-options key1:val1 key2:val2
146
+
147
+ #### ey timeout-deploy
148
+
149
+ The latest running deployment will be marked as failed, allowing a
150
+ new deployment to be run. It is possible to mark a potentially successful
151
+ deployment as failed. Only run this when a deployment is known to be
152
+ wrongly unfinished/stuck and when further deployments are blocked.
153
+
154
+ NOTICE: This command is will indiscriminately timeout any deploy, with no
155
+ regard for its potential success or failure. Confirm that the running
156
+ deploy is actually stuck or broken before running this command. If run
157
+ against a deploy that would succeed, it could cause the deployment to be
158
+ marked as failed incorrectly.
159
+
160
+ Options:
161
+
162
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
163
+ -a, [--app=APP] # Name of the application containing the environment
164
+ -e, [--environment=ENVIRONMENT] # Name of the environment with the desired deployment
165
+
166
+
167
+ #### ey status
168
+
169
+ Show the status of most recent deployment of the specified application and
170
+ environment. This action only informational and will not change your application.
171
+
172
+ Options:
173
+
174
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
175
+ -a, [--app=APP] # Name of the application containing the environment
176
+ -e, [--environment=ENVIRONMENT] # Name of the environment with the desired deployment
177
+
178
+ #### ey environments
179
+
180
+ By default, environments for this app are displayed. The `--all` option will
181
+ display all environments, including those for this app.
182
+
183
+ Options:
184
+
185
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
186
+ -a, [--app=APP] # Name of the application containing the environments
187
+ -e, [--environment=ENVIRONMENT] # Show only environments matching named environment
188
+ -s, [--simple] # Print each environment name on its own on a new line
189
+ -a, [--all] # Show all environments, not just ones associated with this application.
190
+
191
+ #### ey servers
192
+
193
+ List all servers on an environment.
194
+
195
+ Options:
196
+
197
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
198
+ -e, [--environment=ENVIRONMENT] # Show only servers in the named environment
199
+ -u, [--user] # Print the user@ in front of the server hostname to make ssh connections simpler
200
+ -s, [--simple] # Print each server on a new line with hostname, role, and name separated by tabs
201
+ -S, [--host] # Print each server on a new line with hostname only. Use -Su for 'user@host'
202
+
203
+ Example output:
204
+
205
+ $ ey servers -s
206
+ ec2-10-0-0-0.us-west-2.compute.amazonaws.com i-aabbccdd app_master
207
+ ec2-10-0-0-1.us-west-2.compute.amazonaws.com i-bbccddee app
208
+ ec2-10-0-0-2.us-west-2.compute.amazonaws.com i-ccddeeff db_master
209
+ ec2-10-0-0-3.us-west-2.compute.amazonaws.com i-ddeeffaa util resque
210
+
211
+ $ ey servers -Su
212
+ deploy@ec2-10-0-0-0.us-west-2.compute.amazonaws.com
213
+ deploy@ec2-10-0-0-1.us-west-2.compute.amazonaws.com
214
+ deploy@ec2-10-0-0-2.us-west-2.compute.amazonaws.com
215
+ deploy@ec2-10-0-0-3.us-west-2.compute.amazonaws.com
216
+
217
+
218
+ #### ey logs
219
+
220
+ Displays Engine Yard configuration logs for all servers in the environment. If
221
+ recipes were uploaded to the environment and run, their logs will also be
222
+ displayed beneath the main configuration logs.
223
+
224
+ Options:
225
+
226
+ -e, [--environment=ENVIRONMENT] # Environment with the interesting logs
227
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
228
+
229
+ #### ey rebuild
230
+
231
+ Engine Yard's main configuration run occurs on all servers. Mainly used to fix
232
+ failed configuration of new or existing servers, or to update servers to latest
233
+ Engine Yard stack (e.g. to apply an Engine Yard supplied security patch).
234
+
235
+ Note that uploaded recipes are also run after the main configuration run has
236
+ successfully completed.
237
+
238
+ This command will return immediately, but the rebuild process may take a few
239
+ minutes to complete.
240
+
241
+ Options:
242
+
243
+ -e, [--environment=ENVIRONMENT] # Environment to rebuild
244
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
245
+
246
+ #### ey rollback
247
+
248
+ Uses code from previous deploy in the `/data/APP_NAME/releases` directory on
249
+ remote server(s) to restart application servers.
250
+
251
+ Options:
252
+
253
+ -v, [--verbose] # Be verbose
254
+ -a, [--app=APP] # Name of the application to roll back
255
+ -e, [--environment=ENVIRONMENT] # Environment in which to roll back the application
256
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
257
+
258
+ #### ey recipes apply
259
+
260
+ This is similar to `ey rebuild` except Engine Yard's main configuration step is
261
+ skipped.
262
+
263
+ Options:
264
+
265
+ -e, [--environment=ENVIRONMENT] # Environment in which to apply recipes
266
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
267
+
268
+ #### ey recipes upload
269
+
270
+ The current directory should contain a subdirectory named `cookbooks` to be
271
+ uploaded.
272
+
273
+ Options:
274
+
275
+ -e, [--environment=ENVIRONMENT] # Environment that will receive the recipes
276
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
277
+ [--apply] # Apply the recipes (same as above) immediately after uploading
278
+ -f, [--file=FILE] # Specify a gzipped tar file (.tgz) for upload instead of cookbooks/ directory
279
+
280
+ #### ey recipes download
281
+
282
+ The recipes will be unpacked into a directory called `cookbooks` in the current
283
+ directory. If the cookbooks directory already exists, an error will be raised.
284
+
285
+ Options:
286
+
287
+ -e, [--environment=ENVIRONMENT] # Environment for which to download the recipes
288
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
289
+
290
+ #### ey web enable
291
+
292
+ Remove the maintenance page for this application in the given environment.
293
+
294
+ Options:
295
+
296
+ -v, [--verbose] # Be verbose
297
+ -a, [--app=APP] # Name of the application whose maintenance page will be removed
298
+ -e, [--environment=ENVIRONMENT] # Environment on which to take down the maintenance page
299
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
300
+
301
+ #### ey web disable
302
+
303
+ The maintenance page is taken from the app currently being deployed. This means
304
+ that you can customize maintenance pages to tell users the reason for downtime
305
+ on every particular deploy.
306
+
307
+ Maintenance pages searched for in order of decreasing priority:
308
+
309
+ * public/maintenance.html.custom
310
+ * public/maintenance.html.tmp
311
+ * public/maintenance.html
312
+ * public/system/maintenance.html.default
313
+
314
+ Options:
315
+
316
+ -v, [--verbose] # Be verbose
317
+ -a, [--app=APP] # Name of the application whose maintenance page will be put up
318
+ -e, [--environment=ENVIRONMENT] # Environment on which to put up the maintenance page
319
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
320
+
321
+ #### ey web restart
322
+
323
+ Restarts the application servers for the given application. Enables maintenance
324
+ pages if it would be enabled during a normal deploy. Respects the
325
+ `maintenance_on_restart` ey.yml configuration.
326
+
327
+ Options:
328
+
329
+ -v, [--verbose] # Be verbose
330
+ -a, [--app=APP] # Name of the application to restart
331
+ -e, [--environment=ENVIRONMENT] # Name of the environment to restart
332
+ -c, [--account=ACCOUNT] # Name of the account in which the app and environment can be found
333
+
334
+ #### ey ssh
335
+
336
+ If a command is supplied, it will be run, otherwise a session will be opened.
337
+ The application master is used for environments with clusters. Option `--all`
338
+ requires a command to be supplied and runs it on all servers.
339
+
340
+ Note: this command is a bit picky about its ordering. To run a command with
341
+ arguments on all servers, like `rm -f /some/file`, you need to order it like so:
342
+
343
+ $ ey ssh "rm -f /some/file" -e my-environment --all
344
+
345
+ Options:
346
+
347
+ [--utilities=one two three] # Run command on the utility servers with the given names. If no names are given, run on all utility servers.
348
+ [--app-servers] # Run command on all application servers
349
+ [--db-servers] # Run command on the database servers
350
+ [--db-master] # Run command on the master database server
351
+ -A, [--all] # Run command on all servers
352
+ [--db-slaves] # Run command on the slave database servers
353
+ -e, [--environment=ENVIRONMENT] # Name of the environment to ssh into
354
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
355
+ -s, [--shell] # Use a particular shell instead of the default bash
356
+ [--no-shell] # Don't use a shell to run the command (default behavior of ssh)
357
+
358
+ #### ey launch
359
+
360
+ Open the application in a browser.
361
+
362
+ Options:
363
+
364
+ -c, [--account=ACCOUNT] # Name of the account in which the environment can be found
365
+ -a, [--app=APP] # Name of the application to launch
366
+ -e, [--environment=ENVIRONMENT] # Name of the environment for the application
367
+
368
+ #### ey whoami
369
+
370
+ Who am I logged in as? Prints the name and email of the current logged in user.
371
+
372
+ #### ey login
373
+
374
+ Log in and verify access to EY Cloud. Use logout first if you need to switch
375
+ user accounts.
376
+
377
+ #### ey logout
378
+
379
+ Remove the current API key from `~/.eyrc` or file at env variable `$EYRC`
380
+
381
+
382
+ ### Global Options
383
+
384
+ All commands accept the following options.
385
+
386
+ --api-token=API_TOKEN # Use API-TOKEN to authenticate this command
387
+ --serverside-version=SERVERSIDE_VERSION # Please use with care! Override deploy system version
388
+ # (same as ENV variable ENGINEYARD_SERVERSIDE_VERSION)
389
+
390
+ Not all commands will make use of these options. For example,
391
+ ey status does not use, and will ignore the --serverside-version flag.
392
+
393
+ Also, please consider that it's usually not a good idea to override the
394
+ version of serverside unless you know what you're doing. CLI and serverside
395
+ versions are designed to work together and mixing them can cause errors.
396
+
397
+
398
+ ### API Client
399
+
400
+ See [engineyard-cloud-client](https://github.com/engineyard/engineyard-cloud-client) for the API client library.
401
+
402
+ ### DEBUG
403
+
404
+ The API commands will print internal information if `$DEBUG` is set:
405
+
406
+ $ DEBUG=1 ey environments --all
407
+ GET https://cloud.engineyard.com/api/v2/apps
408
+ Params {"no_instances"=>"true"}
409
+ Headers {"User-Agent"=>"EngineYard/2.0.0 EngineYardCloudClient/1.0.5",
410
+ "Accept"=>"application/json",
411
+ "X-EY-Cloud-Token"=>"YOURTOKEN"}
412
+ Response {"apps"=>
413
+ [{"environments"=>[],
414
+ "name"=>"myapp",
415
+ "repository_uri"=>"git@github.com:myaccount/myapp.git",
416
+ "app_type_id"=>"rails3",
417
+ "account"=>{"name"=>"myaccount", "id"=>1234},
418
+ "id"=>12345}]}
419
+
420
+ ### Releasing
421
+
422
+ To release the engineyard gem, use the command below and then follow the
423
+ instructions it outputs.
424
+
425
+ bundle exec rake release
426
+
427
+ This will remove the `.pre` from the current version, then bump the patch level
428
+ and add `.pre` after for the next version. The version will be tagged in git.
429
+
430
+ To release a new `engineyard-serverside` gem that has already been pushed to
431
+ rubygems.org, update `lib/engineyard/version.rb` to refer to the
432
+ `engineyard-serverside` version you want to release, then make a commit.
433
+ Each engineyard gem is hard-linked to a specific default engineyard-serverside
434
+ version which can be overriden with the `--serverside-version` option.
435
+
436
+ The `engineyard-serverside-adapter` version does not need to be bumped in the
437
+ gemspec unless you're also releasing a new version of that gem. Versions
438
+ of adapter are no longer linked to serverside.