ops_team 0.8.4 → 0.8.10

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: 9ac7f508035cd849eeac7d3277f3eeb3a1de9537e31201f0a2dbcbafc6b0765b
4
- data.tar.gz: 2198752b9d2c9e6858a1c472befe4ba6d44475697b9c2f4882a4eef93c5e42ad
3
+ metadata.gz: caa9b859d0dac66be5cc981ed872b591a6c174a5c70dabdf145d415681960831
4
+ data.tar.gz: '08beac67a93906cb88db284977d1a10863820de5fd73369fb782f530cc8ec601'
5
5
  SHA512:
6
- metadata.gz: 2579177f0edf6061b22b4cdb532943b90ac6077a0f265c5c5a4e3c844a0e742446bbf2f14d899df3d80582e175fff7380f83c5d94c0da004ff587ad76f7f82d9
7
- data.tar.gz: 3b4f2a6bc2b604214ad96587430e90031ce529fe2cc03685e33d17bbbf41def8f88f2bba0679a0fe1657f12ec13fed7656f649bdca68d56f2f1e3c7fdac82931
6
+ metadata.gz: 472f261d6d94bc4024576b2a322fe69bd10b53b5892efbcc89027a825723901c9a1aede0cc393cd8fae372dba49bdeb95c703b912f4d83ecf6711de8f3541caa
7
+ data.tar.gz: 2a3a3ae0d383b40bec9cfaa79d705520f46b885f510aaab3833e763114a9c10a8b90af5a6c6285942e53057508643da93ad32f629fc4812819e24e44969ba750
data/Gemfile CHANGED
@@ -7,6 +7,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
7
7
  gem "bcrypt_pbkdf"
8
8
  gem "colorize"
9
9
  gem "ed25519"
10
+ gem "ejson"
10
11
  gem "net-ssh"
11
12
  gem "require_all"
12
13
 
@@ -17,7 +17,7 @@ class Action
17
17
  end
18
18
 
19
19
  def to_s
20
- "#{command} #{@args.join(' ')}"
20
+ "#{command} #{@args.join(' ')}".strip
21
21
  end
22
22
 
23
23
  def alias
@@ -8,7 +8,7 @@ module Dependencies
8
8
  class Sshkey < Dependency
9
9
  DEFAULT_KEY_SIZE = 2048
10
10
  DEFAULT_KEY_ALGO = "rsa"
11
- DEFAULT_KEY_LIFETIME_S = 600
11
+ DEFAULT_KEY_LIFETIME_S = 3600
12
12
 
13
13
  def met?
14
14
  # we always need to at least update the key lifetime in the agent
@@ -21,7 +21,7 @@ module Dependencies
21
21
  FileUtils.mkdir_p(dir_name) unless File.directory?(dir_name)
22
22
 
23
23
  generate_key unless File.exist?(priv_key_name) && File.exist?(pub_key_name)
24
- add_key if success? && ENV["SSH_AUTH_SOCK"]
24
+ add_key if success? && should_add_key?
25
25
  end
26
26
 
27
27
  def unmeet
@@ -35,19 +35,25 @@ module Dependencies
35
35
  private
36
36
 
37
37
  def generate_key
38
- execute("ssh-keygen -b #{key_size} -t #{key_algo} -f #{priv_key_name} -q -N '#{passphrase}'")
38
+ Output.warn("\nNo passphrase set for SSH key '#{priv_key_name}'") if passphrase.nil? || passphrase.empty?
39
+
40
+ execute("ssh-keygen -b #{opt_key_size} -t #{opt_key_algo} -f #{priv_key_name} -q -N '#{passphrase}'")
39
41
  end
40
42
 
41
43
  def add_key
42
44
  Net::SSH::Authentication::Agent.connect.add_identity(
43
45
  unencrypted_key,
44
46
  key_comment,
45
- lifetime: key_lifetime
47
+ lifetime: opt_key_lifetime
46
48
  )
47
49
  end
48
50
 
51
+ def should_add_key?
52
+ ENV["SSH_AUTH_SOCK"] && opt_add_keys?
53
+ end
54
+
49
55
  def unencrypted_key
50
- Net::SSH::KeyFactory.load_private_key(priv_key_name, passphrase)
56
+ Net::SSH::KeyFactory.load_private_key(priv_key_name, passphrase.empty? ? nil : passphrase)
51
57
  end
52
58
 
53
59
  def key_comment
@@ -67,23 +73,40 @@ module Dependencies
67
73
  "#{priv_key_name}.pub"
68
74
  end
69
75
 
70
- def key_size
76
+ def opt_key_size
71
77
  Options.get("sshkey.key_size") || DEFAULT_KEY_SIZE
72
78
  end
73
79
 
74
- def key_algo
80
+ def opt_key_algo
75
81
  DEFAULT_KEY_ALGO
76
82
  end
77
83
 
78
84
  def passphrase
79
- `echo #{configured_passphrase}`.chomp
85
+ `echo #{opt_passphrase}`.chomp
86
+ end
87
+
88
+ def opt_passphrase
89
+ @opt_passphrase ||= begin
90
+ return "$#{Options.get('sshkey.passphrase_var')}" if Options.get("sshkey.passphrase_var")
91
+
92
+ output_passphrase_warning if Options.get("sshkey.passphrase")
93
+
94
+ Options.get("sshkey.passphrase")
95
+ end
96
+ end
97
+
98
+ def output_passphrase_warning
99
+ Output.warn(
100
+ "\n'options.sshkey.passphrase' is deprecated and will be removed in a future release. " \
101
+ "Use 'options.sshkey.passphrase_var' instead."
102
+ )
80
103
  end
81
104
 
82
- def configured_passphrase
83
- Options.get("sshkey.passphrase")
105
+ def opt_add_keys?
106
+ Options.get("sshkey.add_keys").nil? ? true : Options.get("sshkey.add_keys")
84
107
  end
85
108
 
86
- def key_lifetime
109
+ def opt_key_lifetime
87
110
  Options.get("sshkey.key_lifetime") || DEFAULT_KEY_LIFETIME_S
88
111
  end
89
112
  end
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'ops_team'
5
- s.version = '0.8.4'
5
+ s.version = '0.8.10'
6
6
  s.authors = [
7
7
  'nickthecook@gmail.com'
8
8
  ]
9
- s.date = '2020-05-29'
9
+ s.date = '2020-08-11'
10
10
  s.summary = 'ops_team handles basic operations tasks for your project, driven by YAML config'
11
11
  s.homepage = 'https://github.com/nickthecook/ops'
12
12
  s.files = Dir[
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.add_runtime_dependency 'bcrypt_pbkdf', '~> 1.0', '>= 1.0.1'
26
26
  s.add_runtime_dependency 'colorize', '~> 0.8', '>= 0.8.1'
27
27
  s.add_runtime_dependency 'ed25519', '~> 1.2', '>= 1.2.4'
28
+ s.add_runtime_dependency 'ejson', '~> 1.2', '>= 1.2.1'
28
29
  s.add_runtime_dependency 'net-ssh', '~> 6.1', '>= 6.1.0'
29
30
  s.add_runtime_dependency 'require_all', '~> 1.1', '>= 1.1.6'
30
31
  s.license = 'GPL-3.0-only'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ops_team
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.4
4
+ version: 0.8.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - nickthecook@gmail.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-29 00:00:00.000000000 Z
11
+ date: 2020-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcrypt_pbkdf
@@ -70,6 +70,26 @@ dependencies:
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
72
  version: 1.2.4
73
+ - !ruby/object:Gem::Dependency
74
+ name: ejson
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '1.2'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.2.1
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.2'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 1.2.1
73
93
  - !ruby/object:Gem::Dependency
74
94
  name: net-ssh
75
95
  requirement: !ruby/object:Gem::Requirement