chef 16.0.257 → 16.0.275
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +30 -16
- data/chef.gemspec +1 -1
- data/lib/chef/knife/environment_compare.rb +1 -1
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/supermarket_install.rb +1 -1
- data/lib/chef/knife/yaml_convert.rb +2 -2
- data/lib/chef/provider/execute.rb +1 -1
- data/lib/chef/provider/package/freebsd/base.rb +2 -1
- data/lib/chef/provider/package/homebrew.rb +1 -1
- data/lib/chef/provider/package/macports.rb +0 -2
- data/lib/chef/provider/package/windows.rb +26 -51
- data/lib/chef/provider/user/dscl.rb +1 -1
- data/lib/chef/resource/alternatives.rb +65 -4
- data/lib/chef/resource/apt_package.rb +31 -2
- data/lib/chef/resource/apt_preference.rb +34 -5
- data/lib/chef/resource/apt_repository.rb +22 -15
- data/lib/chef/resource/apt_update.rb +6 -4
- data/lib/chef/resource/archive_file.rb +5 -4
- data/lib/chef/resource/bash.rb +1 -1
- data/lib/chef/resource/batch.rb +1 -1
- data/lib/chef/resource/bff_package.rb +1 -1
- data/lib/chef/resource/breakpoint.rb +1 -1
- data/lib/chef/resource/build_essential.rb +8 -4
- data/lib/chef/resource/cab_package.rb +1 -1
- data/lib/chef/resource/chef_client_cron.rb +12 -9
- data/lib/chef/resource/chef_client_scheduled_task.rb +9 -6
- data/lib/chef/resource/chef_client_systemd_timer.rb +10 -7
- data/lib/chef/resource/chef_gem.rb +6 -2
- data/lib/chef/resource/chef_handler.rb +1 -1
- data/lib/chef/resource/chef_sleep.rb +7 -4
- data/lib/chef/resource/chef_vault_secret.rb +3 -3
- data/lib/chef/resource/chocolatey_config.rb +5 -3
- data/lib/chef/resource/chocolatey_feature.rb +5 -3
- data/lib/chef/resource/chocolatey_package.rb +5 -3
- data/lib/chef/resource/chocolatey_source.rb +5 -3
- data/lib/chef/resource/cookbook_file.rb +3 -2
- data/lib/chef/resource/cron.rb +15 -15
- data/lib/chef/resource/cron_access.rb +7 -4
- data/lib/chef/resource/cron_d.rb +37 -23
- data/lib/chef/resource/csh.rb +1 -1
- data/lib/chef/resource/directory.rb +1 -1
- data/lib/chef/resource/dmg_package.rb +18 -15
- data/lib/chef/resource/dnf_package.rb +1 -1
- data/lib/chef/resource/dpkg_package.rb +1 -1
- data/lib/chef/resource/execute.rb +2 -2
- data/lib/chef/resource/file.rb +5 -4
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/gem_package.rb +6 -6
- data/lib/chef/resource/group.rb +1 -1
- data/lib/chef/resource/homebrew_cask.rb +1 -1
- data/lib/chef/resource/homebrew_package.rb +1 -1
- data/lib/chef/resource/homebrew_tap.rb +1 -1
- data/lib/chef/resource/hostname.rb +4 -4
- data/lib/chef/resource/http_request.rb +1 -1
- data/lib/chef/resource/ifconfig.rb +7 -7
- data/lib/chef/resource/ips_package.rb +1 -1
- data/lib/chef/resource/kernel_module.rb +1 -1
- data/lib/chef/resource/ksh.rb +1 -1
- data/lib/chef/resource/launchd.rb +1 -1
- data/lib/chef/resource/link.rb +4 -4
- data/lib/chef/resource/locale.rb +1 -1
- data/lib/chef/resource/log.rb +1 -1
- data/lib/chef/resource/macos_userdefaults.rb +1 -1
- data/lib/chef/resource/macosx_service.rb +1 -1
- data/lib/chef/resource/macports_package.rb +1 -1
- data/lib/chef/resource/mdadm.rb +1 -1
- data/lib/chef/resource/mount.rb +1 -1
- data/lib/chef/resource/msu_package.rb +1 -1
- data/lib/chef/resource/ohai.rb +1 -1
- data/lib/chef/resource/ohai_hint.rb +1 -1
- data/lib/chef/resource/openbsd_package.rb +1 -1
- data/lib/chef/resource/openssl_dhparam.rb +1 -1
- data/lib/chef/resource/openssl_ec_private_key.rb +1 -1
- data/lib/chef/resource/openssl_ec_public_key.rb +1 -1
- data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
- data/lib/chef/resource/openssl_rsa_public_key.rb +1 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +1 -1
- data/lib/chef/resource/openssl_x509_crl.rb +1 -1
- data/lib/chef/resource/openssl_x509_request.rb +1 -1
- data/lib/chef/resource/osx_profile.rb +1 -1
- data/lib/chef/resource/package.rb +1 -1
- data/lib/chef/resource/pacman_package.rb +1 -1
- data/lib/chef/resource/paludis_package.rb +1 -1
- data/lib/chef/resource/perl.rb +1 -1
- data/lib/chef/resource/plist.rb +1 -1
- data/lib/chef/resource/portage_package.rb +1 -1
- data/lib/chef/resource/powershell_package.rb +1 -1
- data/lib/chef/resource/powershell_package_source.rb +1 -1
- data/lib/chef/resource/powershell_script.rb +1 -1
- data/lib/chef/resource/python.rb +1 -1
- data/lib/chef/resource/reboot.rb +1 -1
- data/lib/chef/resource/registry_key.rb +1 -1
- data/lib/chef/resource/remote_directory.rb +1 -1
- data/lib/chef/resource/remote_file.rb +1 -2
- data/lib/chef/resource/rhsm_errata.rb +1 -3
- data/lib/chef/resource/rhsm_errata_level.rb +1 -1
- data/lib/chef/resource/rhsm_register.rb +1 -2
- data/lib/chef/resource/rhsm_repo.rb +1 -2
- data/lib/chef/resource/rhsm_subscription.rb +1 -3
- data/lib/chef/resource/route.rb +1 -1
- data/lib/chef/resource/rpm_package.rb +5 -2
- data/lib/chef/resource/ruby.rb +1 -1
- data/lib/chef/resource/ruby_block.rb +1 -4
- data/lib/chef/resource/scm/_scm.rb +4 -3
- data/lib/chef/resource/scm/git.rb +1 -1
- data/lib/chef/resource/scm/subversion.rb +2 -2
- data/lib/chef/resource/script.rb +1 -1
- data/lib/chef/resource/service.rb +1 -1
- data/lib/chef/resource/smartos_package.rb +1 -1
- data/lib/chef/resource/snap_package.rb +1 -1
- data/lib/chef/resource/solaris_package.rb +1 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
- data/lib/chef/resource/sudo.rb +4 -4
- data/lib/chef/resource/swap_file.rb +2 -2
- data/lib/chef/resource/sysctl.rb +61 -2
- data/lib/chef/resource/systemd_unit.rb +2 -2
- data/lib/chef/resource/timezone.rb +1 -1
- data/lib/chef/resource/user.rb +2 -2
- data/lib/chef/resource/user_ulimit.rb +24 -22
- data/lib/chef/resource/windows_ad_join.rb +1 -1
- data/lib/chef/resource/windows_auto_run.rb +2 -2
- data/lib/chef/resource/windows_certificate.rb +1 -1
- data/lib/chef/resource/windows_dfs_folder.rb +1 -1
- data/lib/chef/resource/windows_dfs_namespace.rb +1 -1
- data/lib/chef/resource/windows_dfs_server.rb +1 -1
- data/lib/chef/resource/windows_env.rb +10 -1
- data/lib/chef/resource/windows_feature.rb +57 -2
- data/lib/chef/resource/windows_feature_dism.rb +15 -2
- data/lib/chef/resource/windows_feature_powershell.rb +29 -2
- data/lib/chef/resource/windows_firewall_rule.rb +9 -5
- data/lib/chef/resource/windows_font.rb +10 -1
- data/lib/chef/resource/windows_package.rb +63 -3
- data/lib/chef/resource/windows_pagefile.rb +30 -2
- data/lib/chef/resource/windows_path.rb +18 -1
- data/lib/chef/resource/windows_printer.rb +25 -5
- data/lib/chef/resource/windows_printer_port.rb +29 -1
- data/lib/chef/resource/windows_security_policy.rb +1 -1
- data/lib/chef/resource/windows_service.rb +1 -1
- data/lib/chef/resource/windows_share.rb +21 -1
- data/lib/chef/resource/windows_shortcut.rb +13 -2
- data/lib/chef/resource/windows_task.rb +122 -8
- data/lib/chef/resource/windows_uac.rb +20 -1
- data/lib/chef/resource/windows_workgroup.rb +19 -3
- data/lib/chef/resource/yum_package.rb +88 -6
- data/lib/chef/resource/yum_repository.rb +28 -11
- data/lib/chef/resource/zypper_package.rb +29 -3
- data/lib/chef/resource/zypper_repository.rb +17 -5
- data/lib/chef/resource_inspector.rb +1 -1
- data/lib/chef/scan_access_control.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/spec/functional/resource/link_spec.rb +3 -3
- data/spec/functional/resource/remote_file_spec.rb +1 -1
- data/spec/integration/knife/raw_spec.rb +4 -4
- data/spec/integration/knife/redirection_spec.rb +2 -2
- data/spec/support/platform_helpers.rb +0 -13
- data/spec/support/shared/functional/http.rb +2 -2
- data/spec/support/shared/unit/mock_shellout.rb +1 -1
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/mixin/shell_out_spec.rb +25 -31
- data/spec/unit/provider/apt_repository_spec.rb +27 -27
- data/spec/unit/provider/zypper_repository_spec.rb +17 -17
- data/spec/unit/provider_resolver_spec.rb +2 -2
- metadata +10 -10
@@ -28,11 +28,12 @@ class Chef
|
|
28
28
|
|
29
29
|
provides(:apt_repository) { true }
|
30
30
|
|
31
|
-
description "Use the apt_repository resource to specify additional APT repositories. Adding a new repository will update the APT package cache immediately."
|
31
|
+
description "Use the **apt_repository** resource to specify additional APT repositories. Adding a new repository will update the APT package cache immediately."
|
32
32
|
introduced "12.9"
|
33
33
|
|
34
34
|
examples <<~DOC
|
35
|
-
Add repository with basic settings
|
35
|
+
**Add repository with basic settings**:
|
36
|
+
|
36
37
|
```ruby
|
37
38
|
apt_repository 'nginx' do
|
38
39
|
uri 'http://nginx.org/packages/ubuntu/'
|
@@ -40,29 +41,32 @@ class Chef
|
|
40
41
|
end
|
41
42
|
```
|
42
43
|
|
43
|
-
Enable Ubuntu multiverse repositories
|
44
|
+
**Enable Ubuntu multiverse repositories**:
|
45
|
+
|
44
46
|
```ruby
|
45
47
|
apt_repository 'security-ubuntu-multiverse' do
|
46
48
|
uri 'http://security.ubuntu.com/ubuntu'
|
47
|
-
distribution '
|
49
|
+
distribution 'xenial-security'
|
48
50
|
components ['multiverse']
|
49
51
|
deb_src true
|
50
52
|
end
|
51
53
|
```
|
52
54
|
|
53
|
-
Add the Nginx PPA, autodetect the key and repository url
|
55
|
+
**Add the Nginx PPA, autodetect the key and repository url**:
|
56
|
+
|
54
57
|
```ruby
|
55
58
|
apt_repository 'nginx-php' do
|
56
59
|
uri 'ppa:nginx/stable'
|
57
60
|
end
|
58
61
|
```
|
59
62
|
|
60
|
-
Add the JuJu PPA, grab the key from the keyserver, and add source repo
|
63
|
+
**Add the JuJu PPA, grab the key from the keyserver, and add source repo**:
|
64
|
+
|
61
65
|
```ruby
|
62
66
|
apt_repository 'juju' do
|
63
67
|
uri 'http://ppa.launchpad.net/juju/stable/ubuntu'
|
64
68
|
components ['main']
|
65
|
-
distribution '
|
69
|
+
distribution 'xenial'
|
66
70
|
key 'C8068B11'
|
67
71
|
keyserver 'keyserver.ubuntu.com'
|
68
72
|
action :add
|
@@ -70,7 +74,8 @@ class Chef
|
|
70
74
|
end
|
71
75
|
```
|
72
76
|
|
73
|
-
Add repository that requires multiple keys to authenticate packages
|
77
|
+
**Add repository that requires multiple keys to authenticate packages**:
|
78
|
+
|
74
79
|
```ruby
|
75
80
|
apt_repository 'rundeck' do
|
76
81
|
uri 'https://dl.bintray.com/rundeck/rundeck-deb'
|
@@ -81,18 +86,20 @@ class Chef
|
|
81
86
|
end
|
82
87
|
```
|
83
88
|
|
84
|
-
Add the Cloudera Repo of CDH4 packages for Ubuntu
|
89
|
+
**Add the Cloudera Repo of CDH4 packages for Ubuntu 16.04 on AMD64**:
|
90
|
+
|
85
91
|
```ruby
|
86
92
|
apt_repository 'cloudera' do
|
87
|
-
uri 'http://archive.cloudera.com/cdh4/ubuntu/
|
93
|
+
uri 'http://archive.cloudera.com/cdh4/ubuntu/xenial/amd64/cdh'
|
88
94
|
arch 'amd64'
|
89
|
-
distribution '
|
95
|
+
distribution 'xenial-cdh4'
|
90
96
|
components ['contrib']
|
91
97
|
key 'http://archive.cloudera.com/debian/archive.key'
|
92
98
|
end
|
93
99
|
```
|
94
100
|
|
95
|
-
Remove a repository from the list
|
101
|
+
**Remove a repository from the list**:
|
102
|
+
|
96
103
|
```ruby
|
97
104
|
apt_repository 'zenoss' do
|
98
105
|
action :remove
|
@@ -115,15 +122,15 @@ class Chef
|
|
115
122
|
description: "The base of the Debian distribution."
|
116
123
|
|
117
124
|
property :distribution, [ String, nil, FalseClass ],
|
118
|
-
description: "Usually a distribution's codename, such as xenial
|
125
|
+
description: "Usually a distribution's codename, such as `xenial`, `bionic`, or `focal`.",
|
119
126
|
default: lazy { node["lsb"]["codename"] }, default_description: "The LSB codename of the node such as 'focal'."
|
120
127
|
|
121
128
|
property :components, Array,
|
122
129
|
description: "Package groupings, such as 'main' and 'stable'.",
|
123
|
-
default: lazy { [] }, default_description: "
|
130
|
+
default: lazy { [] }, default_description: "`main` if using a PPA repository."
|
124
131
|
|
125
132
|
property :arch, [String, nil, FalseClass],
|
126
|
-
description: "Constrain packages to a particular CPU architecture such as
|
133
|
+
description: "Constrain packages to a particular CPU architecture such as `i386` or `amd64`."
|
127
134
|
|
128
135
|
property :trusted, [TrueClass, FalseClass],
|
129
136
|
description: "Determines whether you should treat all packages from this repository as authenticated regardless of signature.",
|
@@ -25,10 +25,11 @@ class Chef
|
|
25
25
|
|
26
26
|
provides(:apt_update) { true }
|
27
27
|
|
28
|
-
description "Use the apt_update resource to manage APT repository updates on Debian and Ubuntu platforms."
|
28
|
+
description "Use the **apt_update** resource to manage APT repository updates on Debian and Ubuntu platforms."
|
29
29
|
introduced "12.7"
|
30
30
|
examples <<~DOC
|
31
|
-
Update the Apt repository at a specified interval
|
31
|
+
**Update the Apt repository at a specified interval**:
|
32
|
+
|
32
33
|
```ruby
|
33
34
|
apt_update 'all platforms' do
|
34
35
|
frequency 86400
|
@@ -36,7 +37,8 @@ class Chef
|
|
36
37
|
end
|
37
38
|
```
|
38
39
|
|
39
|
-
Update the Apt repository at the start of a Chef Infra Client run
|
40
|
+
**Update the Apt repository at the start of a Chef Infra Client run**:
|
41
|
+
|
40
42
|
```ruby
|
41
43
|
apt_update 'update'
|
42
44
|
```
|
@@ -46,7 +48,7 @@ class Chef
|
|
46
48
|
property :name, String, default: ""
|
47
49
|
|
48
50
|
property :frequency, Integer,
|
49
|
-
description: "Determines how frequently (in seconds) APT repository updates are made. Use this property when the
|
51
|
+
description: "Determines how frequently (in seconds) APT repository updates are made. Use this property when the `:periodic` action is specified.",
|
50
52
|
default: 86_400
|
51
53
|
|
52
54
|
default_action :periodic
|
@@ -29,9 +29,10 @@ class Chef
|
|
29
29
|
provides :libarchive_file # legacy cookbook name
|
30
30
|
|
31
31
|
introduced "15.0"
|
32
|
-
description "Use the archive_file resource to extract archive files to disk. This resource uses the libarchive library to extract multiple archive formats including tar, gzip, bzip, and zip formats."
|
32
|
+
description "Use the **archive_file** resource to extract archive files to disk. This resource uses the libarchive library to extract multiple archive formats including tar, gzip, bzip, and zip formats."
|
33
33
|
examples <<~DOC
|
34
|
-
Extract a zip file to a specified directory
|
34
|
+
**Extract a zip file to a specified directory**:
|
35
|
+
|
35
36
|
```ruby
|
36
37
|
archive_file 'Precompiled.zip' do
|
37
38
|
path '/tmp/Precompiled.zip'
|
@@ -60,11 +61,11 @@ class Chef
|
|
60
61
|
required: true
|
61
62
|
|
62
63
|
property :options, [Array, Symbol],
|
63
|
-
description: "An array of symbols representing extraction flags. Example:
|
64
|
+
description: "An array of symbols representing extraction flags. Example: `:no_overwrite` to prevent overwriting files on disk. By default, this properly sets `:time` which preserves the modification timestamps of files in the archive when writing them to disk.",
|
64
65
|
default: lazy { [:time] }
|
65
66
|
|
66
67
|
property :overwrite, [TrueClass, FalseClass, :auto],
|
67
|
-
description: "Should the resource overwrite the destination file contents if they already exist? If set to
|
68
|
+
description: "Should the resource overwrite the destination file contents if they already exist? If set to `:auto` the date stamp of files within the archive will be compared to those on disk and disk contents will be overwritten if they differ. This may cause unintended consequences if disk date stamps are changed between runs, which will result in the files being overwritten during each client run. Make sure to properly test any change to this property.",
|
68
69
|
default: false
|
69
70
|
|
70
71
|
# backwards compatibility for the legacy cookbook names
|
data/lib/chef/resource/bash.rb
CHANGED
@@ -26,7 +26,7 @@ class Chef
|
|
26
26
|
|
27
27
|
provides :bash
|
28
28
|
|
29
|
-
description "Use the bash resource to execute scripts using the Bash interpreter. This resource may also use any of the actions and properties that are available to the execute resource. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
|
29
|
+
description "Use the **bash** resource to execute scripts using the Bash interpreter. This resource may also use any of the actions and properties that are available to the execute resource. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
|
30
30
|
|
31
31
|
def initialize(name, run_context = nil)
|
32
32
|
super
|
data/lib/chef/resource/batch.rb
CHANGED
@@ -25,7 +25,7 @@ class Chef
|
|
25
25
|
|
26
26
|
provides :batch
|
27
27
|
|
28
|
-
description "Use the batch resource to execute a batch script using the cmd.exe interpreter on Windows. The batch resource creates and executes a temporary file (similar to how the script resource behaves), rather than running the command inline. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
|
28
|
+
description "Use the **batch** resource to execute a batch script using the cmd.exe interpreter on Windows. The batch resource creates and executes a temporary file (similar to how the script resource behaves), rather than running the command inline. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
|
29
29
|
|
30
30
|
def initialize(name, run_context = nil)
|
31
31
|
super(name, run_context, nil, "cmd.exe")
|
@@ -25,7 +25,7 @@ class Chef
|
|
25
25
|
|
26
26
|
provides :bff_package
|
27
27
|
|
28
|
-
description "Use the bff_package resource to manage packages for the AIX platform using the installp utility. When a package is installed from a local file, it must be added to the node using the remote_file or cookbook_file resources."
|
28
|
+
description "Use the **bff_package** resource to manage packages for the AIX platform using the installp utility. When a package is installed from a local file, it must be added to the node using the **remote_file** or **cookbook_file** resources."
|
29
29
|
introduced "12.0"
|
30
30
|
|
31
31
|
property :package_name, String,
|
@@ -26,7 +26,7 @@ class Chef
|
|
26
26
|
|
27
27
|
provides :breakpoint, target_mode: true
|
28
28
|
|
29
|
-
description "Use the breakpoint resource to add breakpoints to recipes. Run the #{Chef::Dist::SHELL} in #{Chef::Dist::PRODUCT} mode, and then use those breakpoints to debug recipes. Breakpoints are ignored by the #{Chef::Dist::CLIENT} during an actual #{Chef::Dist::CLIENT} run. That said, breakpoints are typically used to debug recipes only when running them in a non-production environment, after which they are removed from those recipes before the parent cookbook is uploaded to the Chef server."
|
29
|
+
description "Use the **breakpoint** resource to add breakpoints to recipes. Run the #{Chef::Dist::SHELL} in #{Chef::Dist::PRODUCT} mode, and then use those breakpoints to debug recipes. Breakpoints are ignored by the #{Chef::Dist::CLIENT} during an actual #{Chef::Dist::CLIENT} run. That said, breakpoints are typically used to debug recipes only when running them in a non-production environment, after which they are removed from those recipes before the parent cookbook is uploaded to the Chef server."
|
30
30
|
introduced "12.0"
|
31
31
|
|
32
32
|
default_action :break
|
@@ -24,22 +24,25 @@ class Chef
|
|
24
24
|
|
25
25
|
provides(:build_essential) { true }
|
26
26
|
|
27
|
-
description "Use the build_essential resource to install the packages required for compiling C software from source."
|
27
|
+
description "Use the **build_essential** resource to install the packages required for compiling C software from source."
|
28
28
|
introduced "14.0"
|
29
29
|
examples <<~DOC
|
30
|
-
Install compilation packages
|
30
|
+
**Install compilation packages**:
|
31
|
+
|
31
32
|
```ruby
|
32
33
|
build_essential
|
33
34
|
```
|
34
35
|
|
35
|
-
Install compilation packages during the compilation phase
|
36
|
+
**Install compilation packages during the compilation phase**:
|
37
|
+
|
36
38
|
```ruby
|
37
39
|
build_essential 'Install compilation tools' do
|
38
40
|
compile_time true
|
39
41
|
end
|
40
42
|
```
|
41
43
|
|
42
|
-
Upgrade compilation packages on macOS systems
|
44
|
+
**Upgrade compilation packages on macOS systems**:
|
45
|
+
|
43
46
|
```ruby
|
44
47
|
build_essential 'Install compilation tools' do
|
45
48
|
action :upgrade
|
@@ -52,6 +55,7 @@ class Chef
|
|
52
55
|
|
53
56
|
property :raise_if_unsupported, [TrueClass, FalseClass],
|
54
57
|
description: "Raise a hard error on platforms where this resource is unsupported.",
|
58
|
+
introduced: "15.5",
|
55
59
|
default: false, desired_state: false # FIXME: make this default to true
|
56
60
|
|
57
61
|
action :install do
|
@@ -27,7 +27,7 @@ class Chef
|
|
27
27
|
|
28
28
|
provides :cab_package
|
29
29
|
|
30
|
-
description "Use the cab_package resource to install or remove Microsoft Windows cabinet (.cab) packages."
|
30
|
+
description "Use the **cab_package** resource to install or remove Microsoft Windows cabinet (.cab) packages."
|
31
31
|
introduced "12.15"
|
32
32
|
|
33
33
|
allowed_actions :install, :remove
|
@@ -26,23 +26,26 @@ class Chef
|
|
26
26
|
|
27
27
|
provides :chef_client_cron
|
28
28
|
|
29
|
-
description "Use the chef_client_cron resource to setup the #{Chef::Dist::PRODUCT} to run as a cron job. This resource will also create the specified log directory if it doesn't already exist."
|
29
|
+
description "Use the **chef_client_cron** resource to setup the #{Chef::Dist::PRODUCT} to run as a cron job. This resource will also create the specified log directory if it doesn't already exist."
|
30
30
|
introduced "16.0"
|
31
31
|
examples <<~DOC
|
32
|
-
Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence
|
32
|
+
**Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence**:
|
33
|
+
|
33
34
|
```ruby
|
34
|
-
chef_client_cron "Run
|
35
|
+
chef_client_cron "Run #{Chef::Dist::PRODUCT} as a cron job"
|
35
36
|
```
|
36
37
|
|
37
|
-
Run #{Chef::Dist::PRODUCT} twice a day
|
38
|
+
**Run #{Chef::Dist::PRODUCT} twice a day**:
|
39
|
+
|
38
40
|
```ruby
|
39
|
-
chef_client_cron "Run
|
41
|
+
chef_client_cron "Run #{Chef::Dist::PRODUCT} every 12 hours" do
|
40
42
|
minute 0
|
41
43
|
hour "0,12"
|
42
44
|
end
|
43
45
|
```
|
44
46
|
|
45
|
-
Run #{Chef::Dist::PRODUCT} with extra options passed to the client
|
47
|
+
**Run #{Chef::Dist::PRODUCT} with extra options passed to the client**:
|
48
|
+
|
46
49
|
```ruby
|
47
50
|
chef_client_cron "Run an override recipe" do
|
48
51
|
daemon_options ["--override-runlist mycorp_base::default"]
|
@@ -133,14 +136,14 @@ class Chef
|
|
133
136
|
|
134
137
|
property :environment, Hash,
|
135
138
|
default: lazy { {} },
|
136
|
-
description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of
|
139
|
+
description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`."
|
137
140
|
|
138
141
|
action :add do
|
139
142
|
# TODO: Replace this with a :create_if_missing action on directory when that exists
|
140
143
|
unless ::Dir.exist?(new_resource.log_directory)
|
141
144
|
directory new_resource.log_directory do
|
142
145
|
owner new_resource.user
|
143
|
-
mode "
|
146
|
+
mode "0750"
|
144
147
|
recursive true
|
145
148
|
end
|
146
149
|
end
|
@@ -160,7 +163,7 @@ class Chef
|
|
160
163
|
end
|
161
164
|
|
162
165
|
action :remove do
|
163
|
-
|
166
|
+
declare_resource(cron_resource_type, new_resource.job_name) do
|
164
167
|
action :delete
|
165
168
|
end
|
166
169
|
end
|
@@ -24,22 +24,25 @@ class Chef
|
|
24
24
|
|
25
25
|
provides :chef_client_scheduled_task
|
26
26
|
|
27
|
-
description "Use the
|
27
|
+
description "Use the **chef_client_scheduled_task** resource to setup the #{Chef::Dist::PRODUCT} to run as a Windows scheduled task. This resource will also create the specified log directory if it doesn't already exist."
|
28
28
|
introduced "16.0"
|
29
29
|
examples <<~DOC
|
30
|
-
Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence
|
30
|
+
**Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence**:
|
31
|
+
|
31
32
|
```ruby
|
32
|
-
chef_client_scheduled_task "Run
|
33
|
+
chef_client_scheduled_task "Run #{Chef::Dist::PRODUCT} as a scheduled task"
|
33
34
|
```
|
34
35
|
|
35
|
-
Run #{Chef::Dist::PRODUCT} on system start
|
36
|
+
**Run #{Chef::Dist::PRODUCT} on system start**:
|
37
|
+
|
36
38
|
```ruby
|
37
|
-
chef_client_scheduled_task 'Chef
|
39
|
+
chef_client_scheduled_task '#{Chef::Dist::PRODUCT} on start' do
|
38
40
|
frequency 'onstart'
|
39
41
|
end
|
40
42
|
```
|
41
43
|
|
42
|
-
Run #{Chef::Dist::PRODUCT} with extra options passed to the client
|
44
|
+
**Run #{Chef::Dist::PRODUCT} with extra options passed to the client**:
|
45
|
+
|
43
46
|
```ruby
|
44
47
|
chef_client_scheduled_task "Run an override recipe" do
|
45
48
|
daemon_options ["--override-runlist mycorp_base::default"]
|
@@ -24,22 +24,25 @@ class Chef
|
|
24
24
|
|
25
25
|
provides :chef_client_systemd_timer
|
26
26
|
|
27
|
-
description "Use the chef_client_systemd_timer resource to setup the #{Chef::Dist::PRODUCT} to run as a systemd timer."
|
27
|
+
description "Use the **chef_client_systemd_timer** resource to setup the #{Chef::Dist::PRODUCT} to run as a systemd timer."
|
28
28
|
introduced "16.0"
|
29
29
|
examples <<~DOC
|
30
|
-
Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence
|
30
|
+
**Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence**:
|
31
|
+
|
31
32
|
```ruby
|
32
|
-
chef_client_systemd_timer "Run
|
33
|
+
chef_client_systemd_timer "Run #{Chef::Dist::PRODUCT} as a systemd timer"
|
33
34
|
```
|
34
35
|
|
35
|
-
Run #{Chef::Dist::PRODUCT} every 1 hour
|
36
|
+
**Run #{Chef::Dist::PRODUCT} every 1 hour**:
|
37
|
+
|
36
38
|
```ruby
|
37
|
-
chef_client_systemd_timer "Run
|
39
|
+
chef_client_systemd_timer "Run #{Chef::Dist::PRODUCT} every 1 hour" do
|
38
40
|
interval "1hr"
|
39
41
|
end
|
40
42
|
```
|
41
43
|
|
42
|
-
Run #{Chef::Dist::PRODUCT} with extra options passed to the client
|
44
|
+
**Run #{Chef::Dist::PRODUCT} with extra options passed to the client**:
|
45
|
+
|
43
46
|
```ruby
|
44
47
|
chef_client_systemd_timer "Run an override recipe" do
|
45
48
|
daemon_options ["--override-runlist mycorp_base::default"]
|
@@ -92,7 +95,7 @@ class Chef
|
|
92
95
|
default: lazy { [] }
|
93
96
|
|
94
97
|
property :environment, Hash,
|
95
|
-
description: "A Hash containing additional arbitrary environment variables under which the systemd timer will be run in the form of
|
98
|
+
description: "A Hash containing additional arbitrary environment variables under which the systemd timer will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`.",
|
96
99
|
default: lazy { {} }
|
97
100
|
|
98
101
|
action :add do
|
@@ -34,6 +34,10 @@ class Chef
|
|
34
34
|
# installed
|
35
35
|
# - Runs Gem.clear_paths after the action, ensuring that gem is aware of changes so that it can be required
|
36
36
|
# immediately after it is installed
|
37
|
+
|
38
|
+
require_relative "gem_package"
|
39
|
+
require_relative "../dist"
|
40
|
+
|
37
41
|
class ChefGem < Chef::Resource::Package::GemPackage
|
38
42
|
unified_mode true
|
39
43
|
provides :chef_gem
|
@@ -45,8 +49,8 @@ class Chef
|
|
45
49
|
property :version, String,
|
46
50
|
description: "The version of a package to be installed or upgraded."
|
47
51
|
|
48
|
-
property :gem_binary, default: "#{RbConfig::CONFIG["bindir"]}/gem", default_description: "
|
49
|
-
description: "The path of a gem binary to use for the installation. By default, the same version of Ruby that is used by
|
52
|
+
property :gem_binary, default: "#{RbConfig::CONFIG["bindir"]}/gem", default_description: "The `gem` binary included with #{Chef::Dist::PRODUCT}.",
|
53
|
+
description: "The path of a gem binary to use for the installation. By default, the same version of Ruby that is used by #{Chef::Dist::PRODUCT} will be installed.",
|
50
54
|
callbacks: {
|
51
55
|
"The chef_gem resource is restricted to the current gem environment, use gem_package to install to other environments." => proc { |v| v == "#{RbConfig::CONFIG["bindir"]}/gem" },
|
52
56
|
}
|
@@ -25,7 +25,7 @@ class Chef
|
|
25
25
|
|
26
26
|
provides(:chef_handler) { true }
|
27
27
|
|
28
|
-
description "Use the chef_handler resource to install or uninstall reporting/exception handlers."
|
28
|
+
description "Use the **chef_handler** resource to install or uninstall reporting/exception handlers."
|
29
29
|
introduced "14.0"
|
30
30
|
|
31
31
|
property :class_name, String,
|
@@ -24,22 +24,25 @@ class Chef
|
|
24
24
|
|
25
25
|
unified_mode true
|
26
26
|
|
27
|
-
description "Use the chef_sleep resource to
|
27
|
+
description "Use the **chef_sleep** resource to pause (sleep) for a number of seconds during a #{Chef::Dist::PRODUCT} run. Only use this resource when a command or service exits successfully but is not ready for the next step in a recipe."
|
28
28
|
introduced "15.5"
|
29
29
|
examples <<~DOC
|
30
|
-
Sleep for 10 seconds
|
30
|
+
**Sleep for 10 seconds**:
|
31
|
+
|
31
32
|
```ruby
|
32
33
|
chef_sleep '10'
|
33
34
|
```
|
34
35
|
|
35
|
-
Sleep for 10 seconds with a descriptive resource name for logging
|
36
|
+
**Sleep for 10 seconds with a descriptive resource name for logging**:
|
37
|
+
|
36
38
|
```ruby
|
37
39
|
chef_sleep 'wait for the service to start' do
|
38
40
|
seconds 10
|
39
41
|
end
|
40
42
|
````
|
41
43
|
|
42
|
-
Use a notification from another resource to sleep only when necessary
|
44
|
+
**Use a notification from another resource to sleep only when necessary**:
|
45
|
+
|
43
46
|
```ruby
|
44
47
|
service 'Service that is slow to start and reports as started' do
|
45
48
|
service_name 'my_database'
|
@@ -26,9 +26,9 @@ class Chef
|
|
26
26
|
provides :chef_vault_secret
|
27
27
|
|
28
28
|
introduced "16.0"
|
29
|
-
description "Use the chef_vault_secret resource to store secrets in Chef Vault items. Where possible and relevant, this resource attempts to map behavior and functionality to the knife vault sub-commands."
|
29
|
+
description "Use the **chef_vault_secret** resource to store secrets in Chef Vault items. Where possible and relevant, this resource attempts to map behavior and functionality to the knife vault sub-commands."
|
30
30
|
examples <<~DOC
|
31
|
-
To create a 'foo' item in an existing 'bar' data bag
|
31
|
+
**To create a 'foo' item in an existing 'bar' data bag**:
|
32
32
|
|
33
33
|
```ruby
|
34
34
|
chef_vault_secret 'foo' do
|
@@ -39,7 +39,7 @@ class Chef
|
|
39
39
|
end
|
40
40
|
```
|
41
41
|
|
42
|
-
To allow multiple admins access to an item
|
42
|
+
**To allow multiple admins access to an item**:
|
43
43
|
|
44
44
|
```ruby
|
45
45
|
chef_vault_secret 'root-password' do
|