[Pre-Release Announcement] Chef Client 13.3


#1

Ohai Chefs!

We have selected 13.3.42 as our Chef v13.3 release candidate which is scheduled for release on Wednesday August 16, 2017.

Release Highlights

Unprivileged Symlink Creation on Windows

Chef can now create symlinks without privilege escalation, which allows for the creation of symlinks on Windows 10 Creator Update.

nokogiri Gem

The nokogiri gem is once again bundled with the omnibus install of Chef

zypper_package Options

It is now possible to pass additional options to the zypper in the zypper_package resource. This can be used to pass any zypper CLI option

Example:

zypper_package 'foo' do
  options '--user-provided'
end

windows_task Improvements

The windows_task resource now properly allows updating the configuration of a scheduled task when using the :create action. Additionally the previous :change action from the windows cookbook has been aliased to :create to provide backwards compatibility.

apt_preference Resource

The apt_preference resource has been ported from the apt cookbook. This resource allows for the creation of APT preference files controlling which packages take priority during installation.

Further information regarding apt-pinning is available via https://wiki.debian.org/AptPreferences and https://manpages.debian.org/stretch/apt/apt_preferences.5.en.html

Actions

  • :add: creates a preferences file under /etc/apt/preferences.d
  • :remove: Removes the file, therefore unpin the package

Properties

  • package_name: name attribute. The name of the package
  • glob: Pin by glob() expression or regexp surrounded by /.
  • pin: The package version/repository to pin
  • pin_priority: The pinning priority aka “the highest package version wins”

Examples

Pin libmysqlclient16 to version 5.1.49-3:

apt_preference 'libmysqlclient16' do
  pin          'version 5.1.49-3'
  pin_priority '700'
end

Unpin libmysqlclient16:

apt_preference 'libmysqlclient16' do
  action :remove
end

Pin all packages from dotdeb.org:

apt_preference 'dotdeb' do
  glob         '*'
  pin          'origin packages.dotdeb.org'
  pin_priority '700'
end

zypper_repository Resource

The zypper_repository resource allows for the creation of Zypper package repositories on SUSE Enterprise Linux and openSUSE systems. This resource maintains full compatibility with the resource in the existing zypper cookbooks

Actions

  • :add - adds a repo
  • :delete - removes a repo

Properties

  • repo_name - repository name if different from the resource name (name property)
  • type - the repository type. default: ‘NONE’
  • description - the description of the repo that will be shown in zypper repos
  • baseurl - the base url of the repo
  • path - the relative path from the baseurl
  • mirrorlist - the url to the mirrorlist to use
  • gpgcheck - should we gpg check the repo (true/false). default: true
  • gpgkey - location of repo key to import
  • priority - priority of the repo. default: 99
  • autorefresh - should the repository be automatically refreshed (true/false). default: true
  • keeppackages - should packages be saved (true/false). default: false
  • refresh_cache - should package cache be refreshed (true/false). default: true
  • enabled - should this repository be enabled (true/false). default: true
  • mode - the file mode of the repository file. default: “0644”

Examples

Add the Apache repository for openSUSE Leap 42.2

zypper_repository 'apache' do
  baseurl 'http://download.opensuse.org/repositories/Apache'
  path '/openSUSE_Leap_42.2'
  type 'rpm-md'
  priority '100'
end

Additional Platform Support

Ohai now properly detects the F5 Big-IP platform and platform_version.

  • platform: bigip
  • platform_family: rhel

Get the Build

As always, you can download binaries directly from downloads.chef.io or by using the new mixlib-install command line utility available in ChefDK 0.19.6 or greater.

$ mixlib-install download chef -v 13.3.42 -c current

Alternatively, you can install Chef using one of the following command options:

# In Shell
$ curl https://omnitruck.chef.io/install.sh | sudo bash -s -- -P chef -v 13.3.42 -c current

# In Windows Powershell
. { iwr -useb https://omnitruck.chef.io/install.ps1 } | iex; install -project chef -version 13.3.42 -channel current