momentum 0.0.7 → 0.0.8
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/README.md +14 -1
- data/lib/momentum/opsworks.rb +1 -1
- data/lib/momentum/railtie.rb +1 -0
- data/lib/momentum/version.rb +1 -1
- data/lib/tasks/ow-logs.rake +2 -2
- data/lib/tasks/ow-ssh.rake +25 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fdb4ecdd5ff63a3f4dee9e0b6f59510ff08d4cdf
|
4
|
+
data.tar.gz: e5c9d2514ae33d2498bad33cc71eb30fa77097a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e5a6338495a01641e31ad6495f5cb0a2b398d8992d8ab736abc11a696198b49c0b0ea507a7d1e000682f6f981e450d3d9c0e31b75fb9d05b901b1b35aaf0d3d
|
7
|
+
data.tar.gz: fd59403309567ade6b47ee5bbe9cd634b5a3000277a3b38a35d0d13cf144d10ea5d7e99d820fb90b2aa5223c58f571d324ae8de124913355bee79a17fc2fc3c6
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
0.0.8 (2014-02-14)
|
2
|
+
-----
|
3
|
+
|
4
|
+
* Add `ow:ssh` task - [@joeyAghion](https://github.com/joeyAghion)
|
5
|
+
|
6
|
+
0.0.7 (2014-01-31)
|
7
|
+
-----
|
8
|
+
|
9
|
+
* Fold memcached connection details into returned configuration, so that other environments might connect - [@joeyAghion](https://github.com/joeyAghion)
|
10
|
+
|
1
11
|
0.0.6 (2014-01-31)
|
2
12
|
-----
|
3
13
|
|
data/README.md
CHANGED
@@ -27,9 +27,13 @@ And then execute:
|
|
27
27
|
$ bundle exec rake momentum:init
|
28
28
|
|
29
29
|
|
30
|
+
## Naming
|
31
|
+
|
32
|
+
It's assumed that stacks are named with an app name and modifier, such as _todo-production_. The modifier is usually an environment, but might also be a developer name or some other label, such _todo-joey_.
|
33
|
+
|
30
34
|
## Rake Tasks
|
31
35
|
|
32
|
-
This gem adds a few useful rake tasks to your project.
|
36
|
+
This gem adds a few useful rake tasks to your project. By default, the `aws_id` and `aws_secret` arguments are taken from `AWS_ID` and `AWS_SECRET` ENV variables. The `to` argument refers to the modifier mentioned above (e.g., _production_). It's appended to the configured `app_base_name` to form the stack name.
|
33
37
|
|
34
38
|
### momentum:init
|
35
39
|
|
@@ -81,6 +85,15 @@ Execute a tail -f (follow) command against an error or access log file on the gi
|
|
81
85
|
|
82
86
|
The log path may include wildcards.
|
83
87
|
|
88
|
+
### ow:ssh[to,layer_or_instance,aws_id,aws_secret]
|
89
|
+
|
90
|
+
SSH to an OpsWorks instance. If the `layer_or_instance` argument is a layer, an online instance is chosen randomly from the layer. Otherwise, the name of an online instance is expected. E.g.:
|
91
|
+
|
92
|
+
bundle exec rake ow:ssh[staging,memcached]
|
93
|
+
# or...
|
94
|
+
bundle exec rake ow:ssh[staging,rails-app1]
|
95
|
+
|
96
|
+
|
84
97
|
## Configuration:
|
85
98
|
|
86
99
|
* **app_base_name** - Your app's name. Stacks are assumed to be named like _appbasename-env_ (e.g., _gravity-staging_ or _reflection-joey_).
|
data/lib/momentum/opsworks.rb
CHANGED
@@ -33,7 +33,7 @@ module Momentum::OpsWorks
|
|
33
33
|
client.describe_instances(query)[:instances].select { |i| i[:status] == 'online' }
|
34
34
|
end
|
35
35
|
|
36
|
-
def self.ssh_command_to(endpoint, command)
|
36
|
+
def self.ssh_command_to(endpoint, command = nil)
|
37
37
|
[ 'ssh -t -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no',
|
38
38
|
(['-i', ENV['AWS_PUBLICKEY']] if ENV['AWS_PUBLICKEY']),
|
39
39
|
(['-l', ENV['AWS_USER']] if ENV['AWS_USER']),
|
data/lib/momentum/railtie.rb
CHANGED
data/lib/momentum/version.rb
CHANGED
data/lib/tasks/ow-logs.rake
CHANGED
@@ -10,12 +10,12 @@ namespace :ow do
|
|
10
10
|
name = stack_name(args[:to])
|
11
11
|
stack = Momentum::OpsWorks.get_stack(ow, name)
|
12
12
|
instance = Momentum::OpsWorks.get_online_instances(ow, stack_id: stack[:stack_id]).detect{|i| i[:hostname] == args[:instance] }
|
13
|
+
raise "Online instance #{args[:instance]} not found for #{name} stack!" unless instance
|
13
14
|
endpoint = Momentum::OpsWorks.get_instance_endpoint(instance)
|
14
|
-
raise "Online instance #{args[:instance]} not found for #{name} stack!" unless endpoint
|
15
15
|
|
16
16
|
$stderr.puts "Starting tail -f remotely... (use Ctrl-D to exit cleanly)"
|
17
17
|
command = "'sudo su deploy -c \"tail -f #{args[:log_path]}\"'"
|
18
|
-
sh Momentum::OpsWorks.ssh_command_to(endpoint,command)
|
18
|
+
sh Momentum::OpsWorks.ssh_command_to(endpoint, command)
|
19
19
|
end
|
20
20
|
|
21
21
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
namespace :ow do
|
2
|
+
|
3
|
+
require 'momentum/opsworks'
|
4
|
+
require 'momentum/tasks'
|
5
|
+
|
6
|
+
desc "Starts SSH session on a remote OpsWorks instance, as specified by layer or instance name."
|
7
|
+
task :ssh, [:to, :layer_or_instance, :aws_id, :aws_secret] do |t, args|
|
8
|
+
require_credentials!(args)
|
9
|
+
ow = Momentum::OpsWorks.client(args[:aws_id], args[:aws_secret])
|
10
|
+
name = stack_name(args[:to])
|
11
|
+
stack = Momentum::OpsWorks.get_stack(ow, name)
|
12
|
+
layer = ow.describe_layers(stack_id: stack[:stack_id])[:layers].detect { |l| l[:shortname] == args[:layer_or_instance] }
|
13
|
+
instance = if layer
|
14
|
+
Momentum::OpsWorks.get_online_instances(ow, layer_id: layer[:layer_id]).sample
|
15
|
+
else
|
16
|
+
Momentum::OpsWorks.get_online_instances(ow, stack_id: stack[:stack_id]).detect { |i| i[:hostname] == args[:layer_or_instance] }
|
17
|
+
end
|
18
|
+
raise "No online instances matching #{args[:layer_or_instance].inspect} were found!" unless instance
|
19
|
+
endpoint = Momentum::OpsWorks.get_instance_endpoint(instance)
|
20
|
+
|
21
|
+
$stderr.puts "Starting SSH... (use Ctrl-D to exit cleanly)"
|
22
|
+
sh Momentum::OpsWorks.ssh_command_to(endpoint)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: momentum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joey Aghion
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-02-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -77,6 +77,7 @@ files:
|
|
77
77
|
- lib/tasks/ow-cookbooks.rake
|
78
78
|
- lib/tasks/ow-deploy.rake
|
79
79
|
- lib/tasks/ow-logs.rake
|
80
|
+
- lib/tasks/ow-ssh.rake
|
80
81
|
- momentum.gemspec
|
81
82
|
homepage: https://github.com/artsy/momentum
|
82
83
|
licenses:
|