knife-windows 4.0.7 → 5.0.7
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/lib/chef/knife/bootstrap_windows_certstore.rb +46 -0
- data/lib/chef/knife/bootstrap_windows_ssh.rb +1 -1
- data/lib/chef/knife/bootstrap_windows_winrm.rb +1 -1
- data/lib/chef/knife/helpers/bootstrap_windows_base.rb +1 -1
- data/lib/chef/knife/helpers/winrm_base.rb +1 -2
- data/lib/chef/knife/helpers/winrm_knife_base.rb +2 -2
- data/lib/chef/knife/helpers/winrm_session.rb +2 -2
- data/lib/chef/knife/helpers/winrm_shared_options.rb +1 -1
- data/lib/chef/knife/helpers/wsman_endpoint.rb +1 -1
- data/lib/chef/knife/windows_cert_generate.rb +66 -10
- data/lib/chef/knife/windows_cert_install.rb +6 -1
- data/lib/chef/knife/windows_listener_create.rb +1 -1
- data/lib/chef/knife/winrm.rb +1 -1
- data/lib/chef/knife/wsman_test.rb +11 -7
- data/lib/knife-windows/version.rb +1 -1
- data/spec/spec_helper.rb +6 -6
- data/spec/unit/knife/windows_cert_generate_spec.rb +4 -3
- data/spec/unit/knife/windows_cert_install_spec.rb +1 -1
- data/spec/unit/knife/windows_listener_create_spec.rb +1 -1
- data/spec/unit/knife/winrm_session_spec.rb +1 -1
- data/spec/unit/knife/winrm_spec.rb +1 -1
- data/spec/unit/knife/wsman_test_spec.rb +1 -1
- metadata +15 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1096c26e4ba4fe31c302ca374ead59fc9e1f84d7566cd058f16cd076a6dadce8
|
|
4
|
+
data.tar.gz: 3f98e5ca4a1a058c05eedfb5255da62ada9e699c03a191a8e932b4285e5d0884
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d1a4bd671b56bb00c4db679be8292e98fb4f8fbd7d6ac6ac89fa7afd124b012b27b23ab4cdd3a33477f8fc3d7b8b036200967fe7d951bb5c1ca12c1566ab2a49
|
|
7
|
+
data.tar.gz: 3aff760251258eeff5730a51e30d229ed843c24f7545dd87e9cda8897f1d215fdec5ab103ecd2df4079fafb267013fbdb82cc8557980ae71f817a5dd9f9cce7d
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Seth Chisamore (<schisamo@chef.io>)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
require "chef/knife"
|
|
20
|
+
require_relative "helpers/bootstrap_windows_base"
|
|
21
|
+
|
|
22
|
+
class Chef
|
|
23
|
+
class Knife
|
|
24
|
+
class BootstrapWindowsCertstore < Bootstrap
|
|
25
|
+
include Chef::Knife::BootstrapWindowsBase
|
|
26
|
+
|
|
27
|
+
banner "knife bootstrap windows certstore FQDN (options) DEPRECATED"
|
|
28
|
+
|
|
29
|
+
option :windows_certstore,
|
|
30
|
+
long: "--windows_certstore",
|
|
31
|
+
description: "Retrieves the client key from the local Windows Certificate store"
|
|
32
|
+
|
|
33
|
+
def run
|
|
34
|
+
Chef::Application.fatal!(<<~EOM
|
|
35
|
+
*knife windows bootstrap ssh*
|
|
36
|
+
Core Chef now supports bootstrapping Windows systems without a knife plugin
|
|
37
|
+
|
|
38
|
+
Use 'knife bootstrap -o windows_certstore' instead.
|
|
39
|
+
|
|
40
|
+
For more detail https://github.com/chef/chef/blob/master/RELEASE_NOTES.md#knife-bootstrap
|
|
41
|
+
EOM
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Seth Chisamore (<schisamo@chef.io>)
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Seth Chisamore (<schisamo@chef.io>)
|
|
3
|
-
# Copyright:: Copyright (c) 2011-
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Seth Chisamore (<schisamo@chef.io>)
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Seth Chisamore (<schisamo@chef.io>)
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -33,7 +33,6 @@ class Chef
|
|
|
33
33
|
|
|
34
34
|
deps do
|
|
35
35
|
require "chef/encrypted_data_bag_item"
|
|
36
|
-
require "kconv"
|
|
37
36
|
require "readline"
|
|
38
37
|
require "chef/json_compat"
|
|
39
38
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Steven Murawski (<smurawski@chef.io)
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -284,7 +284,7 @@ class Chef
|
|
|
284
284
|
end
|
|
285
285
|
|
|
286
286
|
def get_password
|
|
287
|
-
@password ||= ui.ask("Enter your password: "
|
|
287
|
+
@password ||= ui.ask("Enter your password: ", echo: false)
|
|
288
288
|
end
|
|
289
289
|
|
|
290
290
|
def negotiate_auth?
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Steven Murawski <smurawski@chef.io>
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
require "chef/knife"
|
|
20
20
|
require "chef/application"
|
|
21
|
-
autoload :WinRM, "winrm-elevated"
|
|
21
|
+
autoload :WinRM, "chef-winrm-elevated"
|
|
22
22
|
|
|
23
23
|
class Chef
|
|
24
24
|
class Knife
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Steven Murawski (<smurawski@chef.io)
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Steven Murawski (<smurawski@chef.io)
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Author:: Mukta Aphale (<mukta.aphale@clogeny.com>)
|
|
2
|
-
# Copyright:: Copyright (c)
|
|
2
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
3
3
|
# License:: Apache License, Version 2.0
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -17,14 +17,17 @@
|
|
|
17
17
|
|
|
18
18
|
require "chef/knife"
|
|
19
19
|
require_relative "helpers/winrm_base"
|
|
20
|
+
require "chef/mixin/powershell_exec"
|
|
20
21
|
|
|
21
22
|
class Chef
|
|
22
23
|
class Knife
|
|
23
24
|
class WindowsCertGenerate < Knife
|
|
24
25
|
|
|
26
|
+
include Chef::Mixin::PowershellExec
|
|
27
|
+
|
|
25
28
|
attr_accessor :thumbprint, :hostname
|
|
26
29
|
|
|
27
|
-
banner "knife windows cert generate
|
|
30
|
+
banner "knife windows cert generate -H HOST_NAME (options)"
|
|
28
31
|
|
|
29
32
|
deps do
|
|
30
33
|
require "openssl" unless defined?(OpenSSL)
|
|
@@ -41,8 +44,7 @@ class Chef
|
|
|
41
44
|
option :output_file,
|
|
42
45
|
short: "-o PATH",
|
|
43
46
|
long: "--output-file PATH",
|
|
44
|
-
description: "Specifies the file path at which to generate the 3 certificate files of type .pfx, .b64, and .pem.
|
|
45
|
-
default: "winrmcert"
|
|
47
|
+
description: "Specifies the file path at which to generate the 3 certificate files of type .pfx, .b64, and .pem. If you omit this option we use c:\\chef\\cache\\chef-<hostname> as the filename for each certificate type"
|
|
46
48
|
|
|
47
49
|
option :key_length,
|
|
48
50
|
short: "-k LENGTH",
|
|
@@ -51,16 +53,18 @@ class Chef
|
|
|
51
53
|
default: "2048"
|
|
52
54
|
|
|
53
55
|
option :cert_validity,
|
|
54
|
-
short: "-cv MONTHS",
|
|
55
56
|
long: "--cert-validity MONTHS",
|
|
56
57
|
description: "Default is 24 months",
|
|
57
58
|
default: "24"
|
|
58
59
|
|
|
59
60
|
option :cert_passphrase,
|
|
60
|
-
short: "-cp PASSWORD",
|
|
61
61
|
long: "--cert-passphrase PASSWORD",
|
|
62
62
|
description: "Password for certificate."
|
|
63
63
|
|
|
64
|
+
option :store_in_certstore,
|
|
65
|
+
long: "--store_in_certstore true",
|
|
66
|
+
description: "Tells knife to store the password for your certificates in the Windows Registry for later retrieval."
|
|
67
|
+
|
|
64
68
|
def generate_keypair
|
|
65
69
|
OpenSSL::PKey::RSA.new(config[:key_length].to_i)
|
|
66
70
|
end
|
|
@@ -103,18 +107,59 @@ class Chef
|
|
|
103
107
|
cert
|
|
104
108
|
end
|
|
105
109
|
|
|
106
|
-
def write_certificate_to_file(cert, file_path, rsa_key)
|
|
110
|
+
def write_certificate_to_file(cert, file_path, rsa_key, store_key)
|
|
107
111
|
File.open(file_path + ".pem", "wb") { |f| f.print cert.to_pem }
|
|
112
|
+
|
|
108
113
|
config[:cert_passphrase] = prompt_for_passphrase unless config[:cert_passphrase]
|
|
109
|
-
|
|
114
|
+
|
|
115
|
+
if store_key == true
|
|
116
|
+
set_local_password(config[:cert_passphrase])
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
pfx = OpenSSL::PKCS12.create("#{config[:cert_passphrase]}", file_path, rsa_key, cert)
|
|
110
120
|
File.open(file_path + ".pfx", "wb") { |f| f.print pfx.to_der }
|
|
111
121
|
File.open(file_path + ".b64", "wb") { |f| f.print Base64.strict_encode64(pfx.to_der) }
|
|
112
122
|
end
|
|
113
123
|
|
|
124
|
+
# in the world of No Certs On Disk, we store a password for a p12/pfx in Keychain or the Registry. A p12/Pfx MUST have a password associated with it because it holds a private key
|
|
125
|
+
# Here we check to see if that password is already set.
|
|
126
|
+
def check_for_local_password
|
|
127
|
+
if ChefUtils.windows?
|
|
128
|
+
powershell_code = <<-CHECKFORPASSWORD
|
|
129
|
+
Try {
|
|
130
|
+
$localpass = Get-ItemPropertyValue -Path "HKLM:\\Software\Progress\Authenticator" -Name "PfxPass" -ErrorAction Stop
|
|
131
|
+
return $localpass
|
|
132
|
+
}
|
|
133
|
+
Catch {
|
|
134
|
+
return $false
|
|
135
|
+
}
|
|
136
|
+
CHECKFORPASSWORD
|
|
137
|
+
powershell_exec!(powershell_code).result
|
|
138
|
+
elsif ChefUtils.macos?
|
|
139
|
+
nil
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
def set_local_password(password)
|
|
144
|
+
print "The password you just specified is being stored in the Registry. It will be used as the default until explicitly updated\n"
|
|
145
|
+
more_powershell_code = <<-SETTHEPASSWORD
|
|
146
|
+
$my_pwd = ConvertTo-SecureString -String "#{password}" -Force -AsPlainText;
|
|
147
|
+
if (-not (Test-Path HKLM:\\SOFTWARE\\Progress)){
|
|
148
|
+
New-Item -Path "HKLM:\\SOFTWARE\\Progress\\Authenticator" -Force
|
|
149
|
+
New-ItemProperty -path "HKLM:\\SOFTWARE\\Progress\\Authenticator" -name "PfxPass" -value $my_pwd -PropertyType String
|
|
150
|
+
}
|
|
151
|
+
else{
|
|
152
|
+
Set-ItemProperty -path "HKLM:\\SOFTWARE\\Progress\\Authenticator" -name "PfxPass" -value $my_pwd
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
SETTHEPASSWORD
|
|
156
|
+
powershell_exec!(more_powershell_code)
|
|
157
|
+
end
|
|
158
|
+
|
|
114
159
|
def certificates_already_exist?(file_path)
|
|
115
160
|
certs_exists = false
|
|
116
161
|
%w{pem pfx b64}.each do |extn|
|
|
117
|
-
|
|
162
|
+
if File.exist?("#{file_path}.#{extn}")
|
|
118
163
|
certs_exists = true
|
|
119
164
|
break
|
|
120
165
|
end
|
|
@@ -133,16 +178,27 @@ class Chef
|
|
|
133
178
|
STDOUT.sync = STDERR.sync = true
|
|
134
179
|
|
|
135
180
|
# takes user specified first cli value as a destination file path for generated cert.
|
|
181
|
+
# allowing for output_file to be ommitted
|
|
182
|
+
if config[:output_file] == nil?
|
|
183
|
+
config[:output_file] = File.join(::Chef::Config[:file_cache_path], "chef-#{config[:hostname]}")
|
|
184
|
+
end
|
|
185
|
+
|
|
136
186
|
file_path = @name_args.empty? ? config[:output_file].sub(/\.(\w+)$/, "") : @name_args.first
|
|
137
187
|
|
|
138
188
|
# check if certs already exists at given file path
|
|
139
189
|
certificates_already_exist? file_path
|
|
140
190
|
|
|
191
|
+
if config[:store_in_certstore] == "true" || config[:store_in_certstore] == "True" || config[:store_in_certstore] == "TRUE"
|
|
192
|
+
store_key = true
|
|
193
|
+
else
|
|
194
|
+
store_key = false
|
|
195
|
+
end
|
|
196
|
+
|
|
141
197
|
begin
|
|
142
198
|
filename = File.basename(file_path)
|
|
143
199
|
rsa_key = generate_keypair
|
|
144
200
|
cert = generate_certificate rsa_key
|
|
145
|
-
write_certificate_to_file cert, file_path, rsa_key
|
|
201
|
+
write_certificate_to_file cert, file_path, rsa_key, store_key
|
|
146
202
|
ui.info "Generated Certificates:"
|
|
147
203
|
ui.info "- #{filename}.pfx - PKCS12 format key pair. Contains public and private keys, can be used with an SSL server."
|
|
148
204
|
ui.info "- #{filename}.b64 - Base64 encoded PKCS12 key pair. Contains public and private keys, used by some cloud provider API's to configure SSL servers."
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Author:: Mukta Aphale (<mukta.aphale@clogeny.com>)
|
|
2
|
-
# Copyright:: Copyright (c)
|
|
2
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
3
3
|
# License:: Apache License, Version 2.0
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -22,6 +22,11 @@ class Chef
|
|
|
22
22
|
class Knife
|
|
23
23
|
class WindowsCertInstall < Knife
|
|
24
24
|
|
|
25
|
+
deps do
|
|
26
|
+
require "chef/mixin/powershell_exec"
|
|
27
|
+
extend Chef::Mixin::PowershellExec
|
|
28
|
+
end
|
|
29
|
+
|
|
25
30
|
banner "knife windows cert install CERT [CERT] (options)"
|
|
26
31
|
|
|
27
32
|
option :cert_passphrase,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Author:: Mukta Aphale (<mukta.aphale@clogeny.com>)
|
|
2
|
-
# Copyright:: Copyright (c)
|
|
2
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
3
3
|
# License:: Apache License, Version 2.0
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
data/lib/chef/knife/winrm.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Seth Chisamore (<schisamo@chef.io>)
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Steven Murawski (<smurawski@chef.io>)
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -98,12 +98,16 @@ class Chef
|
|
|
98
98
|
if response.nil? || response.status_code != 200
|
|
99
99
|
output_object.error_message = "No valid WSMan endoint listening at #{node.endpoint}."
|
|
100
100
|
else
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
output_object.
|
|
101
|
+
begin
|
|
102
|
+
doc = REXML::Document.new(response.body)
|
|
103
|
+
output_object.protocol_version = search_xpath(doc, "//wsmid:ProtocolVersion")
|
|
104
|
+
output_object.product_version = search_xpath(doc, "//wsmid:ProductVersion")
|
|
105
|
+
output_object.product_vendor = search_xpath(doc, "//wsmid:ProductVendor")
|
|
106
|
+
if output_object.protocol_version.to_s.strip.length == 0
|
|
107
|
+
output_object.error_message = "Endpoint #{node.endpoint} on #{node.host} does not appear to be a WSMAN endpoint. Response body was #{response.body}"
|
|
108
|
+
end
|
|
109
|
+
rescue REXML::ParseException => e
|
|
110
|
+
output_object.error_message = e.message
|
|
107
111
|
end
|
|
108
112
|
end
|
|
109
113
|
output_object
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
# Author:: Adam Edwards (<adamed@chef.io>)
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -34,10 +34,10 @@ RSpec.configure do |config|
|
|
|
34
34
|
config.run_all_when_everything_filtered = true
|
|
35
35
|
config.filter_run focus: true
|
|
36
36
|
config.around(:example) do |ex|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
|
|
38
|
+
ex.run
|
|
39
|
+
rescue SystemExit => e
|
|
40
|
+
raise UnexpectedSystemExit.from(e)
|
|
41
|
+
|
|
42
42
|
end
|
|
43
43
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Mukta Aphale <mukta.aphale@clogeny.com>
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -40,11 +40,12 @@ describe Chef::Knife::WindowsCertGenerate do
|
|
|
40
40
|
|
|
41
41
|
it "writes certificate to file" do
|
|
42
42
|
expect(File).to receive(:open).exactly(3).times
|
|
43
|
+
store_key = false
|
|
43
44
|
cert = double(OpenSSL::X509::Certificate.new)
|
|
44
45
|
key = double(OpenSSL::PKey::RSA.new)
|
|
45
46
|
@certgen.config[:cert_passphrase] = "password"
|
|
46
47
|
expect(OpenSSL::PKCS12).to receive(:create).with("password", "winrmcert", key, cert)
|
|
47
|
-
@certgen.write_certificate_to_file cert, "
|
|
48
|
+
@certgen.write_certificate_to_file cert, "winrmcert", key, store_key
|
|
48
49
|
end
|
|
49
50
|
|
|
50
51
|
context "when creating certificate files" do
|
|
@@ -72,7 +73,7 @@ describe Chef::Knife::WindowsCertGenerate do
|
|
|
72
73
|
file_path = "winrmcert"
|
|
73
74
|
@certgen.config[:output_file] = file_path
|
|
74
75
|
|
|
75
|
-
allow(
|
|
76
|
+
allow(File).to receive(:exist?).and_return([file_path])
|
|
76
77
|
expect(@certgen).to receive(:confirm).with("Do you really want to overwrite existing certificates")
|
|
77
78
|
expect(@certgen).to receive(:write_certificate_to_file)
|
|
78
79
|
@certgen.run
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Mukta Aphale <mukta.aphale@clogeny.com>
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Mukta Aphale <mukta.aphale@clogeny.com>
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Steven Murawski <smurawski@chef.io>
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Bryan McLellan <btm@chef.io>
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Steven Murawski (<smurawski@chef.io>)
|
|
3
|
-
# Copyright:: Copyright (c)
|
|
3
|
+
# Copyright:: Copyright (c) 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: knife-windows
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 5.0.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Seth Chisamore
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-02-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: chef
|
|
@@ -16,42 +16,42 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '18.2'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '18.2'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: winrm
|
|
28
|
+
name: chef-winrm
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '2.
|
|
33
|
+
version: '2.3'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '2.
|
|
40
|
+
version: '2.3'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: winrm-elevated
|
|
42
|
+
name: chef-winrm-elevated
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '1.
|
|
47
|
+
version: '1.2'
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '1.
|
|
54
|
+
version: '1.2'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: pry
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -66,7 +66,7 @@ dependencies:
|
|
|
66
66
|
- - ">="
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '0'
|
|
69
|
-
description: Plugin that adds functionality to Chef's Knife CLI for configuring/interacting
|
|
69
|
+
description: Plugin that adds functionality to Chef Infra's Knife CLI for configuring/interacting
|
|
70
70
|
with nodes running Microsoft Windows
|
|
71
71
|
email:
|
|
72
72
|
- schisamo@chef.io
|
|
@@ -75,6 +75,7 @@ extensions: []
|
|
|
75
75
|
extra_rdoc_files: []
|
|
76
76
|
files:
|
|
77
77
|
- LICENSE
|
|
78
|
+
- lib/chef/knife/bootstrap_windows_certstore.rb
|
|
78
79
|
- lib/chef/knife/bootstrap_windows_ssh.rb
|
|
79
80
|
- lib/chef/knife/bootstrap_windows_winrm.rb
|
|
80
81
|
- lib/chef/knife/helpers/bootstrap_windows_base.rb
|
|
@@ -116,17 +117,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
116
117
|
requirements:
|
|
117
118
|
- - ">="
|
|
118
119
|
- !ruby/object:Gem::Version
|
|
119
|
-
version:
|
|
120
|
+
version: '3.1'
|
|
120
121
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
122
|
requirements:
|
|
122
123
|
- - ">="
|
|
123
124
|
- !ruby/object:Gem::Version
|
|
124
125
|
version: '0'
|
|
125
126
|
requirements: []
|
|
126
|
-
rubygems_version: 3.
|
|
127
|
+
rubygems_version: 3.3.27
|
|
127
128
|
signing_key:
|
|
128
129
|
specification_version: 4
|
|
129
|
-
summary: Plugin that adds functionality to Chef's Knife CLI for configuring/interacting
|
|
130
|
+
summary: Plugin that adds functionality to Chef Infra's Knife CLI for configuring/interacting
|
|
130
131
|
with nodes running Microsoft Windows
|
|
131
132
|
test_files:
|
|
132
133
|
- spec/assets/fake_trusted_certs/excluded.txt
|