Getting information about the environment
Sometimes, your recipes need to know details about the environment they are modifying. I'm not talking about Chef environments but about things such as Linux kernel versions, existing users, and network interfaces.
Chef provides all this information via the node
object. Let's look at how to retrieve it.
Getting ready
Log in to any of your Chef-managed nodes and start chef-shell:
user@server:~$ sudo chef-shell --client chef (12.16.42)>
How to do it…
Let's play around with the node object and look at what information it stores:
List which information is available. The example shows the keys available on a Vagrant VM. Depending on what kind of server you work on, you'll find different data, as shown in the following:
chef > node.keys.sort => ["block_device", "chef_packages", "command", "counters", "cpu", "current_user", "dmi", "domain", "etc", "filesystem", "fqdn", "hostname", "idletime", "idletime_seconds", "ip6address", "ipaddress", "kernel",...