Hey folks,
We have a pre-Thanksgiving gift for everyone with a new release of Chef Infra Client. This release includes significant performance improvements as well as improvements to Windows node bootstrapping and Ohai system detection. Give it a try.
Performance Enhancements
In Chef Infra Client 16.7, we've put a particular focus on optimizing the performance of the client. We've created several dozen minor optimizations that increase performance and reduce overall memory usage across all platforms. On Windows, our work has been particularly pronounced as we've improved resource execution and Chef Infra Client installation. Chef Infra Client install times on Windows are now up to 3x faster than previous releases. Resources that use PowerShell to make changes now execute significantly faster. This improvement will be the most noticeable in Chef Infra Client runs that don't make actual system changes (no-op runs), where determining the current system state was previously resource-intensive.
Windows Bootstrap Improvements
We've improved how Windows nodes are bootstrapped when using the knife bootstrap command. The knife bootstrap --secret flag is now respected on Windows hosts, allowing for the proper setup of nodes to use encrypted data bags. Thanks for reporting this issue @AMC-7! Additionally, during the bootstrap we now force connections to use TLS 1.2, preventing failures on Windows 2012-2016. Thanks for this improvement @TimothyTitan!
Chef Vault 4.1
We've updated the release of chef-vault bundled with Chef Infra Client to 4.1. Chef Vault 4.1 properly handles escape strings in secrets and greatly improves performance for users with large numbers of secrets. Thanks for the performance work @Annih!
Updated Resources
build_essential
The build_essential resource has been updated to resolve idempotency issues and greatly improve performance on macOS hosts.
chef_client_config
The chef_client_config resource has been updated to no longer produce invalid client.rb content.
group
The group resource has been improved to provide log output of changes being made and on Windows now properly translates group SIDs to names in order to operate idempotently.
Thanks for these improvements @jaymzh!
homebrew_update
The homebrew_update has been updated to resolve failures that would occur when running the resource.
ifconfig
The ifconfig resource has been updated to better support Linux distributions that are derivatives of either Ubuntu or Debian. Support for setting the BRIDGE property on RHEL-based systems has also been added.
mount
The mount resource has been updated to resolve several issues:
- Idempotency failures when using labels on Linux hosts.
- Idempotency failures when using network paths that end with a slash.
- fstab entries being reordered instead of performing in-place updates.
Thanks for reporting these issues @limitusus, @axelrtgs, and @scarpe01!
powershell_package
The powershell_package resource has been updated to better force connections to use TLS 1.2 when communicating with the PowerShell Gallery on Windows Server 2012-2016. Connections must be forced to use TLS 1.2 as the system default cipher suite because Windows 2012-2016 did not include TLS 1.2.
powershell_script
The powershell_script resource has been updated to not fail when using a not_if or only_if guard when specifying the user property. Thanks for reporting this issue @Blorpy
user
The user resource has been improved to provide log output of changes being made.
Thanks for this improvement @jaymzh!
zypper_package
The zypper_package resource has been refactored to improve idempotency when specifying a version of the package to either install or downgrade.
Ohai Improvements
- The
Joyentplugin has been removed as the Joyent public cloud was shutdown 11/2019 -
pop_osis now detected as having theplatform_familyofdebian. Thanks for this improvement @chasebolt! - Recent
openindianareleases are now properly detected. - The
Hostnamectlplugin properly detects hostnames that contain a colon. Thanks for reporting this @ziggythehamster! - The
Zpoolplugin now properly detects ZFS zpools that includenvmeorxvddrives. Thanks for reporting this @ziggythehamster! - The
Zpoolplugin now properly detects ZFS zpools that use disk labels/guids instead of traditional drive designations. - Performance of system configuration gathering on AIX systems has been improved
- The
Virtualizationplugin on AIX systems now gathers a statestateper WPAR and properly gathers LPAR names that include spaces
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 16.7.61
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 16.7.61
# In Windows Powershell
. { iwr -useb https://omnitruck.chef.io/install.ps1 } | iex; install -project chef -version 116.7.61
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: 16.7.61
Enjoy,
Tim