Hey folks,
We have a great new release of Chef Infra Client out today with improved performance, new helpers for authoring cookbooks, updated Chef InSpec, and new/updated resources. Give it a try!
New Cookbook Helpers
Chef Infra Client now includes a new chef-utils
gem, which ships with a large number of helpers to make writing cookbooks easier. Many of these helpers existed previously in the chef-sugar
gem. We have renamed many of the named helpers for consistency, while providing backwards compatibility with existing chef-sugar
names. Existing cookbooks written with chef-sugar
should work unmodified with any of these new helpers. Expect a Cookstyle rule in the near future to help you update existing chef-sugar
code to use the newer built-in helpers.
For more information all all of the new helpers available, see the chef-utils readme
Chefignore Improvements
We've reworked how chefignore files are handled in knife
, which has allowed us to close out a large number of long outstanding bugs. knife
will now traverse all the way up the directory structure looking for a chefignore file. This means you can place a chefignore file in each cookkbook or any parent directory in your repository structure. Additionally, we have made fixes that ensure that commmands like knife diff
and knife cookbook upload
always honor your chefignore files.
Windows Habitat Plan
Official Habitat packages of Chef Infra Client are now available for Windows. It has all the executables of the traditional omnibus packages, but in Habitat form. You can find it in the Habitat Builder under chef/chef-infra-client.
Performance Improvements
This release of Chef Infra Client ships with several optimizations to our Ruby installation that improve the performance of the chef-client and knife commands, especially on Windows systems. Expect to see more here in future releases.
Chef InSpec 4.18.39
Chef InSpec has been updated from 4.17.17 to 4.18.38. This release includes a large number of bug fixes in additition to some great resource enhancements:
- Inputs can now be used within a
describe.one
block - The
service
resource now includes astartname
property for Windows and systemd services - The
interface
resource now includes aname
property - The
user
resource now better supports Windows with the addition ofpasswordage
,maxbadpasswords
, andbadpasswordattempts
properties - The
nginx
resource now includes parsing support for wildcard, dot prefix, and regex - The
iis_app_pool
resource now handles empty app pools - The
filesystem
resource now supports devices with very long names - The
apt
better handles URIs and supports repos with anarch
- The
oracledb_session
has received multiple fixes to make it work better - The
npm
resource now works under sudo on Unix and on Windows with a custom PATH
New Resources
chef_sleep
The chef_sleep
resource can be used to sleep for a specified number of seconds during a Chef Infra Client run. This may be helpful to use with other commands that return a completed status before they are actually ready. In general, do not use this resource unless you truly need it.
Using with a Windows service that starts, but is not immediately ready:
service 'Service that is slow to start and reports as started' do
service_name 'my_database'
action :start
notifies :sleep, chef_sleep['wait for service start']
end
chef_sleep 'wait for service start' do
seconds 30
action :nothing
end
Updated Resources
systemd_unit / service
The systemd_unit
and service
resources (when on systemd) have been updated to not re-enable services with an indirect status. Thanks @jaymzh for this fix.
windows_firewall
The windows_firewall
resource has been updated to support passing in an array of profiles in the profile
property. Thanks @Happycoil for this improvement.
Security Updates
libxslt
libxslt has been updated to 1.1.34 to resolve CVE-2019-13118.
Get the Build
As always, you can download binaries directly from downloads.chef.io or by using the mixlib-install
command line utility:
$ mixlib-install download chef -v 15.5.9
Alternatively, you can install Chef Infra Client using one of the following command options:
# In Shell
$ curl https://omnitruck.chef.io/install.sh | sudo bash -s -- -P chef -v 15.5.9
# In Windows Powershell
. { iwr -useb https://omnitruck.chef.io/install.ps1 } | iex; install -project chef -version 15.5.9
If you want to give this version a spin in Test Kitchen, create or add the following to your kitchen.yml
file:
provisioner:
product_name: chef
product_version: 15.5.9
Enjoy,
Tim