ey_info 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/lib/ey_info.rb CHANGED
@@ -1,14 +1,14 @@
1
1
  require 'yaml'
2
2
  require 'rubygems'
3
+ gem 'engineyard', '1.3.17'
3
4
  require 'engineyard'
4
5
  require 'optparse'
5
6
  require 'erb'
6
7
  require 'pp'
8
+ require File.expand_path("../version", __FILE__)
7
9
  require File.expand_path("../text_injector", __FILE__)
8
10
 
9
11
  module EyInfo
10
- Version = "0.1.3"
11
-
12
12
  class CLI
13
13
  def self.run(args)
14
14
  cli = new(args)
data/lib/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module EyInfo
2
+ Version = "0.1.4"
3
+ end
metadata CHANGED
@@ -1,93 +1,65 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ey_info
3
- version: !ruby/object:Gem::Version
4
- hash: 29
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 3
10
- version: 0.1.3
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Tung Nguyen
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-10-18 00:00:00 -07:00
19
- default_executable: ey_info
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2011-12-03 00:00:00.000000000 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
22
16
  name: engineyard
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &70148229557400 !ruby/object:Gem::Requirement
25
18
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 13
30
- segments:
31
- - 1
32
- - 3
33
- - 11
34
- version: 1.3.11
19
+ requirements:
20
+ - - =
21
+ - !ruby/object:Gem::Version
22
+ version: 1.3.17
35
23
  type: :runtime
36
- version_requirements: *id001
37
- description: Ey Info - Easy way to setup ssh keys for ey cloud servers and also to dynamically pull server information from your ey servers and just it within capistrano.
38
- email:
24
+ prerelease: false
25
+ version_requirements: *70148229557400
26
+ description: Ey Info - Easy way to setup ssh keys for ey cloud servers and also to
27
+ dynamically pull server information from your ey servers and just it within capistrano.
28
+ email:
39
29
  - tongueroo@gmail.com
40
- executables:
30
+ executables:
41
31
  - ey_info
42
32
  extensions: []
43
-
44
- extra_rdoc_files:
45
- - README.markdown
46
- - TODO
47
- files:
48
- - README.markdown
49
- - Rakefile
50
- - TODO
51
- - bin/ey_info
52
- - ey_info.gemspec
33
+ extra_rdoc_files: []
34
+ files:
53
35
  - lib/ey_info.rb
54
36
  - lib/templates/default_ssh_config.erb
55
37
  - lib/text_injector.rb
56
- - test/ey_info_test.rb
57
- - test/test_helper.rb
38
+ - lib/version.rb
39
+ - bin/ey_info
58
40
  has_rdoc: true
59
41
  homepage: http://github.com/tongueroo/ey_info
60
42
  licenses: []
61
-
62
43
  post_install_message:
63
44
  rdoc_options: []
64
-
65
- require_paths:
45
+ require_paths:
66
46
  - lib
67
- required_ruby_version: !ruby/object:Gem::Requirement
47
+ required_ruby_version: !ruby/object:Gem::Requirement
68
48
  none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
76
- required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
54
  none: false
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- hash: 3
82
- segments:
83
- - 0
84
- version: "0"
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
85
59
  requirements: []
86
-
87
60
  rubyforge_project:
88
- rubygems_version: 1.4.2
61
+ rubygems_version: 1.6.2
89
62
  signing_key:
90
63
  specification_version: 3
91
64
  summary: Ey Info - Easy way to setup ssh keys for ey cloud servers
92
65
  test_files: []
93
-
data/README.markdown DELETED
@@ -1,72 +0,0 @@
1
- Ey Info
2
- =======
3
-
4
- Summary
5
- -------
6
- Quickly set up your ~/.ssh/config shortcuts for your ey cloud servers.
7
-
8
- Install
9
- -------
10
-
11
- <pre>
12
- gem install --no-ri --no-rdoc ey_info # sudo if you need to
13
- </pre>
14
-
15
- Usage Command Line
16
- -------
17
-
18
- <pre>
19
- # will set up your ~/ssh/config shortcuts.
20
- $ ey_info -i "id_rsa" -u "root" # same as defaults
21
- $ ey_info # same as above
22
- </pre>
23
-
24
- If you're environment in the ey cloud dashboard is called 'production' with an app_master, and 2 app instances.
25
-
26
- <pre>
27
- $ ssh production_app_master
28
- vs
29
- $ ssh -i ~/.ssh/id-rsa root@ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com
30
-
31
- $ ssh production_app1
32
- $ ssh production_app2
33
- $ ssh production_db_master
34
- $ ssh production_db_slave1
35
- </pre>
36
-
37
- Usage With Capistrano
38
- -------
39
-
40
- I still find capistrano a very useful utility for debugging and still use wanted to use it with EY's cloud.
41
-
42
- <pre>
43
- $ cap invoke COMMAND="..." is extremely useful. The engineyard gem provides a
44
- "ey ssh 'uptime' --all -e production" command but it loops through the servers one by one instead of running
45
- the commands in parallel, which can be slow if you have lots of servers.
46
- </pre>
47
-
48
- You can use this gem to dynamically grab the ec2 hosts information from your ey environment and set up your
49
- capistrano roles.
50
-
51
- Here are a few examples of how you can use it in your config/deploy.rb:
52
-
53
- <pre>
54
- require 'ey_info'
55
- task :production do
56
- @info = EyInfo::Hosts.new
57
- hosts = @info.hosts("production") # parameter is the environment name in EY's gui interface
58
-
59
- role :db, hosts.find {|x| x[:role] == "app_master" }[:ssh_key], :primary => true
60
- # app instances
61
- hosts.select {|x| x[:role] =~ /app/ }.each do |h|
62
- role :web, h[:ssh_key]
63
- role :app, h[:ssh_key], :sphinx => true
64
- end
65
- # utility instances
66
- hosts.select {|x| x[:role] =~ /util/ }.each do |h|
67
- role :web, h[:ssh_key]
68
- role :app, h[:ssh_key], :sphinx => true
69
- end
70
- end
71
- </pre>
72
-
data/Rakefile DELETED
@@ -1,30 +0,0 @@
1
- require File.expand_path('../lib/ey_info', __FILE__)
2
- begin
3
- require 'jeweler'
4
- Jeweler::Tasks.new do |gem|
5
- gem.version = EyInfo::Version
6
- gem.name = "ey_info"
7
- gem.executables = %W(ey_info)
8
- gem.summary = %Q{Ey Info - Easy way to setup ssh keys for ey cloud servers}
9
- gem.description = %Q{Ey Info - Easy way to setup ssh keys for ey cloud servers and also to dynamically pull server information from your ey servers and just it within capistrano.}
10
- gem.homepage = "http://github.com/tongueroo/ey_info"
11
- gem.email = [ "tongueroo@gmail.com" ]
12
- gem.authors = [ "Tung Nguyen" ]
13
- gem.add_dependency "engineyard", ">=1.3.11"
14
- # gem.add_dependency "net-sftp", ">=2.0.0"
15
- # gem.add_development_dependency "mocha", ">= 0"
16
- end
17
- rescue LoadError
18
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
19
- end
20
-
21
- require 'rake/testtask'
22
- Rake::TestTask.new(:test) do |test|
23
- test.libs << 'lib' << 'test'
24
- test.pattern = 'test/**/*_test.rb'
25
- test.verbose = true
26
- end
27
-
28
- task :test => :check_dependencies
29
- task :default => :test
30
-
data/TODO DELETED
@@ -1,23 +0,0 @@
1
- CloudInfo::Instances outline
2
- 1. connect to ec2
3
-
4
- 2. find instances that are in the ey-env
5
- find ey instances from ey-recipes for specific environment
6
- grab aws_group from one of the instances in the ey-env
7
- instances in group
8
- I can simply also just grab the instances from ey-recipes instead of working back from the aws_group..
9
-
10
- 3. connect to instances (ssh) and build info
11
- connect to servers
12
- download json and store in dictionary lookup
13
- at this point we have enough data about the servers to build up the info we want
14
-
15
- 4. hosts
16
- {:prod_app0 => 'xx.xx.xx.xx', :prod_app1 => 'xx.xx.xx.xx'}
17
-
18
- ============
19
- good stopping point:
20
- * figure out a way to test exception from ssh.connect
21
- * bad password
22
- * timeout
23
-
data/ey_info.gemspec DELETED
@@ -1,54 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{ey_info}
8
- s.version = "0.1.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Tung Nguyen"]
12
- s.date = %q{2011-01-03}
13
- s.default_executable = %q{ey_info}
14
- s.description = %q{Ey Info - Easy way to setup ssh keys for ey cloud servers and also to dynamically pull server information from your ey servers and just it within capistrano.}
15
- s.email = ["tongueroo@gmail.com"]
16
- s.executables = ["ey_info"]
17
- s.extra_rdoc_files = [
18
- "README.markdown",
19
- "TODO"
20
- ]
21
- s.files = [
22
- "README.markdown",
23
- "Rakefile",
24
- "TODO",
25
- "bin/ey_info",
26
- "lib/ey_info.rb",
27
- "lib/templates/default_ssh_config.erb",
28
- "lib/text_injector.rb",
29
- "test/ey_info_test.rb",
30
- "test/test_helper.rb"
31
- ]
32
- s.homepage = %q{http://github.com/tongueroo/ey_info}
33
- s.require_paths = ["lib"]
34
- s.rubygems_version = %q{1.3.7}
35
- s.summary = %q{Ey Info - Easy way to setup ssh keys for ey cloud servers}
36
- s.test_files = [
37
- "test/ey_info_test.rb",
38
- "test/test_helper.rb"
39
- ]
40
-
41
- if s.respond_to? :specification_version then
42
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
43
- s.specification_version = 3
44
-
45
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
- s.add_runtime_dependency(%q<engineyard>, [">= 1.3.11"])
47
- else
48
- s.add_dependency(%q<engineyard>, [">= 1.3.11"])
49
- end
50
- else
51
- s.add_dependency(%q<engineyard>, [">= 1.3.11"])
52
- end
53
- end
54
-
data/test/ey_info_test.rb DELETED
@@ -1,19 +0,0 @@
1
- require File.expand_path("../test_helper", __FILE__)
2
-
3
- class EyInfoTest < Test::Unit::TestCase
4
- def setup
5
- @info = EyInfo::Hosts.new
6
- end
7
-
8
- def test_all_hosts_hash
9
- # pp @info.all_hosts
10
- assert_equal @info.all_hosts.class, Hash
11
- assert @info.all_hosts.keys.include?(:beta)
12
- end
13
-
14
- def test_hosts_hash
15
- pp @info.hosts(:alpha)
16
- assert @info.hosts(:alpha).class, Array
17
- end
18
-
19
- end
data/test/test_helper.rb DELETED
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- ENV['RAILS_ENV'] = 'test'
4
-
5
- require 'rubygems'
6
- require 'test/unit'
7
- require 'mocha'
8
- require 'pp'
9
- require File.expand_path("../../lib/ey_info", __FILE__)
10
-
11
- module TestExtensions
12
- end
13
-
14
- class Test::Unit::TestCase
15
- include TestExtensions
16
- end