rcmd 1.6.6 → 1.6.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e5106694e786c92c0c943a91bbf28656735c4e2d469516de309e0d533ce0982b
4
- data.tar.gz: 4ea8223a88dc5f0fde2d781978ed968c3611a6c9c7dae659ac76bf415e734ca6
3
+ metadata.gz: 7abff8dc6abdc50af46ddb4260bc59e068383d4e6e51edb0ce3e981bbd1d37a3
4
+ data.tar.gz: e0f7a6d2c1f0aefab14b060078020e508f3e3684d5007c62aed910637be05f82
5
5
  SHA512:
6
- metadata.gz: ab2df75c3ac10c54637a9fe9c241a2e91d738a3f36e0d37b4f86124f6ab4134990d4496e92db8fe9b03ff075618d588ccdd18ad20c5c630835e1b37f462496e5
7
- data.tar.gz: 8ed67ad5df5509b965623e9f6af9aa100889d3548d74fed7174740c65ecef97ededb0dd575c48793508c920d2363a258f3bde24cca65b8e352445ebc5c54e8d9
6
+ metadata.gz: 5298eec2aaba9b3bc402a61e9db1bdaec8f65eef01d7683415e9392c68fe1cda16741dc679892f4d76fa42e43e4ee8d8bd0219ddf136eba8fe556df64bc2cdd1
7
+ data.tar.gz: 0d0a28530baa4dcb63f397049aac78fbc4eb60b140e28e432e552c59edd4a6a017b5be4d3f2e279edf3f207591996f0611b6e16d4bbea725f0f8159aa65ee8a7
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rcmd (1.6.6)
4
+ rcmd (1.6.7)
5
5
  activerecord
6
6
  activesupport
7
7
  io-console
data/exe/rcmd CHANGED
@@ -19,7 +19,8 @@ require 'rcmd'
19
19
  options = { :threads => 4, :nodes => nil, :environment => nil, :user => 'root', :password => false,
20
20
  :command => nil, :quiet => false, :version => false, :debug => false, :expression => nil,
21
21
  :database => false, :config => false, :type => nil, :host => nil, :os => nil ,
22
- :hosts_file => File.expand_path('~/.ssh/known_hosts'), :keys_only => false }
22
+ :hosts_file => File.expand_path('~/.ssh/known_hosts'), :keys_only => false,
23
+ :key_file => Dir["#{File.expand_path('~/.ssh')}/**"].map { |f| f if File.open(f, 'r').readline.include?('PRIVATE') }.compact }
23
24
 
24
25
  host_list = []
25
26
 
@@ -30,6 +31,7 @@ opts.on('-u username', '--username username', String, "Username for SSH connecti
30
31
  opts.on('-n nodes', '--nodes x,y,z', Array, "Comma seperated list of nodes. use '-' for a space seperated list piped from another command") { |v| options[:nodes] = v }
31
32
  opts.on('-r regex', '--regexp regex', Regexp, "Use Regex to build host list (ruby regexp)") { |v| options[:expression] = v}
32
33
  opts.on('-t threads', '--threads threads', Integer, "Number of threads to run") { |v| options[:threads] = v }
34
+ opts.on('-k keyfile', '--keyfile keyfile', String, "Keyfile to use for the connections") { |v| options[:key_file] = v }
33
35
  opts.on('-c <command>', '--command <command>', String, "Quoted string containing the command to be run") { |v| options[:command] = v }
34
36
  opts.on('-q', '--quiet', "Suppress stdout of commands. stderr will still be displayed") { |v| options[:quiet] = v }
35
37
  opts.on('-v', '--version', "Print what version of the command is in use") { |v| options[:version] = v}
@@ -43,6 +45,8 @@ opts.on('-T server-type ', '--type server-type', "Database query on server type"
43
45
  opts.on('-H hostname-pattern', '--host hostname-pattern', "Database query on hostname (sql like query)") { |v| options[:host] = v}
44
46
  opts.on('-O operating-system', '--os operating-system', "Database query on Operating System string") { |v| options[:os] = v}
45
47
 
48
+
49
+
46
50
  # Process options
47
51
  begin
48
52
  opts.parse!(ARGV)
@@ -129,6 +133,7 @@ Rcmd.command= options[:command]
129
133
  Rcmd.debug= options[:debug]
130
134
  Rcmd.keys_only = options[:keys_only]
131
135
  Rcmd.hosts_file = options[:host_file]
136
+ Rcmd.key_file = options[:key_file]
132
137
 
133
138
  # Execute command on provided hosts
134
139
  Rcmd.run_command
@@ -48,6 +48,9 @@ Self class for setting up accessors
48
48
 
49
49
  # String fo path to user_known_hosts_file
50
50
  attr_accessor :hosts_file
51
+
52
+ # Array of key_file(s) to use
53
+ attr_accessor :key_file
51
54
  end
52
55
 
53
56
  # Main method for this module which should be called after the correct variables have been set.
@@ -101,7 +104,7 @@ Self class for setting up accessors
101
104
  num_threads.times do |i|
102
105
  @threads[i] = Thread.new {
103
106
  begin
104
- conn_options = { :user => @user, :host => @queue.pop, :password => nil, :quiet => @quiet, :debug => @debug, :keys_only => @keys_only, :user_known_hosts_file => @hosts_file}
107
+ conn_options = { :user => @user, :host => @queue.pop, :password => nil, :quiet => @quiet, :debug => @debug, :keys_only => @keys_only, :user_known_hosts_file => @hosts_file, :keys => @key_file}
105
108
  STDERR.print "DEBUG :: Connecting to #{conn_options[:host]}\n" if conn_options[:debug]
106
109
  Net::SSH.start(conn_options[:host], conn_options[:user], :password => conn_options[:passwd]) do |session|
107
110
  # Open channel for input/output control
@@ -1,4 +1,4 @@
1
1
  module Rcmd # :notnew:
2
2
  # +VERSION+ - Version number string
3
- VERSION = "1.6.6"
3
+ VERSION = "1.6.7"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rcmd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.6
4
+ version: 1.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Rose
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-05 00:00:00.000000000 Z
11
+ date: 2018-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-ssh