Chef Ideas

We believe that the best way to build software is to do it in close collaboration with the people who use it. We invite you to submit your ideas using the form below. Please be sure to include the problem for which you are solving and the benefits of implementing the idea.

We do our best to implement as many Ideas as we can. Our Product team will evaluate all submitted ideas in a timely manner and will disposition each into one of the following categories: will integrate into the product roadmap, further research is needed, unlikely to implement.

Thanks for collaborating with us!

Actionable observability of Chef Ohai attributes

As a Chef Automate use I want to be able to search my entire fleet using Automate filters for a Chef Ohai Attribute, return what systems have that attribute set & the value of the attribute.

Chef Ohai provides extremely valuable information & could be a major differentiator for Chef over other tools, especially non-agent based tools like Ansible.

Customers have the need to search/filter by Chef Ohai Attributes & return the value of the Ohai attribute. This is critical inventory information that may be impossible to collect without an Automated tool like Chef.

Currently we store the Chef Ohai attributes in Automate as a unsearchable JSON block. Our target customers are at large scale & individually clicking tens of thousands of individual systems does n't scale.

This data is so valuable we can expect customers to initially provide a whitelist of what data is valuable to them so we can only Index those additional attributes & not all of the Ohai data available.

Example use cases:

1.Filter Automate for systems with this attribute set:

node['packages']['tripwire enterprise agent']['version'] attribute

& return the value that's set. This isn't appropriate for a compliance test since users want to understand what versions are installed not just "what's greater than version X"

2. Chef-Client versions.

This is another Ohai attribute & we do show this on the page, but It doesn't export & I can't group or sort easily. With 70,000 systems how many are which version? What environments are which version? All of that context is needed in the workflow for that data to be actionable.

3. Tracking a few dozen critical Ohai attributes:

Jack Henry created a powershell script wrapped around a knife search command. It exports all nodes, then iterates over all the Ohai attributes, exports any attribute specified into a JSON file and the value of the attributes to a CSV:

Here's an example of the knife command:

knife search node '*:*' $chefAttributeString --format=json

Here's an example of the attributes Jack Henry finds valuable:

$chefAttributes.Add('name', 'Node Name')

$chefAttributes.Add('hostname', 'Hostname')

$chefAttributes.Add('domain', 'Domain')

$chefAttributes.Add('chef_environment', 'Environment')

$chefAttributes.Add('run_list', 'Run List')

$chefAttributes.Add('ipaddress', 'IP Address')

$chefAttributes.Add('macaddress', 'MAC Address')

$chefAttributes.Add('os', 'Operating System')

$chefAttributes.Add('platform', 'Platform')

$chefAttributes.Add('platform_version', 'Platform Version')

$chefAttributes.Add('kernel.name', 'Kernel')

$chefAttributes.Add('filesystem.C:.kb_size', 'C: KB Size')

$chefAttributes.Add('filesystem.C:.kb_available', 'C: KB Available')

$chefAttributes.Add('cpu.real', 'CPU Count')

$chefAttributes.Add('cpu.cores', 'CPU Core Count')

$chefAttributes.Add('virtualization.role', 'Virtualization')

$chefAttributes.Add('cloud.provider', 'Cloud Provider')

$chefAttributes.Add('languages.powershell.version', 'PowerShell Version')

$chefAttributes.Add('chef_packages.chef.version', 'Chef Client Version')

$chefAttributes.Add('packages.''McAfee Agent''.version', 'McAfee Installed?')

$chefAttributes.Add('packages.''Configuration Manager Client''.version', 'SCCM Installed?')

$chefAttributes.Add('packages.''Tripwire Enterprise Agent''.version', 'Windows Tripwire Version?')

$chefAttributes.Add('packages.''TWeagent''.version', 'Linux Tripwire Version?')

4. A more advanced use case would involve some comparison logic. This can also be solved in Excel if we provide exports including uniquely identifiable information.

I'm being audited by Microsoft for my SQL licenses. I need a report of all systems with the SQL attribue set & return those values.

Any server with SQL installed I also need to know the CPU and Memory footprint to calculate compliance for software licensing.

  • Eric Calabretta
  • Oct 31 2019
  • Currently Declined
  • Attach files
  • +1