chef 19.2.12 → 19.3.14
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/Gemfile +11 -16
- data/README.md +6 -1
- data/Rakefile +1 -0
- data/chef-universal-mingw-ucrt.gemspec +9 -2
- data/chef.gemspec +18 -8
- data/lib/chef/application/client.rb +7 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +1 -1
- data/lib/chef/client.rb +22 -4
- data/lib/chef/compliance/runner.rb +19 -1
- data/lib/chef/cookbook/gem_installer.rb +1 -1
- data/lib/chef/cookbook_uploader.rb +1 -1
- data/lib/chef/dsl/rest_resource.rb +63 -12
- data/lib/chef/file_access_control/windows.rb +6 -0
- data/lib/chef/file_access_control.rb +12 -1
- data/lib/chef/handler/slow_report.rb +3 -4
- data/lib/chef/licensing.rb +26 -6
- data/lib/chef/node.rb +13 -1
- data/lib/chef/policy_builder/expand_node_object.rb +12 -1
- data/lib/chef/policy_builder/policyfile.rb +12 -0
- data/lib/chef/property.rb +1 -1
- data/lib/chef/provider/file/content.rb +3 -2
- data/lib/chef/provider/file.rb +5 -2
- data/lib/chef/provider/ifconfig/redhat.rb +1 -1
- data/lib/chef/provider/package/dnf/dnf_helper.py +355 -65
- data/lib/chef/provider/package/dnf/python_helper.rb +6 -3
- data/lib/chef/provider/package/dnf.rb +24 -5
- data/lib/chef/provider/package/yum.rb +1 -1
- data/lib/chef/provider/package/yum_tm.rb +1 -1
- data/lib/chef/resource/_rest_resource.rb +4 -2
- data/lib/chef/resource/build_essential.rb +10 -1
- data/lib/chef/resource/execute.rb +0 -15
- data/lib/chef/resource/yum_package.rb +1 -1
- data/lib/chef/target_io/support.rb +1 -1
- data/lib/chef/target_io/train/dir.rb +1 -1
- data/lib/chef/target_io/train/file.rb +5 -5
- data/lib/chef/target_io/train/fileutils.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/version.rb +17 -16
- metadata +37 -13
|
@@ -21,7 +21,7 @@ class Chef
|
|
|
21
21
|
class Provider
|
|
22
22
|
class Package
|
|
23
23
|
class YumTM < Chef::Provider::Package::Yum
|
|
24
|
-
provides :package, platform_family:
|
|
24
|
+
provides :package, platform_family: %w{fedora rhel amazon}, target_mode: true, agent_mode: false
|
|
25
25
|
provides :yum_package, target_mode: true, agent_mode: false
|
|
26
26
|
|
|
27
27
|
def load_current_resource
|
|
@@ -300,15 +300,17 @@ action_class do
|
|
|
300
300
|
end
|
|
301
301
|
|
|
302
302
|
def rest_url_collection
|
|
303
|
-
current_resource.class.
|
|
303
|
+
endpoint = current_resource.class.rest_api_endpoint || ""
|
|
304
|
+
"#{endpoint}#{current_resource.class.rest_api_collection}"
|
|
304
305
|
end
|
|
305
306
|
|
|
306
307
|
#
|
|
307
308
|
# Resource document URL after RFC 6570 template evaluation via properties substitution
|
|
308
309
|
#
|
|
309
310
|
def rest_url_document
|
|
311
|
+
endpoint = current_resource.class.rest_api_endpoint || ""
|
|
310
312
|
template = ::Addressable::Template.new(current_resource.class.rest_api_document)
|
|
311
|
-
template.expand(property_map)
|
|
313
|
+
"#{endpoint}#{template.expand(property_map)}"
|
|
312
314
|
end
|
|
313
315
|
|
|
314
316
|
#
|
|
@@ -61,7 +61,16 @@ class Chef
|
|
|
61
61
|
when debian?
|
|
62
62
|
package %w{ autoconf binutils-doc bison build-essential flex gettext ncurses-dev }
|
|
63
63
|
when fedora_derived?
|
|
64
|
-
package %w{ autoconf bison flex gcc gcc-c++ gettext
|
|
64
|
+
package %w{ autoconf bison flex gcc gcc-c++ gettext make m4 ncurses-devel patch }
|
|
65
|
+
# kernel-devel is installed separately with ignore_failure because dnf
|
|
66
|
+
# version-pins it to the running kernel, which may not be available in
|
|
67
|
+
# repos (e.g. Docker containers where the host kernel differs from the
|
|
68
|
+
# guest userland). We cannot use the --skip-unavailable option here
|
|
69
|
+
# because dnf5 (Fedora 42+) requires it after the subcommand, but
|
|
70
|
+
# Chef's dnf_package provider places options before it.
|
|
71
|
+
package "kernel-devel" do
|
|
72
|
+
ignore_failure true
|
|
73
|
+
end
|
|
65
74
|
when freebsd?
|
|
66
75
|
package "devel/gmake"
|
|
67
76
|
package "devel/autoconf"
|
|
@@ -388,21 +388,6 @@ class Chef
|
|
|
388
388
|
end
|
|
389
389
|
```
|
|
390
390
|
|
|
391
|
-
**Run a Knife command**:
|
|
392
|
-
|
|
393
|
-
```ruby
|
|
394
|
-
execute 'create_user' do
|
|
395
|
-
command <<~EOM
|
|
396
|
-
knife user create \#{user}
|
|
397
|
-
--admin
|
|
398
|
-
--password password
|
|
399
|
-
--disable-editing
|
|
400
|
-
--file /home/vagrant/.chef/user.pem
|
|
401
|
-
--config /tmp/knife-admin.rb
|
|
402
|
-
EOM
|
|
403
|
-
end
|
|
404
|
-
```
|
|
405
|
-
|
|
406
391
|
**Run install command into virtual environment**:
|
|
407
392
|
|
|
408
393
|
The following example shows how to install a lightweight JavaScript framework
|
|
@@ -24,7 +24,7 @@ class Chef
|
|
|
24
24
|
class YumPackage < Chef::Resource::Package
|
|
25
25
|
|
|
26
26
|
provides :yum_package, target_mode: true
|
|
27
|
-
provides :package, platform_family:
|
|
27
|
+
provides :package, platform_family: %w{fedora rhel amazon}
|
|
28
28
|
target_mode support: :full
|
|
29
29
|
|
|
30
30
|
description "Use the **yum_package** resource to install, upgrade, and remove packages with Yum for the Red Hat and CentOS platforms. The yum_package resource is able to resolve `provides` data for packages much like Yum can do when it is run from the command line. This allows a variety of options for installing packages, like minimum versions, virtual provides, and library names. Note: Support for using file names to install packages (as in `yum_package '/bin/sh'`) is not available because the volume of data required to parse for this is excessive."
|
|
@@ -14,7 +14,7 @@ module TargetIO
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def binread(name, length = nil, offset = 0)
|
|
17
|
-
content = read(
|
|
17
|
+
content = read(name)
|
|
18
18
|
length = content.size - offset if length.nil?
|
|
19
19
|
|
|
20
20
|
content[offset, length]
|
|
@@ -142,14 +142,14 @@ module TargetIO
|
|
|
142
142
|
end
|
|
143
143
|
|
|
144
144
|
def tempfile(filename)
|
|
145
|
-
tempdir = ::TargetIO::Dir.mktmpdir(
|
|
145
|
+
tempdir = ::TargetIO::Dir.mktmpdir(filename)
|
|
146
146
|
::File.join(tempdir, filename)
|
|
147
147
|
end
|
|
148
148
|
|
|
149
149
|
# passthrough or map calls to third parties
|
|
150
150
|
def method_missing(m, *args, **kwargs, &block)
|
|
151
|
-
nonio = %i{extname join dirname path split}
|
|
152
|
-
passthru = %i{
|
|
151
|
+
nonio = %i{extname join dirname basename path split}
|
|
152
|
+
passthru = %i{directory? exist? exists? file? path pipe? socket? symlink?}
|
|
153
153
|
redirect_train = {
|
|
154
154
|
blockdev?: :block_device?,
|
|
155
155
|
chardev?: :character_device?,
|
|
@@ -207,7 +207,7 @@ module TargetIO
|
|
|
207
207
|
file_name, other_args = args[0], args[1..]
|
|
208
208
|
|
|
209
209
|
file = transport_connection.file(file_name)
|
|
210
|
-
file.send(
|
|
210
|
+
file.send(redirect_train[m], *other_args, **kwargs) # TODO: pass block
|
|
211
211
|
|
|
212
212
|
else
|
|
213
213
|
raise "Unsupported File method #{m}"
|
|
@@ -77,7 +77,7 @@ module TargetIO
|
|
|
77
77
|
def install(src, dest, mode: nil, owner: nil, group: nil, preserve: nil, noop: nil, verbose: nil)
|
|
78
78
|
cmd = "install -c"
|
|
79
79
|
cmd << " -p" if preserve
|
|
80
|
-
cmd << " -m " <<
|
|
80
|
+
cmd << " -m " << __mode_to_s(mode) if mode
|
|
81
81
|
cmd << " -o #{owner}" if owner
|
|
82
82
|
cmd << " -g #{group}" if group
|
|
83
83
|
cmd << " " << [src, dest].flatten.join(" ")
|
data/lib/chef/version.rb
CHANGED
data/lib/chef/win32/version.rb
CHANGED
|
@@ -49,22 +49,23 @@ class Chef
|
|
|
49
49
|
private_class_method :method_name_from_marketing_name
|
|
50
50
|
|
|
51
51
|
WIN_VERSIONS = {
|
|
52
|
-
"Windows Server
|
|
53
|
-
"Windows Server
|
|
54
|
-
"Windows
|
|
55
|
-
"Windows
|
|
56
|
-
"Windows
|
|
57
|
-
"Windows
|
|
58
|
-
"Windows
|
|
59
|
-
"Windows
|
|
60
|
-
"Windows
|
|
61
|
-
"Windows
|
|
62
|
-
"Windows
|
|
63
|
-
"Windows Server 2008" => { major: 6, minor:
|
|
64
|
-
"Windows
|
|
65
|
-
"Windows
|
|
66
|
-
"Windows
|
|
67
|
-
"Windows Server
|
|
52
|
+
"Windows Server 2025" => { major: 10, minor: 0, callable: lambda { |product_type, _suite_mask, build_number| product_type != VER_NT_WORKSTATION && build_number >= 26100 } },
|
|
53
|
+
"Windows Server 2022" => { major: 10, minor: 0, callable: lambda { |product_type, _suite_mask, build_number| product_type != VER_NT_WORKSTATION && build_number >= 20348 && build_number < 26100 } },
|
|
54
|
+
"Windows Server 2019" => { major: 10, minor: 0, callable: lambda { |product_type, _suite_mask, build_number| product_type != VER_NT_WORKSTATION && build_number >= 17763 && build_number < 20348 } },
|
|
55
|
+
"Windows 11" => { major: 10, minor: 0, callable: lambda { |product_type, _suite_mask, build_number| product_type == VER_NT_WORKSTATION && build_number >= 22000 } },
|
|
56
|
+
"Windows 10" => { major: 10, minor: 0, callable: lambda { |product_type, _suite_mask, build_number| product_type == VER_NT_WORKSTATION && build_number >= 19044 && build_number < 22000 } },
|
|
57
|
+
"Windows Server 2016" => { major: 10, minor: 0, callable: lambda { |product_type, _suite_mask, build_number| product_type != VER_NT_WORKSTATION && build_number <= 14393 } },
|
|
58
|
+
"Windows 8.1" => { major: 6, minor: 3, callable: lambda { |product_type, _suite_mask, _build_number| product_type == VER_NT_WORKSTATION } },
|
|
59
|
+
"Windows Server 2012 R2" => { major: 6, minor: 3, callable: lambda { |product_type, _suite_mask, _build_number| product_type != VER_NT_WORKSTATION } },
|
|
60
|
+
"Windows 8" => { major: 6, minor: 2, callable: lambda { |product_type, _suite_mask, _build_number| product_type == VER_NT_WORKSTATION } },
|
|
61
|
+
"Windows Server 2012" => { major: 6, minor: 2, callable: lambda { |product_type, _suite_mask, _build_number| product_type != VER_NT_WORKSTATION } },
|
|
62
|
+
"Windows 7" => { major: 6, minor: 1, callable: lambda { |product_type, _suite_mask, _build_number| product_type == VER_NT_WORKSTATION } },
|
|
63
|
+
"Windows Server 2008 R2" => { major: 6, minor: 1, callable: lambda { |product_type, _suite_mask, _build_number| product_type != VER_NT_WORKSTATION } },
|
|
64
|
+
"Windows Server 2008" => { major: 6, minor: 0, callable: lambda { |product_type, _suite_mask, _build_number| product_type != VER_NT_WORKSTATION } },
|
|
65
|
+
"Windows Vista" => { major: 6, minor: 0, callable: lambda { |product_type, _suite_mask, _build_number| product_type == VER_NT_WORKSTATION } },
|
|
66
|
+
"Windows Server 2003 R2" => { major: 5, minor: 2, callable: lambda { |_product_type, _suite_mask, _build_number| get_system_metrics(SM_SERVERR2) != 0 } },
|
|
67
|
+
"Windows Home Server" => { major: 5, minor: 2, callable: lambda { |_product_type, suite_mask, _build_number| (suite_mask & VER_SUITE_WH_SERVER) == VER_SUITE_WH_SERVER } },
|
|
68
|
+
"Windows Server 2003" => { major: 5, minor: 2, callable: lambda { |_product_type, _suite_mask, _build_number| get_system_metrics(SM_SERVERR2) == 0 } },
|
|
68
69
|
"Windows XP" => { major: 5, minor: 1 },
|
|
69
70
|
"Windows 2000" => { major: 5, minor: 0 },
|
|
70
71
|
}.freeze
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: chef
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 19.
|
|
4
|
+
version: 19.3.14
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Adam Jacob
|
|
@@ -15,28 +15,28 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - '='
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 19.
|
|
18
|
+
version: 19.3.14
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - '='
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 19.
|
|
25
|
+
version: 19.3.14
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: chef-utils
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
30
|
- - '='
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 19.
|
|
32
|
+
version: 19.3.14
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - '='
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 19.
|
|
39
|
+
version: 19.3.14
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: train-core
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -169,16 +169,22 @@ dependencies:
|
|
|
169
169
|
name: mixlib-shellout
|
|
170
170
|
requirement: !ruby/object:Gem::Requirement
|
|
171
171
|
requirements:
|
|
172
|
-
- - "
|
|
172
|
+
- - ">="
|
|
173
173
|
- !ruby/object:Gem::Version
|
|
174
174
|
version: 3.3.8
|
|
175
|
+
- - "<"
|
|
176
|
+
- !ruby/object:Gem::Version
|
|
177
|
+
version: 3.5.0
|
|
175
178
|
type: :runtime
|
|
176
179
|
prerelease: false
|
|
177
180
|
version_requirements: !ruby/object:Gem::Requirement
|
|
178
181
|
requirements:
|
|
179
|
-
- - "
|
|
182
|
+
- - ">="
|
|
180
183
|
- !ruby/object:Gem::Version
|
|
181
184
|
version: 3.3.8
|
|
185
|
+
- - "<"
|
|
186
|
+
- !ruby/object:Gem::Version
|
|
187
|
+
version: 3.5.0
|
|
182
188
|
- !ruby/object:Gem::Dependency
|
|
183
189
|
name: mixlib-archive
|
|
184
190
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -251,16 +257,22 @@ dependencies:
|
|
|
251
257
|
name: ffi-yajl
|
|
252
258
|
requirement: !ruby/object:Gem::Requirement
|
|
253
259
|
requirements:
|
|
254
|
-
- - "
|
|
260
|
+
- - ">="
|
|
255
261
|
- !ruby/object:Gem::Version
|
|
256
262
|
version: '2.2'
|
|
263
|
+
- - "<"
|
|
264
|
+
- !ruby/object:Gem::Version
|
|
265
|
+
version: '4.0'
|
|
257
266
|
type: :runtime
|
|
258
267
|
prerelease: false
|
|
259
268
|
version_requirements: !ruby/object:Gem::Requirement
|
|
260
269
|
requirements:
|
|
261
|
-
- - "
|
|
270
|
+
- - ">="
|
|
262
271
|
- !ruby/object:Gem::Version
|
|
263
272
|
version: '2.2'
|
|
273
|
+
- - "<"
|
|
274
|
+
- !ruby/object:Gem::Version
|
|
275
|
+
version: '4.0'
|
|
264
276
|
- !ruby/object:Gem::Dependency
|
|
265
277
|
name: net-sftp
|
|
266
278
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -501,16 +513,22 @@ dependencies:
|
|
|
501
513
|
name: uri
|
|
502
514
|
requirement: !ruby/object:Gem::Requirement
|
|
503
515
|
requirements:
|
|
504
|
-
- - "
|
|
516
|
+
- - ">="
|
|
505
517
|
- !ruby/object:Gem::Version
|
|
506
518
|
version: 1.0.4
|
|
519
|
+
- - "<"
|
|
520
|
+
- !ruby/object:Gem::Version
|
|
521
|
+
version: 1.2.0
|
|
507
522
|
type: :runtime
|
|
508
523
|
prerelease: false
|
|
509
524
|
version_requirements: !ruby/object:Gem::Requirement
|
|
510
525
|
requirements:
|
|
511
|
-
- - "
|
|
526
|
+
- - ">="
|
|
512
527
|
- !ruby/object:Gem::Version
|
|
513
528
|
version: 1.0.4
|
|
529
|
+
- - "<"
|
|
530
|
+
- !ruby/object:Gem::Version
|
|
531
|
+
version: 1.2.0
|
|
514
532
|
- !ruby/object:Gem::Dependency
|
|
515
533
|
name: corefoundation
|
|
516
534
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -571,16 +589,22 @@ dependencies:
|
|
|
571
589
|
name: vault
|
|
572
590
|
requirement: !ruby/object:Gem::Requirement
|
|
573
591
|
requirements:
|
|
574
|
-
- - "
|
|
592
|
+
- - ">="
|
|
575
593
|
- !ruby/object:Gem::Version
|
|
576
594
|
version: 0.18.2
|
|
595
|
+
- - "<"
|
|
596
|
+
- !ruby/object:Gem::Version
|
|
597
|
+
version: 0.21.0
|
|
577
598
|
type: :runtime
|
|
578
599
|
prerelease: false
|
|
579
600
|
version_requirements: !ruby/object:Gem::Requirement
|
|
580
601
|
requirements:
|
|
581
|
-
- - "
|
|
602
|
+
- - ">="
|
|
582
603
|
- !ruby/object:Gem::Version
|
|
583
604
|
version: 0.18.2
|
|
605
|
+
- - "<"
|
|
606
|
+
- !ruby/object:Gem::Version
|
|
607
|
+
version: 0.21.0
|
|
584
608
|
- !ruby/object:Gem::Dependency
|
|
585
609
|
name: chef-licensing
|
|
586
610
|
requirement: !ruby/object:Gem::Requirement
|