koma 0.8.0 → 0.9.0
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/README.md +24 -2
- data/koma.gemspec +1 -0
- data/lib/koma/backend/ssh.rb +13 -4
- data/lib/koma/cli.rb +2 -0
- data/lib/koma/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33a965754d80b189a101cea02a9e879803b774ab
|
4
|
+
data.tar.gz: 1808ccb3e7afa6090c289d35735c245b2040a391
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6281c8a5b558259025f43ca058ca32fa7a473cc6c32498871da4ffea6ac9dcd2b36cd95cb0cfeca2be0bcaba174dbf575895ac4844550be14bed361e0e4a9eaf
|
7
|
+
data.tar.gz: d4bc1790b1ba8c7ea700053299e1650f6bc35373d5ce89cf1c0973f913d1a093dd5e131765c34426323e8eb0ef762b68bbd86d75c43adb3bbd6ccd7ea46e6a98
|
data/README.md
CHANGED
@@ -46,10 +46,32 @@ $ koma ssh example.com,example.jp
|
|
46
46
|
}
|
47
47
|
```
|
48
48
|
|
49
|
-
### Pro Tip: Gather multiple hosts with
|
49
|
+
### Pro Tip: Gather multiple hosts with ssh_config
|
50
50
|
|
51
51
|
```sh
|
52
|
-
$ cat
|
52
|
+
$ cat <<EOF > ssh_config_tmp
|
53
|
+
Host example_com
|
54
|
+
User k1low
|
55
|
+
Hostname example.com
|
56
|
+
PreferredAuthentications publickey
|
57
|
+
IdentityFile /path/to/example_rsa
|
58
|
+
|
59
|
+
Host example_jp
|
60
|
+
User someone
|
61
|
+
Hostname example.jp
|
62
|
+
PreferredAuthentications publickey
|
63
|
+
IdentityFile /path/to/more/example_jp_rsa
|
64
|
+
EOF
|
65
|
+
|
66
|
+
$ cat ssh_config_tmp | koma ssh
|
67
|
+
```
|
68
|
+
|
69
|
+
```sh
|
70
|
+
$ vagrant ssh-config | koma ssh --key cpu,kernel
|
71
|
+
```
|
72
|
+
|
73
|
+
```sh
|
74
|
+
$ sconb dump example.com | sconb restore | koma ssh --key platform,platform_version
|
53
75
|
```
|
54
76
|
|
55
77
|
## Host inventory keys
|
data/koma.gemspec
CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_runtime_dependency 'highline'
|
24
24
|
spec.add_runtime_dependency 'specinfra', '~> 2.48'
|
25
25
|
spec.add_runtime_dependency 'parallel'
|
26
|
+
spec.add_runtime_dependency 'sconb', '~> 1.2'
|
26
27
|
spec.add_development_dependency 'bundler', '~> 1.9'
|
27
28
|
spec.add_development_dependency 'rake', '~> 10.0'
|
28
29
|
spec.add_development_dependency 'rspec'
|
data/lib/koma/backend/ssh.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
require 'parallel'
|
2
|
+
require 'sconb'
|
2
3
|
|
3
4
|
module Koma
|
4
5
|
module Backend
|
5
6
|
class Ssh < Base
|
7
|
+
attr_accessor :stdin
|
8
|
+
|
6
9
|
def gather
|
7
10
|
if host.include?(',')
|
8
11
|
list = host.split(',').uniq
|
@@ -22,10 +25,16 @@ module Koma
|
|
22
25
|
set :backend, :ssh
|
23
26
|
set :host, host
|
24
27
|
set :request_pty, true
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
28
|
+
if stdin
|
29
|
+
parsed = Sconb::SSHConfig.parse(stdin, host, {})
|
30
|
+
ssh_options = Net::SSH::Config.translate(Hash[parsed[host].map { |k, v| [k.downcase, v] }])
|
31
|
+
else
|
32
|
+
ssh_options = Net::SSH::Config.for(host)
|
33
|
+
ssh_options[:user] = user if user
|
34
|
+
ssh_options[:keys] = [options[:identity_file]] if options[:identity_file]
|
35
|
+
ssh_options[:port] = options[:port] if options[:port]
|
36
|
+
end
|
37
|
+
|
29
38
|
set :ssh_options, ssh_options
|
30
39
|
out(options[:key])
|
31
40
|
end
|
data/lib/koma/cli.rb
CHANGED
@@ -35,6 +35,7 @@ module Koma
|
|
35
35
|
stdin = timeout(5) do
|
36
36
|
$stdin.read
|
37
37
|
end
|
38
|
+
|
38
39
|
rescue Timeout::Error
|
39
40
|
STDERR.puts 'ERROR: "koma ssh" was called with no arguments'
|
40
41
|
STDERR.puts 'Usage: "koma ssh <host1,host2,..>"'
|
@@ -47,6 +48,7 @@ module Koma
|
|
47
48
|
host = ret.join(',')
|
48
49
|
end
|
49
50
|
backend = Koma::Backend::Ssh.new(host, options)
|
51
|
+
backend.stdin = stdin if stdin
|
50
52
|
if options[:yaml]
|
51
53
|
puts YAML.dump(backend.gather)
|
52
54
|
else
|
data/lib/koma/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: koma
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- k1LoW
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sconb
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.2'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.2'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: bundler
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|