chef 16.0.287-universal-mingw32 → 16.2.73-universal-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -3
- data/README.md +3 -3
- data/Rakefile +3 -2
- data/chef.gemspec +5 -5
- data/distro/powershell/chef/chef.psm1 +3 -3
- data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
- data/lib/chef/application/apply.rb +2 -1
- data/lib/chef/application/base.rb +1 -1
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +4 -4
- data/lib/chef/cookbook/chefignore.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +2 -2
- data/lib/chef/cookbook_loader.rb +1 -1
- data/lib/chef/cookbook_manifest.rb +1 -1
- data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +4 -4
- data/lib/chef/data_bag.rb +4 -4
- data/lib/chef/data_collector.rb +1 -1
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/decorator/lazy_array.rb +2 -2
- data/lib/chef/deprecated.rb +4 -0
- data/lib/chef/digester.rb +5 -4
- data/lib/chef/dsl/declare_resource.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
- data/lib/chef/file_access_control.rb +1 -1
- data/lib/chef/file_access_control/windows.rb +2 -2
- data/lib/chef/file_content_management/deploy/mv_unix.rb +1 -1
- data/lib/chef/formatters/base.rb +1 -1
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
- data/lib/chef/http.rb +19 -4
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +1 -1
- data/lib/chef/http/json_output.rb +1 -1
- data/lib/chef/http/ssl_policies.rb +18 -0
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +1 -1
- data/lib/chef/knife.rb +2 -2
- data/lib/chef/knife/bootstrap.rb +20 -14
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +3 -1
- data/lib/chef/knife/client_bulk_delete.rb +1 -1
- data/lib/chef/knife/config_get.rb +1 -1
- data/lib/chef/knife/config_use_profile.rb +15 -5
- data/lib/chef/knife/cookbook_delete.rb +1 -1
- data/lib/chef/knife/cookbook_upload.rb +1 -4
- data/lib/chef/knife/core/bootstrap_context.rb +1 -1
- data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
- data/lib/chef/knife/core/node_presenter.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +1 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +19 -4
- data/lib/chef/knife/data_bag_create.rb +1 -1
- data/lib/chef/knife/key_create_base.rb +1 -1
- data/lib/chef/knife/key_edit_base.rb +1 -1
- data/lib/chef/knife/node_bulk_delete.rb +1 -1
- data/lib/chef/knife/node_run_list_remove.rb +1 -1
- data/lib/chef/knife/role_bulk_delete.rb +1 -1
- data/lib/chef/knife/ssh.rb +2 -2
- data/lib/chef/knife/supermarket_share.rb +1 -1
- data/lib/chef/knife/supermarket_unshare.rb +1 -1
- data/lib/chef/log.rb +1 -1
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +0 -1
- data/lib/chef/mixin/openssl_helper.rb +4 -4
- data/lib/chef/mixin/properties.rb +2 -2
- data/lib/chef/mixin/securable.rb +2 -2
- data/lib/chef/mixin/shell_out.rb +1 -1
- data/lib/chef/node/attribute.rb +2 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- data/lib/chef/policy_builder/policyfile.rb +1 -1
- data/lib/chef/powershell.rb +1 -1
- data/lib/chef/property.rb +2 -2
- data/lib/chef/provider.rb +3 -3
- data/lib/chef/provider/batch.rb +3 -10
- data/lib/chef/provider/cron.rb +2 -14
- data/lib/chef/provider/directory.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -1
- data/lib/chef/provider/file.rb +1 -1
- data/lib/chef/provider/group/dscl.rb +2 -2
- data/lib/chef/provider/group/windows.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +7 -7
- data/lib/chef/provider/launchd.rb +11 -9
- data/lib/chef/provider/mount/aix.rb +1 -1
- data/lib/chef/provider/mount/windows.rb +2 -2
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/package/cab.rb +1 -1
- data/lib/chef/provider/package/chocolatey.rb +1 -1
- data/lib/chef/provider/package/dpkg.rb +1 -1
- data/lib/chef/provider/package/openbsd.rb +1 -1
- data/lib/chef/provider/package/portage.rb +3 -2
- data/lib/chef/provider/package/powershell.rb +6 -2
- data/lib/chef/provider/package/rubygems.rb +3 -3
- data/lib/chef/provider/package/snap.rb +96 -27
- data/lib/chef/provider/package/windows.rb +2 -2
- data/lib/chef/provider/package/windows/msi.rb +3 -3
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
- data/lib/chef/provider/package/yum.rb +1 -1
- data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
- data/lib/chef/provider/powershell_script.rb +11 -15
- data/lib/chef/provider/remote_directory.rb +2 -2
- data/lib/chef/provider/remote_file/http.rb +4 -1
- data/lib/chef/provider/script.rb +4 -75
- data/lib/chef/provider/service/arch.rb +2 -2
- data/lib/chef/provider/service/debian.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +9 -0
- data/lib/chef/provider/service/openbsd.rb +4 -4
- data/lib/chef/provider/service/redhat.rb +1 -1
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +1 -1
- data/lib/chef/provider/subversion.rb +2 -2
- data/lib/chef/provider/user/aix.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +6 -6
- data/lib/chef/provider/user/linux.rb +3 -3
- data/lib/chef/provider/user/mac.rb +15 -11
- data/lib/chef/provider/windows_script.rb +87 -25
- data/lib/chef/provider/windows_task.rb +4 -2
- data/lib/chef/provider/zypper_repository.rb +30 -10
- data/lib/chef/resource.rb +25 -14
- data/lib/chef/resource/alternatives.rb +1 -1
- data/lib/chef/resource/apt_package.rb +1 -1
- data/lib/chef/resource/archive_file.rb +28 -8
- data/lib/chef/resource/bash.rb +0 -1
- data/lib/chef/resource/batch.rb +4 -2
- data/lib/chef/resource/chef_client_scheduled_task.rb +13 -1
- data/lib/chef/resource/chef_gem.rb +57 -21
- data/lib/chef/resource/chef_handler.rb +2 -2
- data/lib/chef/resource/chef_vault_secret.rb +1 -1
- data/lib/chef/resource/cron/_cron_shared.rb +98 -0
- data/lib/chef/resource/cron/cron.rb +46 -0
- data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +7 -87
- data/lib/chef/resource/cron_access.rb +11 -3
- data/lib/chef/resource/csh.rb +0 -1
- data/lib/chef/resource/dmg_package.rb +2 -2
- data/lib/chef/resource/execute.rb +478 -8
- data/lib/chef/resource/file.rb +10 -8
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/gem_package.rb +35 -2
- data/lib/chef/resource/helpers/cron_validations.rb +6 -3
- data/lib/chef/resource/homebrew_package.rb +30 -1
- data/lib/chef/resource/homebrew_update.rb +107 -0
- data/lib/chef/resource/hostname.rb +7 -20
- data/lib/chef/resource/kernel_module.rb +14 -1
- data/lib/chef/resource/launchd.rb +1 -1
- data/lib/chef/resource/locale.rb +3 -3
- data/lib/chef/resource/macos_userdefaults.rb +11 -6
- data/lib/chef/resource/mount.rb +1 -1
- data/lib/chef/resource/perl.rb +0 -1
- data/lib/chef/resource/plist.rb +23 -4
- data/lib/chef/resource/powershell_script.rb +4 -2
- data/lib/chef/resource/python.rb +0 -1
- data/lib/chef/resource/remote_file.rb +26 -10
- data/lib/chef/resource/ruby.rb +0 -1
- data/lib/chef/resource/scm/git.rb +1 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +15 -0
- data/lib/chef/resource/sudo.rb +29 -2
- data/lib/chef/resource/swap_file.rb +17 -0
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/timezone.rb +15 -0
- data/lib/chef/resource/windows_ad_join.rb +30 -1
- data/lib/chef/resource/windows_audit_policy.rb +227 -0
- data/lib/chef/resource/windows_auto_run.rb +11 -0
- data/lib/chef/resource/windows_certificate.rb +27 -1
- data/lib/chef/resource/windows_dfs_server.rb +1 -1
- data/lib/chef/resource/windows_font.rb +3 -3
- data/lib/chef/resource/windows_package.rb +1 -1
- data/lib/chef/resource/windows_pagefile.rb +2 -2
- data/lib/chef/resource/windows_script.rb +2 -16
- data/lib/chef/resource/windows_security_policy.rb +47 -16
- data/lib/chef/resource/windows_shortcut.rb +1 -2
- data/lib/chef/resource/windows_task.rb +10 -10
- data/lib/chef/resource/windows_user_privilege.rb +70 -5
- data/lib/chef/resource/yum_repository.rb +9 -9
- data/lib/chef/resource_inspector.rb +4 -3
- data/lib/chef/resources.rb +4 -2
- data/lib/chef/run_context/cookbook_compiler.rb +1 -1
- data/lib/chef/search/query.rb +1 -1
- data/lib/chef/shell/ext.rb +1 -1
- data/lib/chef/util/diff.rb +2 -2
- data/lib/chef/util/windows/net_user.rb +1 -1
- data/lib/chef/util/windows/volume.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api.rb +2 -2
- data/lib/chef/win32/api/error.rb +3 -1
- data/lib/chef/win32/api/file.rb +1 -1
- data/lib/chef/win32/api/net.rb +1 -0
- data/lib/chef/win32/file.rb +1 -1
- data/lib/chef/win32/mutex.rb +1 -1
- data/lib/chef/win32/net.rb +1 -0
- data/lib/chef/win32/registry.rb +2 -2
- data/lib/chef/win32/security.rb +1 -1
- data/lib/chef/win32/security/sid.rb +4 -4
- data/spec/data/lwrp/providers/buck_passer.rb +1 -1
- data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
- data/spec/functional/knife/configure_spec.rb +1 -1
- data/spec/functional/resource/aix_service_spec.rb +10 -1
- data/spec/functional/resource/aixinit_service_spec.rb +1 -1
- data/spec/functional/resource/bash_spec.rb +3 -2
- data/spec/functional/resource/bff_spec.rb +1 -1
- data/spec/functional/resource/chocolatey_package_spec.rb +4 -0
- data/spec/functional/resource/cron_spec.rb +20 -1
- data/spec/functional/resource/dnf_package_spec.rb +6 -3
- data/spec/functional/resource/execute_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +6 -6
- data/spec/functional/resource/group_spec.rb +9 -1
- data/spec/functional/resource/ifconfig_spec.rb +9 -1
- data/spec/functional/resource/insserv_spec.rb +3 -2
- data/spec/functional/resource/launchd_spec.rb +232 -0
- data/spec/functional/resource/link_spec.rb +2 -5
- data/spec/functional/resource/mount_spec.rb +9 -1
- data/spec/functional/resource/msu_package_spec.rb +9 -3
- data/spec/functional/resource/powershell_script_spec.rb +4 -4
- data/spec/functional/resource/remote_file_spec.rb +8 -8
- data/spec/functional/resource/rpm_spec.rb +1 -1
- data/spec/functional/resource/timezone_spec.rb +2 -0
- data/spec/functional/resource/windows_package_spec.rb +0 -1
- data/spec/functional/resource/windows_path_spec.rb +4 -0
- data/spec/functional/resource/windows_security_policy_spec.rb +0 -1
- data/spec/functional/resource/windows_service_spec.rb +4 -0
- data/spec/functional/resource/windows_task_spec.rb +16 -15
- data/spec/functional/resource/windows_user_privilege_spec.rb +0 -1
- data/spec/functional/resource/yum_package_spec.rb +4 -1
- data/spec/functional/resource/zypper_package_spec.rb +4 -1
- data/spec/functional/shell_spec.rb +0 -1
- data/spec/functional/win32/crypto_spec.rb +1 -1
- data/spec/integration/knife/config_use_profile_spec.rb +55 -2
- data/spec/integration/knife/cookbook_upload_spec.rb +1 -1
- data/spec/integration/knife/data_bag_from_file_spec.rb +1 -1
- data/spec/integration/knife/environment_from_file_spec.rb +1 -1
- data/spec/integration/knife/node_from_file_spec.rb +1 -1
- data/spec/integration/knife/role_from_file_spec.rb +1 -1
- data/spec/integration/recipes/recipe_dsl_spec.rb +4 -0
- data/spec/integration/recipes/resource_load_spec.rb +2 -2
- data/spec/support/chef_helpers.rb +1 -1
- data/spec/support/platform_helpers.rb +1 -1
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/securable_resource.rb +1 -2
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +0 -1
- data/spec/support/shared/functional/windows_script.rb +3 -3
- data/spec/support/shared/unit/execute_resource.rb +1 -1
- data/spec/support/shared/unit/provider/file.rb +12 -8
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
- data/spec/unit/application/solo_spec.rb +4 -2
- data/spec/unit/application_spec.rb +7 -0
- data/spec/unit/chef_fs/config_spec.rb +2 -2
- data/spec/unit/chef_fs/diff_spec.rb +8 -8
- data/spec/unit/client_spec.rb +4 -1
- data/spec/unit/cookbook/synchronizer_spec.rb +26 -24
- data/spec/unit/data_bag_spec.rb +6 -3
- data/spec/unit/decorator_spec.rb +23 -23
- data/spec/unit/environment_spec.rb +5 -1
- data/spec/unit/guard_interpreter_spec.rb +1 -1
- data/spec/unit/http/api_versions_spec.rb +1 -1
- data/spec/unit/http/ssl_policies_spec.rb +20 -0
- data/spec/unit/knife/bootstrap_spec.rb +3 -2
- data/spec/unit/knife/cookbook_download_spec.rb +2 -2
- data/spec/unit/knife/cookbook_show_spec.rb +6 -7
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
- data/spec/unit/lwrp_spec.rb +5 -2
- data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
- data/spec/unit/mixin/powershell_out_spec.rb +2 -4
- data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
- data/spec/unit/mixin/subclass_directive_spec.rb +2 -2
- data/spec/unit/mixin/unformatter_spec.rb +2 -2
- data/spec/unit/mixin/uris_spec.rb +1 -1
- data/spec/unit/mixin/user_context_spec.rb +1 -9
- data/spec/unit/node/attribute_spec.rb +1 -1
- data/spec/unit/property_spec.rb +1 -1
- data/spec/unit/provider/batch_spec.rb +130 -0
- data/spec/unit/provider/cron/unix_spec.rb +1 -1
- data/spec/unit/provider/cron_spec.rb +9 -49
- data/spec/unit/provider/dsc_resource_spec.rb +22 -38
- data/spec/unit/provider/dsc_script_spec.rb +10 -10
- data/spec/unit/provider/execute_spec.rb +1 -1
- data/spec/unit/provider/git_spec.rb +3 -3
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/launchd_spec.rb +0 -42
- data/spec/unit/provider/mdadm_spec.rb +1 -3
- data/spec/unit/provider/package/openbsd_spec.rb +1 -1
- data/spec/unit/provider/package/pacman_spec.rb +17 -20
- data/spec/unit/provider/package/portage_spec.rb +2 -2
- data/spec/unit/provider/package/powershell_spec.rb +96 -87
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +3 -3
- data/spec/unit/provider/powershell_script_spec.rb +3 -45
- data/spec/unit/provider/script_spec.rb +20 -110
- data/spec/unit/provider/user/dscl_spec.rb +2 -2
- data/spec/unit/provider/windows_env_spec.rb +5 -4
- data/spec/unit/provider/zypper_repository_spec.rb +60 -10
- data/spec/unit/resource/archive_file_spec.rb +11 -2
- data/spec/unit/resource/chef_client_cron_spec.rb +23 -7
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +7 -4
- data/spec/unit/resource/cron_spec.rb +2 -2
- data/spec/unit/resource/file/verification_spec.rb +2 -1
- data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
- data/spec/unit/resource/homebrew_update_spec.rb +30 -0
- data/spec/unit/resource/powershell_script_spec.rb +10 -15
- data/spec/unit/resource/timezone_spec.rb +1 -1
- data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
- data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
- data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_spec.rb +84 -1
- data/spec/unit/role_spec.rb +23 -21
- data/spec/unit/util/backup_spec.rb +1 -1
- data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
- data/spec/unit/util/powershell/ps_credential_spec.rb +2 -2
- data/spec/unit/util/selinux_spec.rb +2 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
- data/spec/unit/win32/registry_spec.rb +1 -1
- metadata +37 -31
- data/lib/chef/resource/cron.rb +0 -157
- data/spec/functional/resource/base.rb +0 -28
@@ -25,6 +25,17 @@ class Chef
|
|
25
25
|
|
26
26
|
description "Use the **windows_auto_run** resource to set applications to run at login."
|
27
27
|
introduced "14.0"
|
28
|
+
examples <<~DOC
|
29
|
+
**Run BGInfo at login**
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
windows_auto_run 'BGINFO' do
|
33
|
+
program 'C:/Sysinternals/bginfo.exe'
|
34
|
+
args '\'C:/Sysinternals/Config.bgi\' /NOLICPROMPT /TIMER:0'
|
35
|
+
action :create
|
36
|
+
end
|
37
|
+
```
|
38
|
+
DOC
|
28
39
|
|
29
40
|
property :program_name, String,
|
30
41
|
description: "The name of the program to run at login if it differs from the resource block's name.",
|
@@ -30,6 +30,32 @@ class Chef
|
|
30
30
|
|
31
31
|
description "Use the **windows_certificate** resource to install a certificate into the Windows certificate store from a file. The resource grants read-only access to the private key for designated accounts. Due to current limitations in WinRM, installing certificates remotely may not work if the operation requires a user profile. Operations on the local machine store should still work."
|
32
32
|
introduced "14.7"
|
33
|
+
examples <<~DOC
|
34
|
+
**Add PFX cert to local machine personal store and grant accounts read-only access to private key**
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
windows_certificate 'c:/test/mycert.pfx' do
|
38
|
+
pfx_password 'password'
|
39
|
+
private_key_acl ["acme\\fred", "pc\\jane"]
|
40
|
+
end
|
41
|
+
```
|
42
|
+
|
43
|
+
**Add cert to trusted intermediate store**
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
windows_certificate 'c:/test/mycert.cer' do
|
47
|
+
store_name 'CA'
|
48
|
+
end
|
49
|
+
```
|
50
|
+
|
51
|
+
**Remove all certificates matching the subject**
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
windows_certificate 'me.acme.com' do
|
55
|
+
action :delete
|
56
|
+
end
|
57
|
+
```
|
58
|
+
DOC
|
33
59
|
|
34
60
|
property :source, String,
|
35
61
|
description: "The source file (for create and acl_add), thumbprint (for delete and acl_add) or subject (for delete) if it differs from the resource block's name.",
|
@@ -308,7 +334,7 @@ class Chef
|
|
308
334
|
#
|
309
335
|
def import_certificates(cert_objs, is_pfx)
|
310
336
|
[cert_objs].flatten.each do |cert_obj|
|
311
|
-
thumbprint = OpenSSL::Digest
|
337
|
+
thumbprint = OpenSSL::Digest.new("SHA1", cert_obj.to_der).to_s # Fetch its thumbprint
|
312
338
|
# Need to check if return value is Boolean:true
|
313
339
|
# If not then the given certificate should be added in certstore
|
314
340
|
if verify_cert(thumbprint) == true
|
@@ -50,7 +50,7 @@ class Chef
|
|
50
50
|
ps_results = powershell_out("Get-DfsnServerConfiguration -ComputerName '#{ENV["COMPUTERNAME"]}' | Select LdapTimeoutSec, PreferLogonDC, EnableSiteCostedReferrals, SyncIntervalSec, UseFqdn | ConvertTo-Json")
|
51
51
|
|
52
52
|
if ps_results.error?
|
53
|
-
raise "The dfs_server resource failed to fetch the current state via the Get-DfsnServerConfiguration PowerShell
|
53
|
+
raise "The dfs_server resource failed to fetch the current state via the Get-DfsnServerConfiguration PowerShell cmdlet. Is the DFS Windows feature installed?"
|
54
54
|
end
|
55
55
|
|
56
56
|
Chef::Log.debug("The Get-DfsnServerConfiguration results were #{ps_results.stdout}")
|
@@ -42,7 +42,7 @@ class Chef
|
|
42
42
|
|
43
43
|
property :source, String,
|
44
44
|
description: "A local filesystem path or URI that is used to source the font file.",
|
45
|
-
coerce: proc { |x| x
|
45
|
+
coerce: proc { |x| /^.:.*/.match?(x) ? x.tr('\\', "/").gsub("//", "/") : x }
|
46
46
|
|
47
47
|
action :install do
|
48
48
|
description "Install a font to the system fonts directory."
|
@@ -84,7 +84,7 @@ class Chef
|
|
84
84
|
|
85
85
|
# install the font into the appropriate fonts directory
|
86
86
|
def install_font
|
87
|
-
require "win32ole" if RUBY_PLATFORM
|
87
|
+
require "win32ole" if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
|
88
88
|
fonts_dir = Chef::Util::PathHelper.join(ENV["windir"], "fonts")
|
89
89
|
folder = WIN32OLE.new("Shell.Application").Namespace(fonts_dir)
|
90
90
|
converge_by("install font #{new_resource.font_name} to #{fonts_dir}") do
|
@@ -96,7 +96,7 @@ class Chef
|
|
96
96
|
#
|
97
97
|
# @return [Boolean] Is the font is installed?
|
98
98
|
def font_exists?
|
99
|
-
require "win32ole" if RUBY_PLATFORM
|
99
|
+
require "win32ole" if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
|
100
100
|
fonts_dir = WIN32OLE.new("WScript.Shell").SpecialFolders("Fonts")
|
101
101
|
logger.trace("Seeing if the font at #{Chef::Util::PathHelper.join(fonts_dir, new_resource.font_name)} exists")
|
102
102
|
::File.exist?(Chef::Util::PathHelper.join(fonts_dir, new_resource.font_name))
|
@@ -19,7 +19,7 @@
|
|
19
19
|
require_relative "../mixin/uris"
|
20
20
|
require_relative "package"
|
21
21
|
require_relative "../provider/package/windows"
|
22
|
-
require_relative "../win32/error" if RUBY_PLATFORM
|
22
|
+
require_relative "../win32/error" if RUBY_PLATFORM.match?(/mswin|mingw|windows/)
|
23
23
|
require_relative "../dist"
|
24
24
|
|
25
25
|
class Chef
|
@@ -113,7 +113,7 @@ class Chef
|
|
113
113
|
# we do this here and not in the property itself because if automatic_managed
|
114
114
|
# is set then this validation is not necessary / doesn't make sense at all
|
115
115
|
def validate_name
|
116
|
-
return if /^.:.*.sys
|
116
|
+
return if /^.:.*.sys/.match?(new_resource.path)
|
117
117
|
|
118
118
|
raise "#{new_resource.path} does not match the format DRIVE:\\path\\file.sys for pagefiles. Example: C:\\pagefile.sys"
|
119
119
|
end
|
@@ -124,7 +124,7 @@ class Chef
|
|
124
124
|
# @return [Boolean]
|
125
125
|
def exists?(pagefile)
|
126
126
|
@exists ||= begin
|
127
|
-
logger.trace("Checking if #{pagefile} exists by
|
127
|
+
logger.trace("Checking if #{pagefile} exists by running: wmic.exe pagefileset where SettingID=\"#{get_setting_id(pagefile)}\" list /format:list")
|
128
128
|
cmd = shell_out("wmic.exe pagefileset where SettingID=\"#{get_setting_id(pagefile)}\" list /format:list", returns: [0])
|
129
129
|
cmd.stderr.empty? && (cmd.stdout =~ /SettingID=#{get_setting_id(pagefile)}/i)
|
130
130
|
end
|
@@ -16,34 +16,20 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
require_relative "../platform/query_helpers"
|
20
19
|
require_relative "script"
|
21
20
|
require_relative "../mixin/windows_architecture_helper"
|
22
21
|
|
23
22
|
class Chef
|
24
23
|
class Resource
|
25
24
|
class WindowsScript < Chef::Resource::Script
|
26
|
-
|
25
|
+
include Chef::Mixin::WindowsArchitectureHelper
|
27
26
|
|
28
|
-
|
27
|
+
unified_mode true
|
29
28
|
|
30
29
|
# This is an abstract resource meant to be subclasses; thus no 'provides'
|
31
30
|
|
32
31
|
set_guard_inherited_attributes(:architecture)
|
33
32
|
|
34
|
-
protected
|
35
|
-
|
36
|
-
def initialize(name, run_context, resource_name, interpreter_command)
|
37
|
-
super(name, run_context)
|
38
|
-
@interpreter = interpreter_command
|
39
|
-
@resource_name = resource_name if resource_name
|
40
|
-
@default_guard_interpreter = self.resource_name
|
41
|
-
end
|
42
|
-
|
43
|
-
include Chef::Mixin::WindowsArchitectureHelper
|
44
|
-
|
45
|
-
public
|
46
|
-
|
47
33
|
def architecture(arg = nil)
|
48
34
|
assert_architecture_compatible!(arg) unless arg.nil?
|
49
35
|
result = set_or_return(
|
@@ -21,28 +21,59 @@ require_relative "../resource"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class WindowsSecurityPolicy < Chef::Resource
|
24
|
-
|
24
|
+
provides :windows_security_policy
|
25
25
|
|
26
26
|
# The valid policy_names options found here
|
27
27
|
# https://github.com/ChrisAWalker/cSecurityOptions under 'AccountSettings'
|
28
|
-
policy_names = %w{
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
28
|
+
policy_names = %w{LockoutDuration
|
29
|
+
MaximumPasswordAge
|
30
|
+
MinimumPasswordAge
|
31
|
+
MinimumPasswordLength
|
32
|
+
PasswordComplexity
|
33
|
+
PasswordHistorySize
|
34
|
+
LockoutBadCount
|
35
|
+
ResetLockoutCount
|
36
|
+
RequireLogonToChangePassword
|
37
|
+
ForceLogoffWhenHourExpire
|
38
|
+
NewAdministratorName
|
39
|
+
NewGuestName
|
40
|
+
ClearTextPassword
|
41
|
+
LSAAnonymousNameLookup
|
42
|
+
EnableAdminAccount
|
43
|
+
EnableGuestAccount
|
44
|
+
}
|
43
45
|
description "Use the **windows_security_policy** resource to set a security policy on the Microsoft Windows platform."
|
44
46
|
introduced "16.0"
|
45
47
|
|
48
|
+
examples <<~DOC
|
49
|
+
**Set Administrator Account to Enabled**:
|
50
|
+
|
51
|
+
```ruby
|
52
|
+
windows_security_policy 'EnableAdminAccount' do
|
53
|
+
secvalue '1'
|
54
|
+
action :set
|
55
|
+
end
|
56
|
+
```
|
57
|
+
|
58
|
+
**Rename Administrator Account**:
|
59
|
+
|
60
|
+
```ruby
|
61
|
+
windows_security_policy 'NewAdministratorName' do
|
62
|
+
secvalue 'AwesomeChefGuy'
|
63
|
+
action :set
|
64
|
+
end
|
65
|
+
```
|
66
|
+
|
67
|
+
**Set Guest Account to Disabled**:
|
68
|
+
|
69
|
+
```ruby
|
70
|
+
windows_security_policy 'EnableGuestAccount' do
|
71
|
+
secvalue '0'
|
72
|
+
action :set
|
73
|
+
end
|
74
|
+
```
|
75
|
+
DOC
|
76
|
+
|
46
77
|
property :secoption, String, name_property: true, required: true, equal_to: policy_names,
|
47
78
|
description: "The name of the policy to be set on windows platform to maintain its security."
|
48
79
|
|
@@ -34,7 +34,6 @@ class Chef
|
|
34
34
|
description 'Make a shortcut to C:\\original_dir'
|
35
35
|
end
|
36
36
|
```
|
37
|
-
|
38
37
|
DOC
|
39
38
|
|
40
39
|
property :shortcut_name, String,
|
@@ -57,7 +56,7 @@ class Chef
|
|
57
56
|
description: "Icon to use for the shortcut. Accepts the format of `path, index`, where index is the icon file to use. See Microsoft's [documentation](https://msdn.microsoft.com/en-us/library/3s9bx7at.aspx) for details"
|
58
57
|
|
59
58
|
load_current_value do |desired|
|
60
|
-
require "win32ole" if RUBY_PLATFORM
|
59
|
+
require "win32ole" if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
|
61
60
|
|
62
61
|
link = WIN32OLE.new("WScript.Shell").CreateShortcut(desired.shortcut_name)
|
63
62
|
name desired.shortcut_name
|
@@ -189,11 +189,11 @@ class Chef
|
|
189
189
|
description: "The frequency with which to run the task."
|
190
190
|
|
191
191
|
property :start_day, String,
|
192
|
-
description: "Specifies the first date on which the task runs in MM/DD/YYYY format.",
|
192
|
+
description: "Specifies the first date on which the task runs in **MM/DD/YYYY** format.",
|
193
193
|
default_description: "The current date."
|
194
194
|
|
195
195
|
property :start_time, String,
|
196
|
-
description: "Specifies the start time to run the task, in HH:mm format."
|
196
|
+
description: "Specifies the start time to run the task, in **HH:mm** format."
|
197
197
|
|
198
198
|
property :day, [String, Integer],
|
199
199
|
description: "The day(s) on which the task runs."
|
@@ -274,7 +274,7 @@ class Chef
|
|
274
274
|
|
275
275
|
## Resource is not idempotent when day, start_day is not provided with frequency :weekly
|
276
276
|
## we set start_day when not given by user as current date based on which we set the day property for current current date day is monday ..
|
277
|
-
## we set the monday as the day so at next run when new_resource.day is nil and current_resource day is monday due to which
|
277
|
+
## we set the monday as the day so at next run when new_resource.day is nil and current_resource day is monday due to which update gets called
|
278
278
|
def idempotency_warning_for_frequency_weekly(day, start_day)
|
279
279
|
if start_day.nil? && day.nil?
|
280
280
|
logger.warn "To maintain idempotency for frequency :weekly provide start_day, start_time and day."
|
@@ -295,19 +295,19 @@ class Chef
|
|
295
295
|
end
|
296
296
|
|
297
297
|
def validate_frequency_monthly(frequency_modifier, months, day)
|
298
|
-
# validates the frequency :monthly and raises error if frequency_modifier is first, second,
|
298
|
+
# validates the frequency :monthly and raises error if frequency_modifier is first, second, third etc and day is not provided
|
299
299
|
if (frequency_modifier != 1) && (frequency_modifier_includes_days_of_weeks?(frequency_modifier)) && !(day)
|
300
|
-
raise ArgumentError, "Please select day on which you want to run the task e.g. 'Mon, Tue'. Multiple values must be
|
300
|
+
raise ArgumentError, "Please select day on which you want to run the task e.g. 'Mon, Tue'. Multiple values must be separated by comma."
|
301
301
|
end
|
302
302
|
|
303
|
-
#
|
304
|
-
# Not checking value 1 here for
|
303
|
+
# frequency_modifier 2-12 is used to set every (n) months, so using :months property with frequency_modifier is not valid since they both used to set months.
|
304
|
+
# Not checking value 1 here for frequency_modifier since we are setting that as default value it won't break anything since preference is given to months property
|
305
305
|
if (frequency_modifier.to_i.between?(2, 12)) && !(months.nil?)
|
306
306
|
raise ArgumentError, "For frequency :monthly either use property months or frequency_modifier to set months."
|
307
307
|
end
|
308
308
|
end
|
309
309
|
|
310
|
-
# returns true if
|
310
|
+
# returns true if frequency_modifier has values First, second, third, fourth, last, lastday
|
311
311
|
def frequency_modifier_includes_days_of_weeks?(frequency_modifier)
|
312
312
|
frequency_modifier = frequency_modifier.to_s.split(",")
|
313
313
|
frequency_modifier.map! { |value| value.strip.upcase }
|
@@ -330,7 +330,7 @@ class Chef
|
|
330
330
|
|
331
331
|
# make sure the start_day is in MM/DD/YYYY format: http://rubular.com/r/cgjHemtWl5
|
332
332
|
if start_day
|
333
|
-
raise ArgumentError, "`start_day` property must be in the MM/DD/YYYY format." unless %r{^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$}
|
333
|
+
raise ArgumentError, "`start_day` property must be in the MM/DD/YYYY format." unless %r{^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$}.match?(start_day)
|
334
334
|
end
|
335
335
|
end
|
336
336
|
|
@@ -338,7 +338,7 @@ class Chef
|
|
338
338
|
def validate_start_time(start_time, frequency)
|
339
339
|
if start_time
|
340
340
|
raise ArgumentError, "`start_time` property is not supported with `frequency :none`" if frequency == :none
|
341
|
-
raise ArgumentError, "`start_time` property must be in the HH:mm format (e.g. 6:20pm -> 18:20)." unless /^[0-2][0-9]:[0-5][0-9]
|
341
|
+
raise ArgumentError, "`start_time` property must be in the HH:mm format (e.g. 6:20pm -> 18:20)." unless /^[0-2][0-9]:[0-5][0-9]$/.match?(start_time)
|
342
342
|
else
|
343
343
|
raise ArgumentError, "`start_time` needs to be provided with `frequency :once`" if frequency == :once
|
344
344
|
end
|
@@ -68,10 +68,61 @@ class Chef
|
|
68
68
|
}
|
69
69
|
|
70
70
|
provides :windows_user_privilege
|
71
|
-
description "The windows_user_privilege resource allows to add and set principal (User/Group) to the specified privilege
|
71
|
+
description "The windows_user_privilege resource allows to add and set principal (User/Group) to the specified privilege.\n Ref: https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment"
|
72
72
|
|
73
73
|
introduced "16.0"
|
74
74
|
|
75
|
+
examples <<~DOC
|
76
|
+
**Set the SeNetworkLogonRight Privilege for the Builtin Administrators Group and Authenticated Users**:
|
77
|
+
|
78
|
+
```ruby
|
79
|
+
windows_user_privilege 'Network Logon Rights' do
|
80
|
+
privilege 'SeNetworkLogonRight'
|
81
|
+
users ['BUILTIN\\Administrators', 'NT AUTHORITY\\Authenticated Users']
|
82
|
+
action :set
|
83
|
+
end
|
84
|
+
```
|
85
|
+
|
86
|
+
**Add the SeDenyRemoteInteractiveLogonRight Privilege to the Builtin Guests and Local Accounts User Groups**:
|
87
|
+
|
88
|
+
```ruby
|
89
|
+
windows_user_privilege 'Remote interactive logon' do
|
90
|
+
privilege 'SeDenyRemoteInteractiveLogonRight'
|
91
|
+
users ['Builtin\\Guests', 'NT AUTHORITY\\Local Account']
|
92
|
+
action :add
|
93
|
+
end
|
94
|
+
```
|
95
|
+
|
96
|
+
**Provide only the Builtin Guests and Administrator Groups with the SeCreatePageFile Privilege**:
|
97
|
+
|
98
|
+
```ruby
|
99
|
+
windows_user_privilege 'Create Pagefile' do
|
100
|
+
privilege 'SeCreatePagefilePrivilege'
|
101
|
+
users ['BUILTIN\\Guests', 'BUILTIN\\Administrators']
|
102
|
+
action :set
|
103
|
+
end
|
104
|
+
```
|
105
|
+
|
106
|
+
**Remove the SeCreatePageFile Privilege from the Builtin Guests Group**:
|
107
|
+
|
108
|
+
```ruby
|
109
|
+
windows_user_privilege 'Create Pagefile' do
|
110
|
+
privilege 'SeCreatePagefilePrivilege'
|
111
|
+
users ['BUILTIN\\Guests']
|
112
|
+
action :remove
|
113
|
+
end
|
114
|
+
```
|
115
|
+
|
116
|
+
**Clear all users from the SeDenyNetworkLogonRight Privilege**:
|
117
|
+
|
118
|
+
```ruby
|
119
|
+
windows_user_privilege 'Allow any user the Network Logon right' do
|
120
|
+
privilege 'SeDenyNetworkLogonRight'
|
121
|
+
action :clear
|
122
|
+
end
|
123
|
+
```
|
124
|
+
DOC
|
125
|
+
|
75
126
|
property :principal, String,
|
76
127
|
description: "An optional property to add the user to the given privilege. Use only with add and remove action.",
|
77
128
|
name_property: true
|
@@ -84,14 +135,14 @@ class Chef
|
|
84
135
|
required: true,
|
85
136
|
coerce: proc { |v| v.is_a?(String) ? Array[v] : v },
|
86
137
|
callbacks: {
|
87
|
-
"Option privilege must include any of the: #{privilege_opts}" => lambda {
|
88
|
-
|
138
|
+
"Option privilege must include any of the: #{privilege_opts}" => lambda { |v|
|
139
|
+
(privilege_opts & v).size == v.size
|
89
140
|
},
|
90
141
|
}
|
91
142
|
|
92
143
|
load_current_value do |new_resource|
|
93
|
-
|
94
|
-
privilege Chef::ReservedNames::Win32::Security.get_account_right(new_resource.principal)
|
144
|
+
if new_resource.principal && (new_resource.action.include?(:add) || new_resource.action.include?(:remove))
|
145
|
+
privilege Chef::ReservedNames::Win32::Security.get_account_right(new_resource.principal)
|
95
146
|
end
|
96
147
|
end
|
97
148
|
|
@@ -138,6 +189,20 @@ class Chef
|
|
138
189
|
end
|
139
190
|
end
|
140
191
|
|
192
|
+
action :clear do
|
193
|
+
new_resource.privilege.each do |privilege|
|
194
|
+
accounts = Chef::ReservedNames::Win32::Security.get_account_with_user_rights(privilege)
|
195
|
+
|
196
|
+
# comparing the existing accounts for privilege with users
|
197
|
+
# Removing only accounts which is not matching with users in new_resource
|
198
|
+
accounts.each do |account|
|
199
|
+
converge_by("removing user '#{account}' from privilege #{privilege}") do
|
200
|
+
Chef::ReservedNames::Win32::Security.remove_account_right(account, privilege)
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
141
206
|
action :remove do
|
142
207
|
curr_res_privilege = current_resource.privilege
|
143
208
|
missing_res_privileges = (new_resource.privilege - curr_res_privilege)
|
@@ -95,7 +95,7 @@ class Chef
|
|
95
95
|
description: "URL pointing to the ASCII-armored GPG key file for the repository. This is used if Yum needs a public key to verify a package and the required key hasn't been imported into the RPM database. If this option is set, Yum will automatically import the key from the specified URL. Multiple URLs may be specified in the same manner as the baseurl option. If a GPG key is required to install a package from a repository, all keys specified for that repository will be installed.\nMultiple URLs may be specified in the same manner as the baseurl option. If a GPG key is required to install a package from a repository, all keys specified for that repository will be installed."
|
96
96
|
|
97
97
|
property :http_caching, String, equal_to: %w{packages all none},
|
98
|
-
description: "Determines how upstream HTTP caches are instructed to handle any HTTP downloads that Yum does. This option can take the following values
|
98
|
+
description: "Determines how upstream HTTP caches are instructed to handle any HTTP downloads that Yum does. This option can take the following values:\n - `all` means all HTTP downloads should be cached\n - `packages` means only RPM package downloads should be cached, but not repository metadata downloads\n - `none` means no HTTP downloads should be cached.\n\nThe default value of `all` is recommended unless you are experiencing caching related issues."
|
99
99
|
|
100
100
|
property :include_config, String,
|
101
101
|
description: "An external configuration file using the format `url://to/some/location`."
|
@@ -114,25 +114,25 @@ class Chef
|
|
114
114
|
description: "Number of times any attempt to retrieve a file should retry before returning an error. Setting this to `0` makes Yum try forever."
|
115
115
|
|
116
116
|
property :metadata_expire, String, regex: [/^\d+$/, /^\d+[mhd]$/, /never/],
|
117
|
-
description: "Time (in seconds) after which the metadata will expire. If the current metadata downloaded is less than the value specified, then Yum will not update the metadata against the repository. If you find that Yum is not downloading information on updates as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a
|
118
|
-
validation_message: "The metadata_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with
|
117
|
+
description: "Time (in seconds) after which the metadata will expire. If the current metadata downloaded is less than the value specified, then Yum will not update the metadata against the repository. If you find that Yum is not downloading information on updates as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a `d`, `h` or `m` respectively. The default is six hours to compliment yum-updates running once per hour. It is also possible to use the word `never`, meaning that the metadata will never expire. Note: When using a metalink file, the metalink must always be newer than the metadata for the repository due to the validation, so this timeout also applies to the metalink file.",
|
118
|
+
validation_message: "The metadata_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with `d`, `h`, or `m`!"
|
119
119
|
|
120
120
|
property :metalink, String,
|
121
121
|
description: "Specifies a URL to a metalink file for the repomd.xml, a list of mirrors for the entire repository are generated by converting the mirrors for the repomd.xml file to a baseurl."
|
122
122
|
|
123
123
|
property :mirror_expire, String, regex: [/^\d+$/, /^\d+[mhd]$/],
|
124
|
-
description: "Time (in seconds) after which the mirrorlist locally cached will expire. If the current mirrorlist is less than this many seconds old then Yum will not download another copy of the mirrorlist, it has the same extra format as metadata_expire. If you find that Yum is not downloading the mirrorlists as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a
|
125
|
-
validation_message: "The mirror_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with
|
124
|
+
description: "Time (in seconds) after which the mirrorlist locally cached will expire. If the current mirrorlist is less than this many seconds old then Yum will not download another copy of the mirrorlist, it has the same extra format as metadata_expire. If you find that Yum is not downloading the mirrorlists as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a `d`, `h` or `m` respectively.",
|
125
|
+
validation_message: "The mirror_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with `d`, `h`, or `m`!"
|
126
126
|
|
127
127
|
property :mirrorlist_expire, String, regex: [/^\d+$/, /^\d+[mhd]$/],
|
128
|
-
description: "Specifies the time (in seconds) after which the mirrorlist locally cached will expire. If the current mirrorlist is less than the value specified, then Yum will not download another copy of the mirrorlist. You can also change from the default of using seconds to using days, hours or minutes by appending a
|
129
|
-
validation_message: "The mirrorlist_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with
|
128
|
+
description: "Specifies the time (in seconds) after which the mirrorlist locally cached will expire. If the current mirrorlist is less than the value specified, then Yum will not download another copy of the mirrorlist. You can also change from the default of using seconds to using days, hours or minutes by appending a `d`, `h` or `m` respectively.",
|
129
|
+
validation_message: "The mirrorlist_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with `d`, `h`, or `m`!"
|
130
130
|
|
131
131
|
property :mirrorlist, String,
|
132
132
|
description: "URL to a file containing a list of baseurls. This can be used instead of or with the baseurl option. Substitution variables, described below, can be used with this option."
|
133
133
|
|
134
134
|
property :mode, [String, Integer],
|
135
|
-
description: "Permissions mode of .repo file on disk. This is useful for scenarios where secrets are in the repo file. If this value is set to
|
135
|
+
description: "Permissions mode of .repo file on disk. This is useful for scenarios where secrets are in the repo file. If this value is set to `600`, normal users will not be able to use Yum search, Yum info, etc.",
|
136
136
|
default: "0644"
|
137
137
|
|
138
138
|
property :options, Hash,
|
@@ -142,7 +142,7 @@ class Chef
|
|
142
142
|
description: "Password to use with the username for basic authentication."
|
143
143
|
|
144
144
|
property :priority, String, regex: /^(\d?[1-9]|[0-9][0-9])$/,
|
145
|
-
description: "Assigns a priority to a repository where the priority value is between
|
145
|
+
description: "Assigns a priority to a repository where the priority value is between `1` and `99` inclusive. Priorities are used to enforce ordered protection of repositories. Packages from repositories with a lower priority (higher numerical value) will never be used to upgrade packages that were installed from a repository with a higher priority (lower numerical value). The repositories with the lowest numerical priority number have the highest priority.",
|
146
146
|
validation_message: "The priority property must be a numeric value from 1-99!"
|
147
147
|
|
148
148
|
property :proxy_password, String,
|